我为一家在我们的网站上拥有数百种可填充PDF格式表格的公司工作。我们经常遇到问题,因为Web浏览器喜欢在浏览器中打开PDF,而不是在本机Adobe Reader应用程序中打开文件。

用户下载表格,浏览器在新标签页中打开文件。他们最终在浏览器中填写了表单,然后尝试使用底部的JavaScript提交按钮,这没有任何作用,因为浏览器阻止了PDF中的JS活动。如果他们到那时还没有放弃,他们会将文件保存到桌面,但表单不会保存在浏览器中填写的内容,甚至变得生气。

什么是这种事情的标准做法?通常,我建议用常规的Web表单替换可填充的PDF,但是这些表单的数量较长,有很多,而且大多数都经常更新,从而使Web表单不理想。

我查看过以前从未使用过的类似DocuSign的产品,但表面上看起来更好地管理了表格的分发和收集,但是我不确定这是否是最佳做法(尤其是考虑某些较大的产品),或者有没有我想到的解决方案。

评论

没有标准做法。

我同情。作为技术。支持人员,我处理这个问题很多。没有简单的解决方案,因为在很多情况下,都需要PDF输出(或等效的像素级)来满足政府或其他要求。我已经开始-但距离完成还很远-一个围绕类似问题的客户项目。没有简单的答案。

表单的链接上是否可以显示一些JavaScript,该消息会显示一条消息,指示用户在Acrobat Reader中打开PDF之前先将其保存在本地?另一种可能性是在链接中添加“下载”属性,这将强制Web浏览器下载文件,而不是在浏览器中打开文件。这并不是万无一失的,因为有些人将其网络浏览器设置为默认的PDF查看器,但这可能会有所帮助。

我曾经制作过使用pdftk填充PDF的Web表单(因此输出看起来是一样的),但这是大量的工作。

@MosheKatz-本质上这是我的问题。 PDF太多,因此对于标准Web表单来说,它们的更新频率太高了。

#1 楼


通常,我建议用常规的Web表单替换可填充的PDF


我总体上认为,这是理想的解决方案,但是您注意到了与此相关的一些问题,其中包括如何处理所有现有内容。


我们经常遇到问题,因为网络浏览器喜欢在浏览器中打开PDF,而不是在本机Adobe Reader应用程序中打开文件。 。


通过允许浏览器处理PDF文件,您可以将文件留给每个用户各自的浏览器设置(例如,在浏览器中打开PDF或下载)。您无法通过这种方式进行控制。


这种事情的标准做法是什么?


您需要控制整个观看过程体验,方法是添加支持PDF表单填充的PDF查看器,然后将PDF加载到查看器中。这样,您就可以准确地知道用户在做什么,并控制整个用户体验,并且可以在托管该特定查看器之后测试文件主体以针对该特定查看器进行测试。

评论


这看起来是一个很好的解决方案。但是我会告诉你,必须寻求价格是一个巨大的选择。可以说,不能简单地找到所有选项的价格,实际上是一个拒绝,而不是一个列出价格的地方说“ PDFTron许可证的起价为每年4000美元”。请告诉您公司的权力所在,典型的小型企业(并且有很多愿意在软件上花费合理的金额)会拒绝这种定价态度(不仅是金额,而是“隐性”性质”)。只是说...

–manassehkatz-Moving 2编剧
19年12月11日在3:23

(先前的评论是关于使用主持人删除的建议,以使用由此海报的公司开发的商业JS PDF查看器,它确实支持表格填充)

– Peter Cordes
19/12/11在8:02



@ manassehkatz-reinstate-monica感谢您对我们网站的反馈,我已将其传递给网站设计团队进行审核。 “典型的小型企业(很多人愿意在软件上花费合理的金额)”我们完全不同意,我们的许多客户都是小型企业或新兴企业,它们恰好需要完全控制其用户的文档查看体验。

–瑞安
19/12/11在18:54

OP没有指定填写这些表格的人员是内部人员还是公众成员。如果他们是公众成员,我将无法确保他们使用正确的软件打开表格。

– Wally Hartshorn
19年12月12日在14:09

@TheIronCheek很棒的附加信息。再次,理想情况下,仅具有Web表单是理想的选择,但是如果您需要继续进行PDF表单填充,则嵌入PDF查看器(支持表单填充)也应该可以完全控制UI / UX,因此可以大大简化操作假设基于Web的PDF阅读器还允许完整的UI / UX定制,则将查看器分解为最少的组件。因此,您可以为您的老客户提供非常受控的无缝体验(无需下载,无需上传等)。

–瑞安
19/12/12在19:19



#2 楼

您可以尝试强制下载PDF,以便在默认应用程序中打开该文件以查看PDF文件而不是浏览器。

请参见此问题:如何强制在浏览器中打开文件(PDF)的下载?

评论


这就遇到了一个问题,即很少有PDF查看器支持可填充表单。

–马克
19/12/11在2:57

@Mark对于台式机和笔记本电脑上的“普通用户”来说,最常见的PDF查看器是Adobe Reader或Adobe Acrobat,它们支持可填充性还不错。我已经看过很多这个问题-问题是普通用户自己不了解下载/本地与浏览器之间的区别。

–manassehkatz-Moving 2编剧
19年12月11日,下午3:25

不会强迫下载只是导致文件下载而不是直接打开吗?文件下载完成后,浏览器会提示用户打开文件的权限,如果单击“打开”,我们是否会回到同一条船上?

–TheIronCheek
19/12/11在19:13



@TheIronCheek的不同之处在于:下载后,该文件将由用户的默认应用程序而非其浏览器打开(该浏览器很少注册为PDF的默认设置)。因此,至少他们应该能够保存输入。或允许使用JavaScript。

–SRMM
19/12/12在13:49

@SRMM在Google Chrome浏览器中,如果单击下载的PDF文件,它将在Chrome浏览器中打开,而不是默认的查看器,除非您启用了“始终使用系统查看器打开PDF”设置。

– Moshe Katz
19/12/12在14:47

#3 楼

没有标准的做法。您必须重新考虑流程:

为什么客户首先要填写PDF?

您是否只需要客户的结构化数据? ?政府机构,谁以后需要PDF?您是否必须为客户提供相同的PDF?您的公司可以创建Web表单而不是PDF吗?您可以自己自动生成PDF吗?客户在填写PDF时是否需要完全一样地查看PDF?如果对您的业务不重要,则可以从DocuSign,HelloWorks等人那里购买此PDF到Web表单桥。

快速简便的方法是强制PDF下载并要求您的客户使用Adobe Reader。

编辑/ PS:由于PDF是二维景观,因此很难在移动设备上导航。缩小后,您可以看到所有内容,但看不到任何内容,反之亦然。相反,您必须考虑移动设备上有多少用户。客户中的移动设备越多,具有真实表单的经过Web优化的解决方案就越好。填写表格后,您可以向用户展示自动生成的PDF。

评论


有些文档需要政府机构使用PDF,但是PDF数量最多的最大原因是,公司很容易在员工的计算机上安装Acrobat,并告诉他们将Word文档保存为PDF格式。它。那和古老的“那就是我们一直做到的方式”的论点。

–TheIronCheek
19年12月11日在19:08

您提到强制进行PDF下载,但是我的经验是PDF可以正确下载,但是用户只需从浏览器的下载预览器中单击文件,它便会在浏览器中打开。

–TheIronCheek
19/12/11在19:10



对表单使用PDF的另一个重要原因是,许多人只会打印表单并手工填写。如果您要创建供内部人员使用的表格,那么这可能不是问题,但是如果您要创建供公众使用的表格(例如,如果您在政府机构工作),则可能必须处理这个问题。

– Wally Hartshorn
19/12/12在14:20

@TheIronCheek您始终可以将文件压缩为.zip并进行发送;)麻烦之所在。真正取决于客户的技术水平以及他们对您的依赖程度。 (例如,如果您是联邦机构,谁在乎,他们将填写一份PDF文件给他们。)

–knallfrosch
19/12/12在14:35

@WallyHartshorn-就是这样。我们有很多老客户,他们只是打印表格,手工填写表格,然后邮寄给我们。

–TheIronCheek
19/12/13在15:08

#4 楼

即使您强迫用户下载PDF而不是直接打开PDF,也无法控制他们使用哪个程序打开PDF(出于安全原因)。

其他人提到过DocuSign(或类似文件),这些工具不仅用于签名,而且用于访问控制和第三方验证的强大工具。对于大多数人来说,这是一个好方法。但是,对于某些业务/用例,价格可能会高得无法承受。

我最近为一个大型客户构建了自定义签名工具,该客户还需要容纳大量不断变化的文档并保存已完成的文档。和签名的PDF。据我所知,这与DocuSign的工作类似(尽管不那么复杂)

工作流程如下:


经理/客户创建带有签名字段的文档,并
将其上传到应用程序中
应用程序注册文档以供使用,并提取有关待完成字段的信息
最终用户将看到一个网络从元数据自动生成的表单。


表单显示原始文档的背景图像
输入字段位于图像中正确的位置,因此看起来像用户直接在文档上键入


用户填写表单并在签名部分进行物理签名(在平板电脑或鼠标上)
完成的表单数据和签名图像发送回服务器
应用程序将数据填充到原始文件中,并生成PDF
最终的PDF和所有表单条目(但不包括签名!)重新保存到数据库中,允许管理员搜索所有已填写的表单,并在需要时将其删除(例如符合HIPPA / GDPR)

但是,对于大多数企业来说,尤其是那些没有开发人员和IT人员的企业,构建和维护这样的自定义应用程序是不可行或不具有成本效益的。在开发,安全性和责任之间,仅使用现有服务通常会更便宜(和更好的用户体验!)。

评论


老实说,我没想到自己写些东西。您构建的功能也是我所需要的。实际上,我可能甚至不需要签名,因为几乎没有我们要求签名的PDF。

–TheIronCheek
19/12/13在15:18



#5 楼

多年前,我从事一个项目,该项目使用可下载的Word文档以及表单域并进行编辑保护,该表单不允许更改除表单域内容以外的任何内容。如果您的用户将使用Word(或者可能是LibreOffice,则可以进行测试以查看当今的兼容性),那么这可能是替代方法。我没有看到任何尝试打开W​​ord文档的浏览器。

评论


可能会有这样的选择……Office的使用如此广泛,以至于它可以工作,但从技术上讲,除非LibreOffice是可行的选择,否则对客户而言仍然存在成本障碍。

–TheIronCheek
19/12/12在15:34

我已经处理过这类文件。当一切都“正确”完成时,它们就可以了。但是很多时候零件做得不太正确...

–manassehkatz-Moving 2编剧
19/12/13在3:19

@ manassehkatz-ReinstateMonica-“未正确完成”是什么意思?

–TheIronCheek
19/12/13在15:11

@TheIronCheek总体设计不佳-例如,未对齐的字段,依赖于其他字段的字段未正确更改,字段之间的字体不匹配,选择没有意义。

–manassehkatz-Moving 2编剧
19/12/13在15:26

#6 楼

可能要晚一些,但是亲身经历了这一点之后,我才真正开始使用Web Forms。其他人列出了上述主要原因,但老实说,我对以下情况的看法是:

如果有两个完全可用的选项,其中一个是开源的,另一个是专有的(例如HTML) VS PDF),然后使用开放源代码版本。从长远来看,成本将是一个赢家,而且功能很少会在支付壁垒或价格上涨后被供应商锁定。

从理论上讲,Adobe总是可以从标准Adobe中提取表格填充功能读者试图强迫人们为Docusign / Echosign之类的商品付款。令人怀疑但可能的,然后您最终将不得不全部转换它们。

为此,使用Web表单的一个优点是可以执行的扩展功能和数据验证。另外,如果您需要在内部使用pdf格式,则始终可以使用库从Web表单生成PDF,反之则不那么容易。

我首先将监视表单的GET请求,以识别使用得最多的表单,然后开始将使用最多的表单转换为使用最少的表单。

评论


我原则上同意您的意见,但是对于我而言,太多的表格需要定期更新,以至于无法将它们全部保留为Web表格。

–TheIronCheek
19/12/16在14:20

