gpt4 book ai didi

c# - 展平后缺少 AcroForm 值

转载 作者:行者123 更新时间:2023-11-30 13:26:36 24 4
gpt4 key购买 nike

我正在使用 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 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20526634/

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