首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >设置冲压机FormFlatttening=true将导致不输出

设置冲压机FormFlatttening=true将导致不输出
EN

Stack Overflow用户
提问于 2015-03-07 05:36:11
回答 2查看 1.3K关注 0票数 0

在VS2010中使用itextsharp v5.5.5.0设置图章FormFlattening = true时,不会将任何文件数据写入输出pdf。如果设置为false,则所有数据都存在&正确但仍可编辑(我不希望这样)。

代码语言:javascript
复制
PdfReader pdfTemplate = new PdfReader("..\\..\\pdf\\BFC-Template.pdf");
FileStream fileOutputStream = new FileStream("..\\..\\pdf\\BFC.pdf", FileMode.Create);
PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);

stamper.AcroFields.SetField("FitID", "1234");
stamper.AcroFields.SetField("FitBy", "Fred Flintstone");
stamper.AcroFields.SetField("FitDate", "03/11/2015");
stamper.AcroFields.SetField("FitLocation", "Bedrock");

stamper.FormFlattening = true;
stamper.Close();
pdfTemplate.Close();
fileOutputStream.Close();
EN

回答 2

Stack Overflow用户

发布于 2015-03-07 05:50:01

尝试添加:

代码语言:javascript
复制
stamper.AcroFields.GenerateAppearances = true;

编辑:

如果您的表单是动态表单。你可能需要改变

代码语言:javascript
复制
stamper.AcroFields.SetField("FitID", "1234");

至:

代码语言:javascript
复制
stamper.AcroFields.Xfa.DatasetsSom.Name2Node["FitID"].InnerText = "1234"
票数 2
EN

Stack Overflow用户

发布于 2015-03-07 05:59:43

这并不重要,但是您可以尝试从pdfStamper字段实例化一个AcroFields对象。

代码语言:javascript
复制
PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream);
AcroFields pdfFields = pdfStamper.AcroFields;

然后,您只需使用pdfFields设置每个字段:

代码语言:javascript
复制
pdfFields.SetField("FitID", "1234");
pdfFields.SetField("FitBy", "Fred Flintstone");
pdfFields.SetField("FitDate", "03/11/2015");
pdfFields.SetField("FitLocation", "Bedrock");
stamper.FormFlattening = true;
stamper.Close();

我有这样的设置,它对我很有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28908081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档