Csharp/C#教程:展平后AcroForm值丢失分享


展平后AcroForm值丢失

我正在使用LibreOffice 4.1.3.2来生成可填写的PDF:

  1. 创建了一个Writer文档
  2. 设置一些文本和测试字段
  3. 导出为PDF

使用Acrobar Reader打开pdf文件会显示正确的可填写pdf。
接下来我使用iTextSharp 5.4.5填充字段并保存展平文档:

var pdf = new PdfReader(srcFilename); using (var fw = new FileStream(dstFilename, FileMode.Create)) { var stamper = new PdfStamper(pdf, fw); var f = stamper.AcroFields; f.SetField("field1", "John Doe"); f.SetField("field2", "12/04/2013"); stamper.FormFlattening = true; stamper.Close(); } pdf.Close(); 

问题是填充的字段值在新文档中完全消失!
我认为没有找到或填充字段,但发现评论stamper.FormFlattening = true字段值在保存的pdf中!
当然,我需要一个平坦的PDF格式…

这有解决方案吗?

使用Open Office创建表单时,Open Office会设置一个标志,告诉iText不要创建外观。 如果查看FillDataSheet示例,您将看到我们使用以下行覆盖它:

 fields.setGenerateAppearances(true); 

在您的特定C#代码段中,这将是:

 f.GenerateAppearances = true; 

在设置字段之前设置此值非常重要,否则将不会创建外观。

上述就是C#学习教程:展平后AcroForm值丢失分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/992446.html

(0)
上一篇 2021年12月24日
下一篇 2021年12月24日

精彩推荐