部分填写 PDF 表单,使其可编辑
Posted
技术标签:
【中文标题】部分填写 PDF 表单,使其可编辑【英文标题】:Partially filling PDF forms, keeping them editable 【发布时间】:2012-07-30 07:26:18 【问题描述】:我们想向我的用户展示一个可编辑的 PDF(表单),其中我们已经填写了一些字段。然后,用户应通过浏览器使用 Adobe Reader 填写其余字段,然后保存/打印文件。
有没有办法做到这一点?
我尝试过使用 iTextSharp,它可以让我很好地将数据填充到字段中,但之后文件被“展平”,无法进一步编辑。
我发现了一个先前的问题 [Keep a pdf form editable after filling it with pdftk],据说这是不可能的。不过看了[Placing current date into a text field of a PDF form using javascript]后,感觉使用Adobe JavaScript API 或许可以实现。
有人有这方面的经验吗?
顺便说一句,我们的用户将使用 Internet Explorer 9+。
【问题讨论】:
PDF with fillable, saveable form using open-source software的可能重复 谢谢。我目前正在调查您链接的帖子中提出的一些建议。 【参考方案1】:我确定您已经尝试过,但请尝试调出您的压模对象,并将 Form flattening 属性设置为 false。原谅我的c#,但如果你甚至必须转换的话,转换应该不会太麻烦。
PdfStamper stamper = new PdfStamper(reader, new FileStream(fileName,
FileMode.Create, FileAccess.ReadWrite));
stamper.FormFlattening = false;
如果您已经这样做了,我不知道该告诉您什么,因为我没有足够的信息来确定任何替代方案。如果没有在代码中明确引用,我不完全确定默认表单展平属性设置为什么。让我知道这是否适合您。
干杯
【讨论】:
OP 说“(...)通过浏览器使用 Adobe Reader(...)”所以这个解决方案 will not work. 我尝试过使用FormFlatening = false,但是,它不起作用。我认为对文件的修改会以某种方式破坏文档的“数字签名”,这是 Adobe Reader 显示可编辑字段所必需的。 @MikeVarosky 更正:我们实际上得到了 stamper.FormFlatening = false 的工作。一开始我不知道出了什么问题,但现在我们有了一个工作 PDF 表单编辑器 :D.以上是关于部分填写 PDF 表单,使其可编辑的主要内容,如果未能解决你的问题,请参考以下文章
使用 PDFBOX 填写 PDF 表单中的多个字段并在填写后锁定编辑 pdf 文档
使用 PHP 将值插入到可编辑的 PDF 中,并使其保持可编辑状态
Adobe Reader来填写的表单无法保存,我怎么做pdf表单才能使别人可以用Adobe Reader来填写的表单能保存