

私はiText7を使用して、2つのフォントを混在させたPDFファイルを作成しています。（例：パラグラフの中央に太字のテキストを配置）  
iText5を使用していた時は、Chunksを使用し実装していましたが、

[code]

    Font regular = new Font(FontFamily.HELVETICA, 12);
    Font bold = Font font = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
    Phrase p = new Phrase("NAME: ", bold);
    p.add(new Chunk(cc_cust_dob, regular));
    PdfPCell cell = new PdfPCell(p);
    
[/code]

iText7でこれを行う方法が見つかりませんでした。 iText7で異なるフォントを混ぜてパラグラフを作成する方法はありますか？  
注：csharpを使用していますが、javaの例でも良いです。


CC BY-SA 4.0
2018-11-07T07:24:39.550
50049
2018-11-07T07:47:25.810
2018-11-07T07:46:51.290
2238
30882
question
java c# pdf
iText7で異なるフォントを混ぜてパラグラフを作成する方法


詳細は[iText7：iText7: building blocks "Chapter 1: Introducing the PdfFont
class"](https://developers.itextpdf.com/content/itext-7-building-
blocks/chapter-1-introducing-pdffont-class)をご参照ください。
この章では、iText5で行っていた方法より、iText7でフォントを切り替える方法がより簡単であることが分かります。iText7では、デフォルトのフォント・フォントサイズで作業したり、`Style`オブジェクトを定義したり再利用したりすることができます。

例：  

[code]

    Style normal = new Style();
    PdfFont font = PdfFontFactory.createFont(FontConstants.TIMES_ROMAN);
    normal.setFont(font).setFontSize(14);
    Style code = new Style();
    PdfFont monospace = PdfFontFactory.createFont(FontConstants.COURIER);
    code.setFont(monospace).setFontColor(Color.RED)
        .setBackgroundColor(Color.LIGHT_GRAY);
    Paragraph p = new Paragraph();
    p.add(new Text("The Strange Case of ").addStyle(normal));
    p.add(new Text("Dr. Jekyll").addStyle(code));
    p.add(new Text(" and ").addStyle(normal));
    p.add(new Text("Mr. Hyde").addStyle(code));
    p.add(new Text(".").addStyle(normal));
    document.add(p);
    
[/code]

最初に、`normal`と呼ばれる14pt Times-Romanを使用する`Style`を定義します。
次に、`code`（灰色の背景・赤文字）と呼ばれる12pt Courierを使用する`Style`を定義します。
そして、これらのスタイルを使用する`Text`オブジェクトを使用して`Paragraph`を作成します。

次の例のように、`add（）`コメントを紐づけることができます。

[code]

    Text title1 = new Text("The Strange Case of ").setFontSize(12);
    Text title2 = new Text("Dr. Jekyll and Mr. Hyde").setFontSize(16);
    Text author = new Text("Robert Louis Stevenson");
    Paragraph p = new Paragraph().setFontSize(8)
        .add(title1).add(title2).add(" by ").add(author);
    document.add(p);
    
[/code]

新しく作成された`Paragraph`のフォントサイズを8ptに設定します。
このフォントサイズは、オブジェクトがそのデフォルトサイズを上書きしない限り、`Paragraph`に追加された全てのオブジェクトによって継承されます。  
`title1`の場合、12ptのフォントサイズを定義し、`title2`の場合、16ptのフォントサイズを定義します。 `String（
"by"）`として追加されたコンテンツと、フォントサイズが定義されていない`Text`オブジェクトとして追加されたコンテンツは、追加された`Paragraph`から8ptのフォントサイズを継承します。  
※これは公式チュートリアルにある内容です。


CC BY-SA 4.0
2018-11-07T07:47:25.810
50050
2018-11-07T07:47:25.810
30882
50049
answer