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

