加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 展平后缺少AcroForm值

发布时间:2020-12-16 00:10:03 所属栏目:百科 来源:网络整理
导读:我正在使用LibreOffice 4.1.3.2生成可填写的PDF: 创建了一个Writer文档 设置一些文本和测试字段 导出为PDF 使用Acrobar Reader打开pdf文件显示正确的可填写pdf. 接下来我使用iTextSharp 5.4.5填充字段并保存展平文档: var pdf = new PdfReader(srcFilename
我正在使用LibreOffice 4.1.3.2生成可填写的PDF:

>创建了一个Writer文档
>设置一些文本和测试字段
>导出为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();

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

这有解决方案吗?

解决方法

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

fields.setGenerateAppearances(true);

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

f.GenerateAppearances = true;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读