Recherche…


Remarques

Créer un document dans lequel vous devez basculer entre les styles a souvent tendance à être fastidieux dans iText 5. Vous devez créer beaucoup d’objets Chunk et vous devez toujours faire un compromis entre l’application des styles directement sur chaque nouveau Chunk et la création une méthode d'assistance qui crée le Chunk pour vous.

Ce que nous avons corrigé dans iText 7:

Il est maintenant possible de chaîner les méthodes. Les setFont() , setFontSize() , addStyle() et d'autres renvoient toutes l'objet sur lequel elles sont appelées. L'ajout d'un Paragraph impliquant différents styles peut désormais être effectué sur une seule ligne:

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

À l'aide de l'objet Style , vous pouvez désormais également appliquer différentes propriétés (police, couleur de police, couleur d'arrière-plan, taille de police, addStyle() ) en une fois avec la méthode addStyle() .

Veulent en savoir plus?

Lisez Introduction à la classe PdfFont qui est le chapitre 1 du tutoriel iText 7: Building Blocks . Obtenez l'ebook gratuit!

HelloWorldStyles.java (iText 5)

Dans cet exemple iText 5, nous devons changer de style dans le même document:

entrer la description de l'image ici

La meilleure façon de le faire dans iText 5 est de créer une méthode pratique qui crée un Chunk dans le style à utiliser fréquemment; voir la méthode createBgChunk() :

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

Nous pouvons maintenant utiliser cette méthode dans le code qui crée le 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();
}

Source: developers.itextpdf.com

HelloWorldStyles.java (iText 7)

Dans cet exemple iText 7, nous devons changer de style dans le même document:

entrer la description de l'image ici

Le meilleur moyen d'y parvenir dans iText 7 est de créer un objet Style et d'appliquer ce Style à un objet Text :

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

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