【发布时间】:2012-04-22 20:10:30
【问题描述】:
我正在尝试使用 iTextSharp 填写 AcroForm 的文本字段。 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");
但是,当我在 Acrobat Reader 中打开 Filled_form.pdf 时,除非我手动编辑该字段(例如,我手动将一个字符附加到该字段),否则 Unicode 字符是不可见的。
我还尝试通过以下方式设置字段的字体:
BaseFont fieldFontRoman = BaseFont.CreateFont(@"C:\Windows\Fonts\times.ttf",
BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
form.SetFieldProperty("MyField", "textfont", fieldFontRoman, null);
然后,当我在 Acrobat Reader 中打开 Filled_form.pdf 时,一切看起来都很好,除非我手动编辑该字段。之后,非 unicode 字符消失(它们变为空格)。它们在字段中,因为如果我通过 CTRL + C 复制字段的全部内容并将其粘贴到记事本,我可以看到所有字符。
请指教。我希望无需手动编辑字段即可查看字段中的所有字符,当然在手动编辑后我希望没有字符消失。
谢谢
【问题讨论】:
标签: encoding itextsharp