Zoeken…


Opmerkingen

Een document maken waarin u tussen stijlen moet schakelen, is vaak vervelend in iText 5. U moet veel Chunk objecten maken en u moet altijd een afweging maken tussen het rechtstreeks toepassen van de stijlen op elke nieuwe Chunk of het maken van een hulpmethode die de Chunk voor u maakt.

Wat we hebben opgelost in iText 7:

Het is nu mogelijk om methoden te koppelen. De setFont() , setFontSize() , addStyle() en andere methoden retourneren allemaal het object waarop ze worden aangeroepen. Een Paragraph toevoegen met verschillende stijlen kan nu op één regel:

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("."));

Met het object Style kunt u nu ook verschillende eigenschappen (lettertype, letterkleur, achtergrondkleur, lettergrootte, ...) in één keer addStyle() met de methode addStyle() .

Wil meer weten?

Lees Introductie van de PdfFont-klasse uit hoofdstuk 1 in de tutorial iText 7: Building Blocks . Ontvang het gratis ebook!

HelloWorldStyles.java (iText 5)

In dit iText 5-voorbeeld moeten we schakelen tussen verschillende stijlen in hetzelfde document:

voer hier de afbeeldingsbeschrijving in

De beste manier om dit in iText 5 te doen, is om een gemaksmethode te maken die een Chunk creëert in de stijl die vaak moet worden gebruikt; zie de methode createBgChunk() :

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

We kunnen deze methode nu gebruiken in de code die de PDF maakt:

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

Bron: developers.itextpdf.com

HelloWorldStyles.java (iText 7)

In dit iText 7-voorbeeld moeten we schakelen tussen verschillende stijlen in hetzelfde document:

voer hier de afbeeldingsbeschrijving in

De beste manier om dit in iText 7 te bereiken, is door een Style object te maken en die Style op een Text object toe te passen:

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

Bron: developers.itextpdf.com en de tutorial iText 7: Building Blocks .



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow