我使用 iTextSharp 5.5.13 创建带有文本 AcroFields 的 pdf 文件,然后在第二步中编辑 pdf,用一些值填充 AcroFields。
对于某些字段我必须设置字符间距,所以我使用CreateAppearance
方法。这是代码:
var appearance = writer.DirectContent.CreateAppearance(box.Width, box.Height);
appearance.SetFontAndSize(baseFont, obj.FontSize);
appearance.SetColorFill(new iTextSharp.text.BaseColor(obj.Color));
appearance.SetCharacterSpacing(obj.CharSpacing);
formField.DefaultAppearanceString = appearance;
formField.SetAppearance(iTextSharp.text.pdf.PdfAnnotation.APPEARANCE_NORMAL, appearance);
writer.AddAnnotation(formField);
此代码在可编辑字段中产生具有精细字符间距的预期 pdf 结果。
问题是当我编辑 pdf 以填充 AcroFields 时:
pdfStamper.FormFlattening = true;
pdfStamper.AcroFields.GenerateAppearances = true;
pdfStamper.AcroFields.SetField(fieldName, fieldValue);
生成的扁平化 pdf 不保持外观字符间距...
我的代码有什么问题?
谢谢