混乱のない大騒ぎの解決策として、iText を使用してテキストを PDF に追加するだけです。たとえば、読み込まれた PDF ドキュメントにテキストを追加するには、次の操作を実行できます。
PdfContentByte cb= ...;
cb.BeginText();
cb.SetFontAndSize(font, fontSize);
float x = ...;
float y = ...;
cb.SetTextMatrix(x, y);
cb.ShowText(fieldValue);
cb.EndText();
そこから、別のファイルとして保存し、印刷します。
ただし、フォーム フィールドは、テンプレートからの pdf ドキュメントの生成に使用する方法であることがわかりました。
フォーム フィールド (Adobe Acrobat で追加) を含むテンプレートがある場合は、次の 2 つの選択肢のいずれかがあります。
- 基本的にフォームのフィールドの値のリストである FDF ファイルを作成します。FDF は、元のドキュメントを参照する単純なテキスト ドキュメントであるため、PDF を開くと、FDF によって提供されたフィールド値でドキュメントが読み込まれます。
- または、iText / iTextSharp などのライブラリを使用してテンプレートを読み込み、フォーム フィールドに手動で入力して、別の pdf として保存します。
サンプルの FDF ファイルは次のようになります ( Planet PDFから盗用) :
%FDF-1.2
%âãÏÓ
1 0 obj
<<<
/F(Example PDF Form.pdf)
/Fields[
<<
/T(myTextField)
/V(myTextField default value)
>>
]
>>
>> endobj trailer
<>
%%EOF
FDF は形式が単純でサイズが小さいため、これが推奨される方法であり、この方法はどの言語でもうまく機能するはずです。
プログラムでフィールドに入力する場合は、次の方法で iText を使用できます。
PdfAcroForm acroForm = writer.AcroForm;
acroForm.Put(new PdfName(fieldInfo.Name), new PdfString(fieldInfo.Value));