编辑浏览器中嵌入的pdf并将pdf直接保存到服务器

我有这个工作流程。

  1. 将包含表单字段的pdf加载到浏览器中(pdf在iframe或div中)。
  2. 用户填写它
  3. 用户单击“提交”按钮(在另一个div中)以保存pdf。

我想在#3中做的是收集与表单字段相关的所有数据,并将数据保存到数据库表中。 我不希望用户将pdf保存到他/她的本地计算机并将其上传到服务器。 我想让它更加用户友好。

我将在服务器端使用Java / JSP / Servlet。 我查看了似乎在处理pdf文件时流行/众所周知的itext,但是itext似乎用于生成/编辑pdf,但我不确定是否有任何方法可以使某个function能够编辑嵌入浏览器的pdf并保存到数据库。

是否有任何adobe软件提供某种function,我可以注入某种可以捕获用户提交的脚本? 我知道PDF不是前端脚本语言,但我只想问。

我打算创建一个HTML表单,看起来像这个PDF,当用户点击“提交”按钮时将其填充到PDF中,但正如我所说,我想让它更加用户友好。

我很感激,如果有人看过这种类型的function或者已经完成它给了我一些资源或提示。

我的假设:您有一个交互式PDF文档,其AcroForm字段类似于submit_me.pdf :

在此处输入图像描述

主要区别在于我在表单上有不同的按钮:

  • POST将发布我填写的数据,就像PDF是HTML表单一样,
  • FDF将以表格数据格式将数据发布到服务器,这种格式与PDF非常相似,但只包含数据对,而不是实际forms,
  • XFDF将以XML Forms Data Format(格式数据格式的XML版本)将数据发布到服务器。
  • RESET会将所有字段重置为初始值。

SubmitForm示例显示按钮如何添加到现有表单。 请注意,除了本示例中描述的选项之外,还有更多选项。

例如:

  • 您也可以通过调整一些参数来使用GET,而不是使用POST方法,
  • 您也可以将完整的PDF(数据+表单)提交给服务器,但这仅在最终用户使用Adobe Acrobat作为插件时才有效。 如果插件仅仅是Adobe Reader,这将不起作用,

为了向您展示提交表单时的期望,我编写了ShowData servlet。 此servlet返回发送到服务器的字节。

如果是POST:

personal.loginname=jdoe&personal.name=John+Doe&personal.password=test&personal.reason=reason&post.x=29&post.y=7 

请注意,我还定义了按钮,使我的点击坐标传递给服务器。 你可能不需要这个。

如果是FDF:

 %FDF-1.2 %âãÏÓ 1 0 obj <><><><><>]/T(personal)>>]/ID[<1205D069D1D6AE37665B6FF7EEA65414>]>>/Type/Catalog>> endobj trailer <> %%EOF 

如果是XFDF:

  jdoeJohn DoetestReason 

在理想的世界中,这将是您的解决方案。 它在ISO-32000-1中描述,它是PDF的世界标准。 但是:很多人开始使用不支持此function的糟糕的PDF查看器,所以如果你想使用这个解决方案,你必须确保人们使用一个体面的PDF查看器作为他们的浏览器插件。