Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox pdf表单显示一个;4“;在复选框中(而不是复选标记);在IE&;铬_Firefox_Browser_Coldfusion_Pdf.js - Fatal编程技术网

Firefox pdf表单显示一个;4“;在复选框中(而不是复选标记);在IE&;铬

Firefox pdf表单显示一个;4“;在复选框中(而不是复选标记);在IE&;铬,firefox,browser,coldfusion,pdf.js,Firefox,Browser,Coldfusion,Pdf.js,我正在创建一个pdf文档(通过ColdFusion),但是当我在Firefox中预览呈现的pdf时,我得到了数字“4”,我的复选标记应该在那里(见下图)。当我在Chrome或IE中预览完全相同的pdf时,我看到了复选标记,而且一切都非常完美 我正在预填充pdf表单字段(通过ColdFusion会话变量),然后使用以下标记呈现pdf: <cfpdfform source="82040.pdf" action="populate"> <cfpdfformparam name=

我正在创建一个pdf文档(通过ColdFusion),但是当我在Firefox中预览呈现的pdf时,我得到了数字“4”,我的复选标记应该在那里(见下图)。当我在Chrome或IE中预览完全相同的pdf时,我看到了复选标记,而且一切都非常完美

我正在预填充pdf表单字段(通过ColdFusion会话变量),然后使用以下标记呈现pdf:

<cfpdfform source="82040.pdf" action="populate">
   <cfpdfformparam name="org" value="">
</cfpdfform>

以下是Internet Explorer中生成的pdf表单: 请注意如何正确呈现复选标记:

以下是FireFox中预览的相同表单: 请注意,复选框如何使用“4”而不是复选标记:

任何帮助都将不胜感激

是的。目前,没有修复程序。正如所指出的,底层库(pdf.js)中的bug应该已经修复。然而,Mozilla仍然存在更新Firefox中的旧版本的问题(这是大多数人正在使用的)。目前,该缺陷仍然存在

可能您最好将pdf作为“附件”而不是“内联”返回,因此浏览器会提示他们“打开/保存”文件。如果用户选择“打开”pdf,则应使用默认程序打开。(大多数用户默认使用Adobe Reader)


更新:

正如该项目的github repo所指出的那样,这个错误显然是:这个错误应该是在发布期间修复的。因此,如果您仍然遇到问题,这意味着:

  • 您正在使用过时版本的库,
  • 或者,问题已重新引入库。
因此,首先,您需要确保使用的是pdf.js库的最新版本。如果您仍然遇到问题,即使是最新版本的问题,那么问题仍然存在于嵌入式pdf文档查看器中,在项目维护人员最终解决问题之前,您无法做太多的事情来解决此问题

您遇到的问题(您之所以看到“4”中应该有复选标记,是因为pdf.js库使用了一种特殊的符号字体来呈现复选标记,但在firefox的嵌入式pdf查看器有问题的版本中,符号字体没有正确呈现复选标记,因此显示为“4”而不是复选标记——因为他们在自定义字体中使用的复选标记符号恰好映射到数字“4”

类似地,出于上述相同原因,如果将复选框指定为渲染正方形(而不是复选框),则复选框中将显示字母“N”而不是正方形,因为正方形形状符号映射到字母“N”

此问题仅存在于Firefox中的嵌入式pdf文档查看器中,但在Adobe Acrobat Reader或其他脱机pdf阅读器(以及其他浏览器pdf阅读器,这就是为什么在Chrome和IE中它看起来很好)中查看时,它看起来非常正常,因此当用户下载表单时,它会像您期望的那样

您可以尝试一些变通方法/优化: 试试其中一个,或者全部,它们没有特定的顺序(或者保证工作)

  • 不要依赖firefox中内置的pdf.js浏览器扩展,也不要使用它的浏览器无关API来呈现和显示pdf

  • 创建一个HTML表单供用户填写和验证所有信息,然后根据HTML表单提供的数据呈现pdf,仅供下载(浏览器中无预览)。这将迫使他们在默认的pdf查看器中打开pdf,但问题不存在,因为您描述的问题只发生在Firefox的嵌入式pdf查看器中,而不发生在其他pdf查看器(如Adobe Acrobat)中

  • 确保已在服务器上安装。我还没有确认这一点,但应该解决这个问题的提交似乎增加了对这种字体的支持,因此值得一试,确保这种字体在ColdFusion服务器上可以访问,然后尝试在Firefox中预览呈现的pdf

  • 检测用户是否正在通过Firefox访问您的表单,如果是,则警告用户该问题,但确保用户下载表单并在其默认pdf查看器中查看将按预期工作

  • 将页面转换为HTML5(如果您还没有),然后添加一个(以便HTML5功能可以在较旧的浏览器上使用)和一个,并使用这些最佳设置测试问题是否仍然存在。值得一试,以确保问题在HTML5标准下得到不同的处理,因为不是每个人都有与您相同的问题

  • 最后,确保HTML通过ColdFusion输出以有效标记的形式呈现

除此之外,在mozilla团队更新其嵌入式pdf查看器之前,您没有什么可以做的。但由于问题只存在于firefox浏览器中,而不存在于pdf本身,因此您需要决定这是否会破坏交易,并寻找替代方案

注意:内置于Firefox的19+版本中

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

更新:您可以使用(表示ZapDingbats符号字体的字符映射)作为一种测试浏览器对通过pdf.js呈现的pdf中嵌入字体的解释的方法。请注意,在撰写本文时,上面的pdf并没有在Firefox中正确显示Zapf Dingbats(通过pdf.js),但是其他浏览器显示得很好(注意Firefox中
a20[x2714]
旁边的“4”,以及同一条目旁边的复选标记(
a20[x2714]<cfheader name="Content-Disposition" value="attachment; filename=fileName.pdf">
<cfcontent type="application/pdf" .../>