【发布时间】:2013-03-31 02:49:51
【问题描述】:
现在我有一个表单模板,其中包含一些使用 iTextSharp 库从数据库中预填充的字段。然后,用户将填写其余字段并保存填写的表格。然后我将提取数据并将其放入数据库中。
目前我能够创建 PDF,并且它们可以很好地进行预填充。我什至可以在我的计算机上的 Adobe Reader 中编辑和保存它们。但是我发现当其他人打开这些相同的文件时,他们不允许保存表单。
我需要做什么才能让所有使用 Adobe Reader 的用户保存表单?这是我必须创建 PDF 的代码:
Dim pdfReader As PdfReader = New PdfReader(formPath)
pdfReader.RemoveUsageRights()
Dim pdfStamper As PdfStamper = New PdfStamper(pdfReader, New FileStream(outputPath, FileMode.Create))
Dim pdfFormFields As AcroFields = pdfStamper.AcroFields
Dim xfdfReader As XfdfReader = New XfdfReader(xfdfPath)
pdfFormFields.SetFields(xfdfReader)
pdfStamper.Close()
我曾经遇到过无法在Reader中保存表格的问题,这就是我添加这一行的原因:
pdfReader.RemoveUsageRights()
这使得 我 可以编辑它创建的 PDF,这让我认为一切都已解决。但没有其他人可以。
【问题讨论】:
-
您确定只有 Adobe Reader 而没有 Adobe Acrobat 吗?它是哪个版本的?
-
是的。我使用 Acrobat 创建 PDF 表单,但我肯定会在 Reader 中打开文件。我使用 Reader XI(显然 Adobe 认为罗马数字很酷)。我曾尝试使用 Reader 9 在另一台计算机上打开文件,所以它可能像版本问题一样简单,我需要我的用户安装 Reader XI。
-
事实上,Adobe 更改了默认情况下允许其 Reader 用户使用的内容。不过,如果您在附加模式下使用 PdfStamper,您甚至可以为旧 Adobe Reader 版本的用户提供服务。
标签: security pdf itextsharp adobe-reader pdf-form