我有一个 PDF,我在其中添加了一些 TextField。
var txtFld = new TextField(stamper.Writer, new Rectangle(cRightX - cWidthX, cTopY3, cRightX, cTopY), FieldNameProtocol) { Font = bf, FontSize = cHeaderFontSize, Alignment = Element.ALIGN_RIGHT, Options = PdfFormField.FF_MULTILINE };
stamper.AddAnnotation(txtFld.GetTextField(), 1);
上面的“bf”是嵌入在 PDF 中的 Unicode 字体:
BaseFont bf = BaseFont.CreateFont(UnicodeFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED); // Create a Unicode font to write in Greek...
稍后我用希腊文本填充这些字段。
var acrof = stamper.AcroFields;
acrof.SetField(fieldName, field.Value/*, field.Value*/); // Set the text of the form field.
acrof.SetFieldProperty(fieldName, "setfflags", PdfFormField.FF_READ_ONLY, null); // Make it readonly.
当我查看 PDF 时,大多数情况下文本都丢失了,如果我在 Acrobat 中单击(不可见的)TextField,文本就会变得可见(直到它再次失去焦点)。
知道这里发生了什么吗?我也尝试过使用非嵌入字体,但我得到了同样的结果(尽管我似乎仍然在 PDF 中获得了与我使用的字体相似的嵌入字体)。我不知道我是否错过了某事。