フォームフィールドにおけるカスタムフォント
インタラクティブなフォームフィールドをスタイリングする際、SetFont() メソッドではカスタムフォントを適用できません。 エラーはなく、 フォントリクエストは無視され、フィールドはデフォルトの外観のままです。
カスタムフォントスタイリングはまだ SetFont() を通じてサポートされていません。 将来のリリースでこれが実現するまで、フィールドの DefaultAppearance プロパティを通じてフォント、サイズ、色を直接指定できます。このプロパティは生のPDF描画指示の文字列を取ります。
解決策
1. 手動で外観文字列を設定
ドキュメントをロードし、フィールドを取得し、フォント、サイズ、色を記述する DefaultAppearance 文字列を割り当てます:
var pdf = PdfDocument.FromFile("FilledForm.pdf");
TextFormField field = pdf.Form[0] as TextFormField;
// Manually define the appearance string:
// Format: /{FontName}-{Weight} {FontSize} Tf {R} {G} {B} rg
field.DefaultAppearance = "/AdobeThai-Bold 15 Tf 0.898 0.133 0.215 rg";
field.Value = "This is size 15";
pdf.SaveAs("customformfieldvalue15.pdf");
var pdf = PdfDocument.FromFile("FilledForm.pdf");
TextFormField field = pdf.Form[0] as TextFormField;
// Manually define the appearance string:
// Format: /{FontName}-{Weight} {FontSize} Tf {R} {G} {B} rg
field.DefaultAppearance = "/AdobeThai-Bold 15 Tf 0.898 0.133 0.215 rg";
field.Value = "This is size 15";
pdf.SaveAs("customformfieldvalue15.pdf");
Imports System
Dim pdf = PdfDocument.FromFile("FilledForm.pdf")
Dim field As TextFormField = TryCast(pdf.Form(0), TextFormField)
' Manually define the appearance string:
' Format: /{FontName}-{Weight} {FontSize} Tf {R} {G} {B} rg
field.DefaultAppearance = "/AdobeThai-Bold 15 Tf 0.898 0.133 0.215 rg"
field.Value = "This is size 15"
pdf.SaveAs("customformfieldvalue15.pdf")
文字列はPDFのテキスト演算子として解析されるため、名前を指定したフォントはドキュメントをレンダリングしているマシンにインストールされている必要があります。
2. 外観文字列を読み取る
文字列の各トークンはフィールドのスタイリングの一部にマップされます:
/AdobeThai-Bold: フォント名とウェイト。 このフォントはシステムにインストールされている必要があります。15 Tf: フォントサイズ、ここでは15ポイント。0.898 0.133 0.215 rg: RGBカラー、ここでは赤みがかった色合い。
これにより、後の IronPDF リリースで SetFont() のサポートが到着するまで、フォームフィールドテキストのフォントと色を完全に制御できます。

