5.20193.637
5.20193.637

PDF:フォント

標準フォント

そのまま使用できるPdfDocumentは、次のフォントをサポートします。

  • Courier
  • Helvetica
  • Times
  • Symbol
  • ZapfDingbats

最初の3つのフォントには、それぞれ"normal"、"bold"、"oblique"、"bold oblique"の4つの書体があります。これが「14のPDF標準フォント」と呼ばれるフォントセットです。

フォントの設定

PdfFontクラスは特定のフォントを記述し、そのコンストラクタは次の引数を受け取ります。

  • フォントファミリ:フォントファミリ名、または"monospace"、"serif"などの汎用フォントファミリ名を含むフォントファミリ名のカンマ区切り優先順位リスト。PdfDocumentは、最も近い登録済みフォントを使用します。 たとえば、"times"、"Roboto, serif"などです。標準フォントは"courier"、"helvetica"、"times"、"symbol"、"zapfdingbats"で表されます。
  • フォントサイズ
  • フォントスタイル*:"normal"、"italic"、"oblique"のいずれかです。
  • フォントウェイト:"normal"、"bold"、"100"、"200"、"300"、"400"、"500"、"600"、"700"、"800"、"900"のいずれかです。

次のインスタンスは、PdfDocumentのデフォルトのドキュメントフォントです。

import * as wjPdf from '@grapecity/wijmo.pdf';

new wjPdf.PdfFont("times", 10, "normal", "normal");

PdfDocumentのフォントを使用すると、フォントは次の2つの方法で指定できます。

drawTextメソッドの使用

drawTextメソッドはoptionsオブジェクトを受け取り、PdfFontインスタンスはfontプロパティからこのオブジェクトを渡すことができます。

doc.drawText("Wijmo", null, null, {
    font: new wjPdf.PdfFont("times", 10, "normal", "bold")
});

setFontメソッドの使用

setFontメソッドを使用してデフォルトのドキュメントを変更することもできます。これは、drawTextメソッドを使用してドキュメントにテキストを描画する前に実行する必要があります。同じフォントを使用して大量のテキストを描画する場合は、この方法が便利です。

doc.setFont(new wjPdf.PdfFont("times", 10, "normal", "bold"));
doc.drawText("Wijmo");

指定されたstyleプロパティとweightプロパティに正確に一致するフォントが見つからない場合は、最も近い登録済みフォントが使用されます。

このサンプルでは、drawTextメソッドとsetFontメソッドを使用して、さまざまなフォントでテキストを描画する方法を示します。

独自フォントの埋め込み

PdfDocumentは、標準フォントのほかに独自フォントをドキュメントに埋め込むことができます。以下のフォント形式がサポートされています。

  • .ttf
  • .ttc
  • .dfont

まず、registerFontメソッドまたはregisterFontAsyncメソッドを使用して、独自フォントを登録する必要があります。このメソッドは、URLからフォントをロードし、それを指定されたフォントファミリ名とフォント属性(スタイル、太さ、serifフォントかsans serifフォントかなど)に関連付けます。その後、他の標準フォントと同様に、そのフォントファミリ名をPdfFontクラスと連携して使用できます。

以下の例では、IPAゴシックフォントファミリを使用し、ipaexg.ttfフォントをドキュメントに埋め込みます。

例:

doc.registerFont({
    source: "resources/fonts/ipaexg.ttf",
    name: "ipaexg",
    style: "normal",
    weight: "normal",
    sansSerif: true
});

doc.drawText("これはIPAゴシックフォントです。", null, null, {
    // 等価のフォント:new wijmo.pdf.PdfFont("ipaexg", 10, "normal", "normal")
    font: new wjPdf.PdfFont("ipaexg")
});