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 :

Positionner du texte dans iText


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut Positionner du texte dans iText
    Bonjour

    Je cherche désespérément depuis plusieurs jours à résoudre mon problème avec iText. J'écris un logiciel de dessin d'arbre généalogique en Java et ça, ca marche. Maintenant je veux générer un PDF avec iText qui corresponde à ce que j'ai dessiné en Java.
    Pour la partie graphique, la soution a été fort simple.
    Mon point de blocage est la génération par iTexte du texte saisi dans un JTextArea (texte multi-ligne) placé à un certain endroit de ma page par l'utilisateur. Bien sûr, je connais les coordonnées de la zone JTextArea ainsi que sa dimension.
    Par contre, je ne trouve pas la possibilité avec iText qui permet de placer du texte à un endroit précis de la page. J'ai regardé les Chunk, les Phrase, les Paragraph, les tables et bien d'autres choses. Rien n'y fait.

    Quelqu'un pourrait-il me renseigner ?

    Par avance Merci.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 511
    Par défaut
    Pourquoi ne pas dessiner aussi tes étiquettes texte ?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 173
    Par défaut
    Salut,
    moi j'utilise ceci pour écrire sur un pdf en (x,y) et ça marche nickel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PdfReader r = new PdfReader(path);
    PdfStamper stp = new PdfStamper(r, new FileOutputStream(path));
     
    PdfContentByte cb = stp.getOverContent(numeroPage);
     
    // get the first token and insert the content into the phrase
    Phrase phrase = new Phrase(new StringTokenizer("string", " ").nextToken(),new Font(Font.HELVETICA, 8, Font.NORMAL));
     
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, phrase, tocHorizontalPosition, tocVerticalPosition, 0);
    ou x = tocHorizontalPosition
    et y = tocVerticalPosition


    a+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Merci pour cette réponse. Je n'ai pas le temps de la tester ce soir, je verrai cela demain matin.
    Par contre, je me pose la question suivante : peut-on définir la largeur et la hauteur de la zone dans laquelle se place le texte ? J'ai bien compris que tu écris là ou tu veux, mais pour le reste ? Quid ?
    Comme je veux placer plusieurs textes à des endroits différents, avec des dimensions différentes, je pensais trouver une sorte de rectangle (dimension et position variables) dans lequel je pourrais mettre du texte.
    Citation Envoyé par FredKéKé Voir le message
    Salut,
    moi j'utilise ceci pour écrire sur un pdf en (x,y) et ça marche nickel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    PdfReader r = new PdfReader(path);
    PdfStamper stp = new PdfStamper(r, new FileOutputStream(path));
     
    PdfContentByte cb = stp.getOverContent(numeroPage);
     
    // get the first token and insert the content into the phrase
    Phrase phrase = new Phrase(new StringTokenizer("string", " ").nextToken(),new Font(Font.HELVETICA, 8, Font.NORMAL));
     
    ColumnText.showTextAligned(cb, Element.ALIGN_LEFT, phrase, tocHorizontalPosition, tocVerticalPosition, 0);
    ou x = tocHorizontalPosition
    et y = tocVerticalPosition


    a+

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Citation Envoyé par Mengué georges Voir le message
    Pourquoi ne pas dessiner aussi tes étiquettes texte ?
    Pardon, j'ai négligé ta remarque trop rapidement. J'y reviens. Mon but est bien de dessiner mes étiquettes mais je bute sur la mise en place de texte multi ligne et que je veux placer dans une zone rectangulaire de dimension variable et dl'emplacement variable. Quelles classes penses-tu utiliser pour dessiner des étiquettes ? Et éventuellement, à quelles méthodes penses-tu ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Je poursuis mes questions à Mengué georges.

    J'ai fais de grands progrès dans la bonne voie, les renseignements de FredKéKé m'ont fait utiliser un objet de la classe ColumnText et ca marche. Je bute sue un autre problème, qui est la suite de ma question de départ. itext ne connait que quelques polices et je n'ai pas trouvé comment utiliser toutes les polices disponibles. Je vais chercher demain. Si quelqu'un peut me donner une idée, elle sera le bienvenue.

    Je voudrais toujours savoir comment dessiner mon texte dans la zone graphics2D, cela simplifierait mon programme.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    J'ai essayé d'utiliser la méthode paintComponent et voici ce que donne mon source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    g2d.setPaint(couleurTexte);
    //	Police
    g2d.setFont(police);
    //	Pour éviter de voir le texte en débordement
    g2d.setClip(positionX,positionY,largeur,hauteur);
    //	Changement de coordonnées pour écrire au bon endroit
    g2d.translate(positionX, positionY);
    //	Dessin du composant
    paintComponent(g2d);
    //	Remise en place des coordonnées pour la suite
    g2d.translate(- positionX , - positionY);
    g2d.setClip(0 , 0 , commun.largeurfenetre , commun.hauteurfenetre);
    Je trouve que c'est un peu lourd mais c'est le plus simple que j'ai trouvé.
    Tout commentaire sur ce code sera le bienvenu.

    J'ai toujours le problème de la police. Ma variable police est un objet de la classe java.awt.Font. Quand je génère mon fichier PDF à partir de l'environnement graphique (ici g2d), les seules polices traitées correctement sont celles de base de itext (Times, Arial, ...). Comment utiliser toutes les polices installées sur l'ordinateur dans le fichier PDF ? iText a besoin du nom réel du fichier installé dans le système alors que AWT utilise un nom symbolique. Je n'ai rien trouvé pour faire le lien entre ces deux modes de fonctionnement.
    Merci de m'aider à résoudre cette question.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 16
    Par défaut
    Ca y est, à force de chercher sur Internet, j'ai trouvé comment régler ce problème.
    Je clos donc cette discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Positionnement du texte dans un label
    Par chuspyto dans le forum VB.NET
    Réponses: 9
    Dernier message: 14/05/2013, 17h41
  2. Positionnement de texte dans un retangle
    Par Seth77 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 14/07/2011, 15h58
  3. Problème positionnement image + texte dans div
    Par flashnet dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 18/07/2009, 16h11
  4. [XHTML] Positionnement du texte dans un tableau
    Par Jihnn dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/11/2006, 18h26
  5. Positionnement pointeur souris dans champ texte
    Par angelevil dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/03/2006, 12h58

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