Recherche…


Remarques

Le code pour convertir un fichier texte brut en un document PDF est assez simple, que vous utilisiez iText 5 ou iText 7. Dans iText 7, vous avez l’avantage de pouvoir définir l’alignement au niveau du document. Dans iText 5, vous devez définir l'alignement pour chaque objet Paragraph distinct.

Pour comprendre la différence réelle entre iText 5 et iText 7 dans cette paire d’exemples, nous devons examiner le PDF résultant. Dans iText 5, nous nous retrouvons avec 35 pages de texte. Dans iText 7, nous avons le même texte distribué sur 38 pages.

Le texte est plus facile à lire lorsqu'il est créé par iText 7 car différents paramètres par défaut sont utilisés lors de la création de la mise en page. Vous pourriez obtenir le même résultat avec le code iText 5, mais vous devrez alors modifier certaines valeurs en fonction de l'espacement.

Dans iText 7, les valeurs par défaut ont été choisies en fonction de 16 années d'expérience avec iText. De cette façon, vous obtenez un meilleur résultat avec moins de code.

Veulent en savoir plus?

Lisez Travailler avec le RootElement qui est le chapitre 5 du tutoriel iText 7: Building Blocks . Obtenez l'ebook gratuit!

Text2Pdf.java (iText 5)

Supposons que nous ayons le fichier texte suivant: jekyll_hyde.txt

Comment pouvons-nous le convertir en PDF qui ressemble à ceci:

entrer la description de l'image ici

En utilisant iText 5, nous utiliserions le code suivant:

public void createPdf(String dest)
throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    BufferedReader br = new BufferedReader(new FileReader(TEXT));
    String line;
    Paragraph p;
    Font normal = new Font(FontFamily.TIMES_ROMAN, 12);
    Font bold = new Font(FontFamily.TIMES_ROMAN, 12, Font.BOLD);
    boolean title = true;
    while ((line = br.readLine()) != null) {
        p = new Paragraph(line, title ? bold : normal);
        p.setAlignment(Element.ALIGN_JUSTIFIED);
        title = line.isEmpty();
        document.add(p);
    }
    document.close();
}

Source: developers.itextpdf.com

Text2Pdf.java (iText 7)

Supposons que vous ayez le fichier texte suivant: jekyll_hyde.txt

Comment pouvons-nous le convertir en PDF qui ressemble à ceci:

entrer la description de l'image ici

En utilisant iText 7, nous aurions besoin du code suivant:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf)
        .setTextAlignment(TextAlignment.JUSTIFIED);
    BufferedReader br = new BufferedReader(new FileReader(TEXT));
    String line;
    PdfFont normal = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
    PdfFont bold = PdfFontFactory.createFont(FontConstants.TIMES_BOLD);
    boolean title = true;
    while ((line = br.readLine()) != null) {
        document.add(new Paragraph(line).setFont(title ? bold : normal));
        title = line.isEmpty();
    }
    document.close();
}

Source: developers.itextpdf.com et le tutoriel iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow