我有这个工作流程。
- 将包含表单字段的 pdf 加载到浏览器中(iframe 或 div 中的 pdf)。
- 用户填写
- 用户单击“提交”按钮(在另一个 div 中)保存 pdf。
我在#3 中想做的是收集与表单字段关联的所有数据并将数据保存到数据库表中。我不希望用户将 pdf 保存到他/她的本地计算机并将其上传到服务器。我想让它更加用户友好。
我将在服务器端使用Java/JSP/Servlet。我研究了 itext,它似乎在处理 pdf 文件方面很流行/众所周知,但 itext 似乎用于生成/编辑 pdf,但我不确定是否有任何方法可以拥有能够编辑嵌入在浏览器中的 pdf 并保存到数据库。
是否有任何 adobe 软件提供某种功能,我可以注入某种可以捕获用户提交的脚本?我知道PDF不是前端脚本语言,但我只是问一下。
我打算创建一个类似于此 PDF 的 HTML 表单,并在用户单击“提交”按钮时将其填充到 PDF 中,但正如我所说,我想让它更加用户友好。
如果有人见过这种类型的功能或已经完成了它,我将不胜感激,并为我提供一些资源或提示。
我的假设:您有一个交互式 PDF 文档,其 AcroForm 字段类似于提交我.pdf http://itextpdf.com:8180/book/submit_me.pdf:
主要区别是表单上有不同的按钮:
- POST 将发布我填写的数据,就好像 PDF 是 HTML 表单一样,
- FDF 将以表单数据格式将数据发布到服务器,该格式与 PDF 非常相似,但仅包含数据对,而不包含实际表单,
- XFDF 将以 XML 表单数据格式(XML 表单数据格式的 XML 版本)将数据发布到服务器。
- RESET 会将所有字段重置为其初始值。
The 提交表格 http://itextpdf.com/examples/iia.php?id=168示例显示了如何将按钮添加到现有表单中。请注意,还有比本示例中描述的选项更多的选项。
例如:
- 您还可以通过调整一些参数来使用 GET,而不是使用 POST 方法,
- 您还可以将完整的 PDF(数据 + 表单)提交到服务器,但这仅在最终用户使用 Adobe Acrobat 作为插件时才有效。如果插件只是 Adobe Reader,则此方法不起作用,
- ...
为了向您展示提交表单时会发生什么,我写了ShowData http://itextpdf.com/examples/iia.php?id=169小服务程序。该 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
<</FDF<</Fields[<</T(FDF)>><</Kids[<</T(loginname)/V(jdoe)>><</T(name)/V(John Doe)>><</T(password)/V(test)>><</T(reason)/V(Reason)>>]/T(personal)>>]/ID[<EF0089E16ED50F11CB6057A700B9046E><1205D069D1D6AE37665B6FF7EEA65414>]>>/Type/Catalog>>
endobj
trailer
<</Root 1 0 R>>
%%EOF
如果是 XFDF:
<?xml version="1.0" encoding="UTF-8"?>
<xfdf xmlns="http://ns.adobe.com/xfdf/" xml:space="preserve"
><f href="http://itextpdf.com:8180/book/submit_me.pdf"
/><fields
><field name="XFDF"
/><field name="personal"
><field name="loginname"
><value
>jdoe</value
></field
><field name="name"
><value
>John Doe</value
></field
><field name="password"
><value
>test</value
></field
><field name="reason"
><value
>Reason</value
></field
></field
></fields
><ids original="EF0089E16ED50F11CB6057A700B9046E" modified="1205D069D1D6AE37665B6FF7EEA65414"
/></xfdf
>
在理想的世界中,这将是您的解决方案。它在 PDF 的全球标准 ISO-32000-1 中进行了描述。然而:许多人开始使用不支持此功能的蹩脚 PDF 查看器,因此,如果您想使用此解决方案,则必须确保人们使用像样的 PDF 查看器作为浏览器插件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)