itext
Styles: iText 5 versus iText 7
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:
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:
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 .