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] Images/mise en page


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
    Juillet 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par défaut [iText] Images/mise en page
    Bonjour,

    je souhaiterais pouvoir créer un fichier PDF qui suit la structure suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    +---------------------------une page du document----------------------------+
    |  +-----------------------------------+                                    |
    |  |                                   | Un texte long en rapport           |
    |  |                                   | avec l'image (il s'agit d'une      |
    |  |         une image                 | sorte de légende). Sa taille       |
    |  |                                   | peut varier. A priori, un texte    |
    |  +-----------------------------------+ long peut dépasser la hauteur      |
    |  de l'image de une ou plusieurs ligne(s) comme c'est le cas ici           |
    |  +-----------------------------------+                                    |
    |  |                                   | Un texte plus petit peut ne pas    |
    |  |         une autre image           | occuper toute la hauteur de l'image|
    |  +-----------------------------------+                                    |
    |  +-----------------------------------+                                    |
    |  |       troisième image             | La troisième image doit se trouver |
    |  +-----------------------------------+ en dessous de la précédente        |
    +---------------------------------------------------------------------------+
    Mon problème est d'arriver à ce que les images s'alignent les unes en dessous des autres et que le texte qui correspond à une image s'affiche en face de cette dernière.

    Pour l'instant, je n'y parviens pas auriez-vous une piste que je puisse suivre ?

    Par avance merci

    ---------- EDIT ----------
    J'ai oublié de préciser que je savais imposer au texte de s'inscrire autour des images. Il suffit pour cela d'appeler la méthode setAlignment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monImage.setAlignment(Image.TEXTWRAP);

  2. #2
    Membre émérite 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 : 53
    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
    Par défaut
    Je propose un tableau, avec des lignes d'une seul cellule -qui fasse toute la ligne. L'alignement à gauhe -par défaut- ne sera pas un luxe pour assurer l'alignement des images.

    Autre idée ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par défaut
    Bonjour,

    j'ai testé votre proposition de plusieurs façons :

    • Pour chaque ligne, création d'une cellule avec l'image, puis ajout du texte sous forme de Paragraph. Dans ce cas, l'image ne s'affiche pas.
    • Pour chaque ligne, création d'un Paragraph avec l'image et le texte tels qu'ils devraient s'afficher (instantiation du Paragraph avec un Chunk contenant l'image puis ajout du texte), puis instanciation de la cellule avec le Paragraph. Dans ce cas, la propriété setAlignment de Image ne sert à rien : l'image s'aligne sur la ligne en cours du texte.
    • Méthode assez proche de la précédente à ceci près que j'instancie un Paragraph vide, lui ajoute l'image, puis le texte. Dans ce cas l'image ne s'affiche pas.


    Aucune de ces méthode n'est satisfaisante. Ai-je pensé à toutes les solutions possibles ou en existe-t-il d'autres ?

  4. #4
    Membre émérite 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 : 53
    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
    Par défaut
    Pour chaque ligne, création d'une cellule avec l'image, puis ajout du texte sous forme de Paragraph. Dans ce cas, l'image ne s'affiche pas.
    Suprise !

    As-tu bien mis le code ? Avec le .TEXTWRAP tu dois avoir une quelque chose de concluant...

    Il te faut :
    - créer un tableau d'une colonne,
    et pour chaque ligne d'un tableau (une ligne repésentante une image, ET son texte associé) :
    - créer une cellule avec un alignement à gauche et le .TEXTWRAP
    - ajouter dans la cellule une image
    - ajouter dans la même cellule le paragraphe de text
    - ajouter la cellule au tableau final

    Ensuite, il faut que les images ai la même largeur en pixels... sinon il faut les "scaler" pour avoir l'effet d'alignement.
    C'est ce que tu fais (peut-être un bout de code à monter) ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par défaut
    Je ne procédais pas exactement comme ça : j'instanciais la PdfPCell à l'aide du constructeur PdfPCell(Image) puis j'y ajoutais le Paragraph.

    Suite à votre correction, l'image s'affiche, mais elle occupe toute la largeur de la cellule et n'est pas mise à l'échelle. Le texte apparait en dessous.

    Le code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Image imgTrace = Image.getInstance(trace);
    imgTrace.setAlignment(Image.TEXTWRAP);
    imgTrace.scaleToFit(centimetresVersPoints(6), centimetresVersPoints(5));
     
    Paragraph paragraph = new Paragraph(legende);
     
    PdfPCell cellule = new PdfPCell();
    cellule.addElement(imgTrace);
    cellule.addElement(paragraph);
     
    PdfPTable table = new PdfPTable(1);
    table.addCell(cellule);
    document.add(table);
    Remarques :
    • Je ne pense pas que TEXTWRAP puisse s'appliquer à une cellule puisqu'il s'agit d'un champ de Image. J'ai néanmoins essayé pour l'alignement vertical et l'alignement horizontal, ça n'a rien changé.
    • trace et legende sont des champs de l'objet courant
    • centimetresVersPoints est une méthode que j'utilise comme son nom l'indique pour convertir des centimètres vers les points, unité de mesure dans les PDF.
    • Je gère les exceptions un peu plus loin

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 17
    Par défaut
    Je me permets de relancer le sujet...

Discussions similaires

  1. Problème de mise en page d'image
    Par weetos dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 4
    Dernier message: 04/05/2007, 15h35
  2. Itext problèmes mise en page
    Par snetechen dans le forum Documents
    Réponses: 2
    Dernier message: 02/05/2007, 10h10
  3. Mise en page PDF vers html avec tableaux et images
    Par guyoms dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 28/03/2007, 00h14
  4. [iText]background & mise en page
    Par joneil dans le forum Documents
    Réponses: 8
    Dernier message: 31/01/2007, 17h46
  5. Problème de mise en page d'images
    Par Oberown dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 30/11/2006, 18h18

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