サーチ…


備考

頻繁にスタイルを切り替える必要がある文書を作成することは、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();
}

出典: developers.itextpdf.com

HelloWorldStyles.java(iText 7)

このiText 7の例では、同じドキュメント内の異なるスタイルを切り替える必要があります。

ここに画像の説明を入力

これをiText 7で実現する最善の方法は、 Styleオブジェクトを作成し、そのStyleTextオブジェクトに適用することです。

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チュートリアル



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow