编辑浏览器中嵌入的pdf并将pdf直接保存到服务器
我有这个工作流程。
- 将包含表单字段的pdf加载到浏览器中(pdf在iframe或div中)。
- 用户填写它
- 用户单击“提交”按钮(在另一个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:
jdoe John Doe test Reason
在理想的世界中,这将是您的解决方案。 它在ISO-32000-1中描述,它是PDF的世界标准。 但是:很多人开始使用不支持此function的糟糕的PDF查看器,所以如果你想使用这个解决方案,你必须确保人们使用一个体面的PDF查看器作为他们的浏览器插件。