itext
Stilar: iText 5 kontra iText 7
Sök…
Anmärkningar
Att skapa ett dokument där du måste växla mellan stilar tenderar ofta att vara tråkigt i iText 5. Du måste skapa en massa Chunk
objekt och du måste alltid göra en avvägning mellan att tillämpa stilarna direkt på varje nytt Chunk
eller skapa en hjälpmetod som skapar Chunk
för dig.
Vad vi fixade i iText 7:
Det är nu möjligt att kedja metoder. setFont()
, setFontSize()
, addStyle()
och andra metoder returnerar alla objektet som de åberopas på. Lägga till ett Paragraph
involverar olika stilar kan nu göras på en rad:
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("."));
Med hjälp av Style
kan du nu också använda olika egenskaper (teckensnitt, teckensnittsfärg, bakgrundsfärg, teckenstorlek, ...) på en gång med addStyle()
.
Vill veta mer?
Läs Introduktion till PdfFont-klassen som är kapitel 1 i iText 7: Building Blocks- handledning. Skaffa gratis e-bok!
HelloWorldStyles.java (iText 5)
I detta iText 5-exempel måste vi växla mellan olika stilar i samma dokument:
Det bästa sättet att göra detta i iText 5 är att skapa en bekvämhetsmetod som skapar en Chunk
i den stil som måste användas ofta; se createBgChunk()
:
public Chunk createBgChunk(String s, Font font) {
Chunk chunk = new Chunk(s, font);
chunk.setBackground(BaseColor.LIGHT_GRAY);
return chunk;
}
Vi kan nu använda den här metoden i koden som skapar PDF: n:
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();
}
Källa: utvecklare.itextpdf.com
HelloWorldStyles.java (iText 7)
I detta iText 7-exempel måste vi växla mellan olika stilar i samma dokument:
Det bästa sättet att uppnå detta i iText 7 är att skapa ett Style
objekt och använda den Style
på ett Text
objekt:
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("."));
}
}
Källa: utvecklare.itextpdf.com och iText 7: Handledning för byggstenar .