AcroForm值压扁后失踪 [英] AcroForm values missing after flattening
问题描述
我用的LibreOffice 4.1.3.2产生一个可填写的PDF:
I'm using LibreOffice 4.1.3.2 to produce a fillable PDF:
- 创建一个Writer文档
- 设置一些文本和测试领域
- 导出为PDF
与Acrobar阅读器打开PDF文件显示正确填写的PDF。结果
接下来,我用iTextSharp的5.4.5填写字段并保存扁平文件:
Opening pdf file with Acrobar Reader shows a correct fillable pdf.
Next I use iTextSharp 5.4.5 to fill fields and save flattened document:
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 ...
Problem is that filled fields values completely disappear in new document!
I thought fields were not found or filled, but discovered that commenting stamper.FormFlattening = true
field values are there in saved pdf!!
Naturally I need a flattened pdf...
有没有解决这个?
推荐答案
在创建使用开放式办公形式,开放式办公室设置一个标志,告诉iText的不是创造亮相。如果你看一下 FillDataSheet 例如,你会看到我们有以下行覆盖此:
When creating a form using Open Office, Open Office sets a flag telling iText not to create appearances. If you look at the FillDataSheet example, you'll see that we override this with the following line:
fields.setGenerateAppearances(true);
在特定的C#代码段,这将是:
In your specific C# snippet, that would be:
f.GenerateAppearances = true;
设置字段前设置此值是非常重要或外观将不会创建。
It's important to set this value before setting the fields or the appearances won't be created.
这篇关于AcroForm值压扁后失踪的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!