gpt4 book ai didi

encoding - iTextSharp - acroform 字段编码

转载 作者:行者123 更新时间:2023-12-01 11:01:33 26 4
gpt4 key购买 nike

我正在尝试使用 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 复制该字段的全部内容并将其粘贴到记事本,我可以看到所有字符。

请指教。我希望在不需要手动编辑字段的情况下查看字段中的所有字符,当然在手动编辑后我不希望任何字符消失。

谢谢

最佳答案

创建 PdfStamper 后设置 SubstitutionFont:

stamper.AcroFields.AddSubstitutionFont(myFont.BaseFont);

关于encoding - iTextSharp - acroform 字段编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10271696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com