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 :

table avec plusieurs lignes


Sujet :

Documents Java

  1. #1
    Membre régulier
    Inscrit en
    Mai 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 8
    Par défaut table avec plusieurs lignes
    Bonjour,

    je n'arrive pas avec iText à faire un simple cadre avec du texte contenant plusiuers lignes, j'ai essayé avec PdfPTable mais je n'arrive pas à me débarrasser des bordures à l'intérieur séparant les lignes tout en gardant la bordure générale du cadre (de la table).

    Merci

  2. #2
    Membre averti
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Par défaut 1 problème, 2 possibilités
    Bonjour,

    Avec iText, les bordures ne se gèrent pas au niveau de la table mais des cellules.

    La classe ci-dessous présente 2 solutions de faire :
    - la 1ère, 1 ligne par cellule, avec manipulation distincte des bordures de la cellule du bas, du haut, et la même pour celles du centre.
    - la 2nde, en créant plusieurs paragraphe que l'on met au sein d'une même cellule.

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    package itext.test;
     
    import java.io.FileOutputStream;
    import java.io.OutputStream;
     
    import com.itextpdf.text.Document;
    import com.itextpdf.text.Paragraph;
    import com.itextpdf.text.Phrase;
    import com.itextpdf.text.pdf.PdfPCell;
    import com.itextpdf.text.pdf.PdfPTable;
    import com.itextpdf.text.pdf.PdfWriter;
     
    public class TestTable2 {
     
        private static PdfPCell createCell(boolean top, boolean right, boolean bottom, boolean left, String string) {
            PdfPCell cell = new PdfPCell(new Phrase(string)) ;
            cell.setBorderWidth(0) ;
            if(top) { cell.setBorderWidthTop(1) ; }
            if(right) { cell.setBorderWidthRight(1) ; }
            if(bottom) { cell.setBorderWidthBottom(1) ; }
            if(left) { cell.setBorderWidthLeft(1) ; }
            return cell;
        }
        private static PdfPCell createCell(boolean top, boolean right, boolean bottom, boolean left, String[] strings) {
            PdfPCell cell = new PdfPCell() ;
            for(String string : strings) {
                cell.addElement(new Paragraph(string) ) ;
            }
            cell.setBorderWidth(0) ;
            if(top) { cell.setBorderWidthTop(1) ; }
            if(right) { cell.setBorderWidthRight(1) ; }
            if(bottom) { cell.setBorderWidthBottom(1) ; }
            if(left) { cell.setBorderWidthLeft(1) ; }
            return cell;
        }
        private static PdfPCell createCell(PdfPTable table) {
            PdfPCell cell = new PdfPCell(table) ;
            cell.setBorderWidth(0) ;
            cell.setPadding(5) ;
            return cell;
        }
     
        public static void main(String[] args) {
            OutputStream output = null ;
            Document document = null ;
            try {
                // Initialisation
                output = new FileOutputStream("c:/Test.pdf", false) ; //FIXME : mettre le chemin qui va bien !
                document = new Document() ;
                PdfWriter.getInstance(document, output);
                document.open() ;
     
                // Tableau 1 : une ligne par cellule
                PdfPTable table1 = new PdfPTable(new float[]{1}) ;
                table1.setWidthPercentage(100) ;
                table1.addCell( createCell(true, true, false, true, "Lorem ipsum dolor sit amet") );
                for(int index=0; index<3; index++) {
                    table1.addCell( createCell(false, true, false, true, "Lorem ipsum dolor sit amet") );
                }
                table1.addCell( createCell(false, true, true, true, "Lorem ipsum dolor sit amet") );
     
                // Tableau 2 : 1 cellule avec un paragraphe multi-ligne dedans
                PdfPTable table2 = new PdfPTable(new float[]{1}) ;
                table2.setWidthPercentage(100) ;
                table2.addCell( createCell(true, true, true, true, new String[]{"Lorem ipsum dolor sit amet", "Lorem ipsum dolor sit amet", "Lorem ipsum dolor sit amet", "Lorem ipsum dolor sit amet", "Lorem ipsum dolor sit amet"}) );
     
                // Mise en page
                PdfPTable content = new PdfPTable(new float[]{1}) ;
                content.setWidthPercentage(100) ;
                content.addCell(createCell(table1)) ;
                content.addCell(createCell(table2)) ;
     
                document.add(content) ;
     
            } catch(Exception e) { 
                e.printStackTrace(System.err) ; 
     
            } finally {
                if(document != null) { try{document.close() ;} catch(Exception ignore){} }
                if(output != null) { try{output.close();} catch(Exception ignore){} }
            }
     
        }
     
     
    }

Discussions similaires

  1. Réponses: 5
    Dernier message: 27/08/2010, 07h29
  2. Requête complexe avec plusieurs lignes par table
    Par Iwazaru dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/09/2009, 09h46
  3. Update d une table avec plusieurs valeurs
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/05/2006, 08h58
  4. Creation d'une table avec plusieurs clés
    Par mic79 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/06/2005, 11h17
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 17h24

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