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

Documents Java Discussion :

[iText] pied de page sur plusieurs lignes


Sujet :

Documents Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut [iText] pied de page sur plusieurs lignes
    bonjour j'essaie d'ajouter un footer à un document pdf en utilisant iText, le probleme est que je n'arrive pas à mettre plus d'une seule lignes alors que j'en doit mettre 3 avec des fontes diff pour chaqune.

    on dirait que le saut de ligne n'est pas possible avec le HeaderFoote!! bizzard.j'ai essayéaussi en utilisant des Chunck dans des phrases dans des paragrahes et rien.

    Merci de m'eclairer.

  2. #2
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Bonjour,

    L'utilisation du header ou footer sous iText impose une juste valeur des marges haute et basse, ainsi qu'un espace suffisment grand pour inclure le header/footer voulu, sinon le text se superpose ou diparaît (pas de saut de page généré).

    En gros, tu dois assurer la gestion des header/footer. Faut pas oubier que iText est une API de bas niveau, juste au dessus du language PDF... alors il demande quelques classes de gestion...

    Tu fais comment pour mettre tes header/footer (question classique) ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    voici mon code: il es vrai que rien ne s'affiche si je met + d'une seule ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    PdfContentByte cb = writer.getDirectContent();
     
     Chunk c1 = new Chunk("phrase1",FontFactory.getFont(FontFactory.COURIER, 8, Font.NORMAL, Color.BLUE));
     
    Chunk c2 = new Chunk("phrase 2 ",FontFactory.getFont(FontFactory.COURIER, 7, Font.NORMAL, Color.BLACK));
     
    Chunk c3 = new Chunk("phrase3",FontFactory.getFont(FontFactory.COURIER, 7, Font.NORMAL, Color.BLACK));
     
    Phrase p=new Phrase(c1+ " \n");
    p.add(c2+ " \n");
    p.add(c3);
     
    para.setAlignment(Element.ALIGN_CENTER);
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, p, (document.right()- document.left())/2+document.leftMargin(), document.bottom() - 10, 0);

  4. #4
    Membre éclairé Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Points : 882
    Points
    882
    Par défaut
    Phrase p=new Phrase(c1+ " \n");
    essaye plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Phrase p=new Phrase(c1+Chunk.NEWLINE);
    et augmente monte ta marge basse pour voir si les lignes sont pas cachées:
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, p, (document.right()- document.left())/2+document.leftMargin(), document.bottom() - 10, 0);
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... document.bottom() - 50, 0);

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2007
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    voici les modifs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Phrase p=new Phrase(c1+""+Chunk.NEWLINE);
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, p, (document.right()- document.left())/2+document.leftMargin(), document.bottom() + 20+document.bottomMargin(), 0);
    ce dernier fait bien remonter le pied de page, par contre y'a toujours que la premiere ligne et les fontes appliquées sur le Chunk ne sont pas prises en compte.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    Bonjour,

    D'après la documentation de l'api, la méthode showTextAligned() n'affiche que la première ligne :

    showTextAligned
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public static void showTextAligned(PdfContentByte canvas,
                                       int alignment,
                                       Phrase phrase,
                                       float x,
                                       float y,
                                       float rotation,
                                       int runDirection,
                                       int arabicOptions)
    Shows a line of text. Only the first line is written.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 68
    Points : 39
    Points
    39
    Par défaut
    De plus, tu as des méthodes toutes prêtes qui te permettent d'ajouter des headers/footers (avec numérotation des pages par exemple...)

    Document.setHeader()
    &
    Document.setFooter()

  8. #8
    Membre confirmé Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Points : 493
    Points
    493
    Par défaut
    De mémoire, il me semble que j'avais voulu faire quelque chose de semblable, et que je m'en était tiré en mettant directement une Table dans le footer.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Alignement en hauteur
    Bonjour, je réouvre ce topic qui date un peu pour une petite question :

    J'ai créé un headerfooter dans mon programme java dans lequel se trouvent une image ainsi que la date du jour. En faisant un alignement à droite j'ai bien mon image à gauche et ma date à droite comme je le voulais. Le problème est que les 2 ne sont pas alignés en hauteur.

    Y'a-t-il un moyen de choisir la position du texte en hauteur dans le header lui-même ?

    Je joins le problème en image.

    Merci d'avance pour votre aide.

    Cordialement,


    Preludz
    Images attachées Images attachées  

  10. #10
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    ça ne serais pas parceque l'image de gauche est trop grande en hauteur.
    C.a.d, Y a t'il du "blanc" inutilisé sous le logo?

    Ceci expliquerais cela.

    ps : mais je suppose que c'est trop simpe pour être ça
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse Ivelios,

    Effectivement il y'a du blanc sous (et au dessus aussi) de l'image mais l'image n'est pas trop grande pour le "cadre" header. Cela explique bien qu'elle ne soit pas alignée avec le texte, d'où ma question : comment aligner le texte en hauteur ?

    J'ai quand meme résolu le problème d'une autre manière : j'ai aligné l'image avec le texte plutôt que le texte avec l'image

    Je mets mon bout de code en ligne si ça peut servir (sachant que l'image se trouve dans mon projet):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    URL logoUrl = this.getClass().getClassLoader().getResource("monLogo.jpg");
     
    Image logoImage = Image.getInstance(logoUrl);
    logoImage.setAbsolutePosition(30, 792);
    C'est un peu bourrin mais bon, ça marche

    Merci pour votre aide.

    @+

Discussions similaires

  1. [VI-2013] Modifier un pied de page sur plusieurs documents
    Par illidan05 dans le forum Visio
    Réponses: 0
    Dernier message: 27/05/2014, 15h09
  2. [LATEX] Combiner Tableaux sur plusieurs pages et colonnes sur plusieurs lignes
    Par audera dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 2
    Dernier message: 04/02/2010, 23h46
  3. Réponses: 2
    Dernier message: 10/05/2004, 07h55
  4. TDBGrid - Un enregistrement sur plusieurs lignes
    Par BRODU dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/05/2004, 07h53
  5. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45

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