Ricerca…


Osservazioni

La creazione di un documento in cui devi passare da uno stile all'altro tende a essere noioso in iText 5. Devi creare molti oggetti Chunk e devi sempre fare un compromesso tra applicare gli stili direttamente a ogni nuovo Chunk o creare un metodo di supporto che crea il Chunk per te.

Cosa abbiamo risolto in iText 7:

Ora è possibile concatenare metodi. setFont() , setFontSize() , addStyle() e altri metodi restituiscono tutti l'oggetto su cui sono stati richiamati. L'aggiunta di un Paragraph coinvolge diversi stili può ora essere eseguita in un'unica riga:

document.add(
    new Paragraph()
        .add("In this example, named ")
        .add(new Text("HelloWorldStyles").addStyle(style))
        .add(", we experiment with some text in ")
        .add(new Text("code style").addStyle(style))
        .add("."));

Usando l'oggetto Style , ora puoi anche applicare diverse proprietà (font, colore del font, colore di sfondo, dimensione del font, ...) in un addStyle() solo con il metodo addStyle() .

Voglio sapere di più?

Leggi Introduzione alla classe PdfFont, che è il capitolo 1 del tutorial di iText 7: Building Blocks . Ottieni l'ebook gratuito!

HelloWorldStyles.java (iText 5)

In questo esempio di iText 5, è necessario passare da uno stile all'altro nello stesso documento:

inserisci la descrizione dell'immagine qui

Il modo migliore per farlo in iText 5 è creare un metodo di convenienza che crei un Chunk nello stile che deve essere usato frequentemente; guarda il metodo createBgChunk() :

public Chunk createBgChunk(String s, Font font) {
    Chunk chunk = new Chunk(s, font);
    chunk.setBackground(BaseColor.LIGHT_GRAY);
    return chunk;
}

Ora possiamo usare questo metodo nel codice che crea il PDF:

public void createPdf(String dest)
throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(document, new FileOutputStream(dest));
    document.open();
    Font code = new Font(FontFamily.COURIER, 12, Font.NORMAL, BaseColor.RED);
    Paragraph p = new Paragraph("In this example, named ");
    p.add(createBgChunk("HelloWorldStyles", code));
    p.add(", we experiment with some text in ");
    p.add(createBgChunk("code style", code));
    p.add(".");
    document.add(p);
    document.close();
}

Fonte: developers.itextpdf.com

HelloWorldStyles.java (iText 7)

In questo esempio di iText 7, è necessario passare da uno stile all'altro nello stesso documento:

inserisci la descrizione dell'immagine qui

Il modo migliore per raggiungere questo obiettivo in iText 7, è quello di creare uno Style oggetto, e di applicare quello Style a un Text oggetto:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    PdfFont code = PdfFontFactory.createFont(FontConstants.COURIER);
    Style style = new Style()
        .setFont(code)
        .setFontSize(12)
        .setFontColor(Color.RED)
        .setBackgroundColor(Color.LIGHT_GRAY);
    try (Document document = new Document(pdf)) {
        document.add(
            new Paragraph()
                .add("In this example, named ")
                .add(new Text("HelloWorldStyles").addStyle(style))
                .add(", we experiment with some text in ")
                .add(new Text("code style").addStyle(style))
                .add("."));
    }
}

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