在这种情况下,值得将其举报给您的部门经理,看看他们是否可以对此做些什么。我会主张(可能不会)尝试将数据输入到标准模板中,然后可以对其进行概述,编辑和发布,以免其他工作。关键是要与您的经理一起将其记录下来,这是一个需要修复的问题,因此,如果所有问题都无法解决,您可以指向该电子邮件,并说您确实尝试在几个月前/几年内将其修复。

–达斯汀
19/12/17在11:27

#7 楼

您是否能够修改文件?

有些系统会(ab)利用每个pdf阅读器呈现不同的事实来检测您使用的是哪种PDF阅读器。

我知道我以前看到过创建的PDF,如果未在Adobe Reader中打开它们,则只会显示一个页面,要求用户下载正确的软件。设置,您可以翻转acrobat来制作PDF,这需要用户下载Adobe的SW。

评论


您看到的指示人们安装最新版本的Acrobat Reader的消息实际上是尝试打开使用Adobe LiveCycle Designer(现在为AEM Forms Designer)产品创建的PDF时显示的默认消息。它在PDF包装器中创建XML。 Web浏览器的内置查看器无法显示它,而是显示该消息。不幸的是,该消息没有用,因为用户将安装Acrobat,然后继续使用Web浏览器打开文件。我还没有找到更改消息内容的方法。

– Wally Hartshorn
19/12/12在14:17

“我知道我以前看到过创建的PDF,如果未在Adobe Reader中打开它们,则只会显示一个页面,要求用户下载正确的软件。”正如@ wally-hartshorn所说,这是XFA(PDF包装器中的xml),不仅是专有的Adobe技术,而且由于XFA存在许多问题,还被投票淘汰了最新的PDF 2.0标准。

–瑞安
19/12/12在19:23

“有些系统会滥用每个pdf阅读器呈现不同的事实来检测您使用的是哪种PDF阅读器。”你能举一个具体的例子吗?在这种情况下,“系统”到底是什么意思?

–瑞安
19年12月12日在19:24

@Ryan您是否知道任何可以替代XFA功能的东西?我们广泛使用AEM表单设计器,创建具有交互功能的复杂“智能”表单(例如,根据用户是否选中了框来显示/隐藏表单的各个部分),但我们一直找不到合适的替代品。未来。

– Wally Hartshorn
19/12/13在15:12



@ wally-hartshorn除非您知道所有用户都在使用某些已安装的产品(例如在受控的企业环境中),否则请不要在PDF空间中。否则,您将遇到原始海报和此处其他人提到的问题。 Adobe Livecycle可以选择将XFA表单另存为“静态表单”,从而将其转换回“经典” PDF Acro表单,这就是原始问题所在。理想情况下,您应按照自己和其他人的建议,将网络表单用于新内容,而不是PDF文件中的表单。

–瑞安
19/12/13在17:55

#8 楼


用户下载表单,然后浏览器在新标签页中打开文件。他们最终在浏览器中填写了表单,然后尝试使用底部的JavaScript提交按钮,这没有任何作用,因为浏览器阻止了PDF中的JS活动。如果他们到那时还没有放弃,他们会将文件保存到桌面,但表单不会保存浏览器中填写的内容,甚至变得生气。


这使我认为用户没有下载或使用Adobe Reader的指示符,也没有其他程序(例如SumatraPDF)。

但是,有一种方法!如何进行一些更改以使PDF正常降级?
不是使用始终存在的按钮,而是使用JavaScript来添加按钮。
或者,更好的选择是替换“框”的内容。与按钮。在Windows 10或浏览器本身上,“框”可能会警告您保存文件或使用“打印为PDF”选项。


使用实际示例,摘自:http ://foersom.com/net/HowTo/data/OoPdfFormExample.pdf

使用Google Chrome浏览器,您可以打印PDF(如果选择“另存为PDF”,则可以发送) :


您可以看到表单中填充有随机的“垃圾”,但已填充。

如果使用Firefox,则会发出适当的警告:

(粗略翻译:此PDF文档包含表格。不支持字段填充。-用其他查看器打开)。


简而言之:考虑网页和PDF本身的正常降级以及正确的警告/说明。