IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Tableau coupé lors d'une impression


Sujet :

HTML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut Tableau coupé lors d'une impression
    Bonjour!!!
    Je suis en train de créer un programme de facturation en web.
    Lorsque je veux imprimer une facture, le tableau html où se trouve les lignes d'articles récupérées avec le PHP sur une base de données Mysql, est coupé.
    Je me demandais s'il y avait une solution pour régler ce problème.
    J'ai pensé à mettre comme code soit via le php, soit via javascript :
    </table>
    <table class="sautdepage">
    avant que le tableau soit coupé mais je me demande comment je pourrais déterminer ce moment.
    Je précise que la largeur des cellules peut être différentes pour certains articles.
    .sautdepage {
    page-break-before:always;
    }

    Je vous remercie d'avance
    Si vous avez une autre solution, n'hésitez pas.

  2. #2
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut
    J'ai avancé dans ma recherche pour régler ce problème.
    A partir de calculs, j'ai déterminé qu'une page A4 fais 1036px.
    Puis, grâce à une boucle javascript, j'ai déterminé à quelle ligne il faut que je fasse le saut de page (soit insérer le code ci-dessus)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Calcul du saut de page
        var tab = window.document.getElementById("tabart");
        var ligne = tab.rows.length-1;
        var art_saut=0;
        var i=1;
        while ((art_saut==0) && (i<=ligne)){
            if (tab.rows[i].offsetTop+tab.offsetTop > 1036)
                art_saut=i;
            i++;
        }
        alert (art_saut);
    Maintenant, il faut que je trouve le moyen d'insérer le code qui permet le saut de page aprés le </TR> de la ligne art_saut.
    Si quelqu'un peut m'aider, ça serait sympa.


    Vu que finalement c'est du javascript, je pense qu'on peut déplacer le sujet vers le forum "javascript"

  3. #3
    Membre confirmé Avatar de Rodrick
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 92
    Par défaut
    J'ai enfin réussi à régler le problème mais seulement sous ie car je n'ai pas la suite de la facture lorsque je fais aperçu sous firefox. (j'avais réussi sous firefox en mettant une propriété comme page-break-after ou autre mais j'ai eu un problème et je ne sais plus ce que j'avais mis et où)
    Je mets quand même la solution que j'ai adoptée :

    Pour chaque ligne d'article, j'ai fais un table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // Calcul du saut de page
        var tab = window.document.facture.getElementsByTagName("table");
        var ligne = tab.length;
        var valtete= window.document.facture.getElementsByTagName("table")[1].offsetTop;
        var nbrepage=1;
        for (i=0; i<ligne; i++){
            if ((tab[i].offsetTop+tab[i].offsetHeight)/1020 > nbrepage){
               tab[i].setAttribute("class","sautdepage");
               nbrepage++;
            }
        }
    avec en css :
    .sautdepage { page-break-after:always; }

    1020 correspond à la taille d'une feuille A4 en pixel d'aprés mes calculs.

  4. #4
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 52
    Par défaut
    As tu déja jeté un coup d'oeil a @media en css. Ca permet de définir un style different pour l'impression (entre autres), peut etre que tu trouvera ta solution la dedans ...

    Sinon pour la hauteur de page, je pense que c'est surtout tres aléatoire, ca dépend (selon mon avis) des marges qui sont appliqués a chacune des feuilles, marges elles meme determinées par l'imprimante (enfin les reglages par défaut), donc ca me semble un peu "bizarre" de dire une page = hauteur: 1020 px...

    Sinon essaye de décortiquer le code de mappy, ils arrivent a faire de belles impressions...

Discussions similaires

  1. Format de text lors d'une impression
    Par Jiyuu dans le forum VB.NET
    Réponses: 2
    Dernier message: 13/03/2007, 12h03
  2. Réponses: 9
    Dernier message: 05/09/2006, 16h00
  3. Erreur lors d'une impression d'un état ( Access97 )
    Par icecube216 dans le forum Access
    Réponses: 12
    Dernier message: 24/08/2006, 17h27
  4. Eviter la coupure d'un tableau en deux lors d'une impression
    Par zidrouz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 15/06/2006, 11h26
  5. message lors d'une impression
    Par ptimars dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 21/02/2006, 08h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo