AcroForm のテキスト フィールドに iTextSharp を入力しようとしています。Acroform テキストフィールドは、次のコードによって iTextSharp によっても作成されました。
TextField Field = new TextField(OutputWriter, FieldPos, "MyField");
OutputWriter.AddAnnotation(Field.GetTextField()); // OutputWriter is writing to form.pdf
このコードを使用してフォームに入力します。
PdfReader reader = new PdfReader("form.pdf");
PdfStamper filledOutForm = new PdfStamper(reader, new FileStream("filled_form.pdf", FileMode.Create));
AcroFields form = filledOutForm.AcroFields;
form.SetField("MyField", "some unicode data");
ただし、フィールドを手動で編集しない限り、filled_form.pdf を Acrobat Reader で開くと、Unicode 文字は表示されません (たとえば、フィールドに手動で文字を追加します)。
また、次の方法でフィールドのフォントを設定しようとしました:
BaseFont fieldFontRoman = BaseFont.CreateFont(@"C:\Windows\Fonts\times.ttf",
BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
form.SetFieldProperty("MyField", "textfont", fieldFontRoman, null);
次に、フィールドを手動で編集しない限り、filled_form.pdf を Acrobat Reader で開くと、すべて問題なく表示されます。その後、Unicode 以外の文字は消えます (空白に変わります)。CTRL + C でフィールドの内容全体をコピーしてメモ帳に貼り付けると、すべての文字が表示されるため、フィールドに表示されます。
お知らせ下さい。フィールドを手動で編集する必要なく、フィールド内のすべての文字を表示したいと思います。もちろん、手動で編集した後、文字が消えないようにしたいと思います。
ありがとうございました