Ricerca…


Osservazioni

Il codice per convertire un file di testo normale in un documento PDF è piuttosto semplice se si utilizza iText 5 o iText 7. In iText 7, si ha il vantaggio di poter definire l'allineamento a livello del documento. In iText 5, devi impostare l'allineamento per ogni oggetto Paragraph separato.

Per comprendere la reale differenza tra iText 5 e iText 7 in questa coppia di esempi, dobbiamo dare un'occhiata al PDF risultante. In iText 5, ci ritroviamo con 35 pagine di testo. In iText 7, abbiamo lo stesso testo distribuito su 38 pagine.

Il testo è più facile da leggere quando viene creato da iText 7 perché durante la creazione del layout vengono utilizzati diversi valori di default. È possibile ottenere lo stesso risultato dal codice iText 5, ma in tal caso è necessario modificare alcuni valori rispetto alla spaziatura.

In iText 7, i valori predefiniti sono stati scelti in base a 16 anni di esperienza con iText. In questo modo, ottieni un risultato migliore con meno codice.

Voglio sapere di più?

Leggi Lavorare con RootElement, che è il capitolo 5 del tutorial di iText 7: Building Blocks . Ottieni l'ebook gratuito!

Text2Pdf.java (iText 5)

Supponiamo di avere il seguente file di testo: jekyll_hyde.txt

Come lo convertiamo in un PDF che assomiglia a questo:

inserisci la descrizione dell'immagine qui

Usando iText 5, useremmo il seguente codice:

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();
}

Fonte: developers.itextpdf.com

Text2Pdf.java (iText 7)

Supponiamo di avere il seguente file di testo: jekyll_hyde.txt

Come lo convertiamo in un PDF che assomiglia a questo:

inserisci la descrizione dell'immagine qui

Quando utilizzi iText 7, avremmo bisogno del seguente codice:

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();
}

Fonte: developers.itextpdf.com e il tutorial di iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow