itext
スタイル:iText 5とiText 7
サーチ…
備考
頻繁にスタイルを切り替える必要がある文書を作成することは、iText 5で面倒な傾向があります。多くのChunk
オブジェクトを作成する必要があります。また、スタイルを新しいChunk
直接適用するか、 Chunk
を作成するヘルパーメソッドです。
私たちがiText 7で修正したもの:
メソッドを連鎖させることが可能になりました。 setFont()
、 setFontSize()
、 addStyle()
、およびその他のメソッドはすべて、呼び出されたオブジェクトを返します。さまざまなスタイルを含むParagraph
を1行に追加できるようになりました。
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("."));
Style
オブジェクトを使用して、 addStyle()
メソッドを使用して、さまざまなプロパティ(フォント、フォントの色、背景の色、フォントのサイズなど)を一度に適用できるようになりました。
もっと知りたい?
iText 7:Building Blocksチュートリアルの第1章であるPdfFontクラスの紹介を読んでください。 無料の電子ブックを手に入れよう!
HelloWorldStyles.java(iText 5)
このiText 5の例では、同じドキュメント内の異なるスタイルを切り替える必要があります。
iText 5でこれを行う最善の方法は、頻繁に使用する必要があるスタイルのChunk
を作成する便利なメソッドを作成することです。 createBgChunk()
メソッドを参照してください。
public Chunk createBgChunk(String s, Font font) {
Chunk chunk = new Chunk(s, font);
chunk.setBackground(BaseColor.LIGHT_GRAY);
return chunk;
}
このメソッドを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();
}
HelloWorldStyles.java(iText 7)
このiText 7の例では、同じドキュメント内の異なるスタイルを切り替える必要があります。
これをiText 7で実現する最善の方法は、 Style
オブジェクトを作成し、そのStyle
を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("."));
}
}
出典: developers.itextpdf.comおよびiText 7:Building Blocksチュートリアル