我正在创建一个pdf文档(通过ColdFusion),但是当我在Firefox中预览渲染的pdf时,得到的数字“4”应该是我的选中标记(请参见下面的照片)。当我在Chrome或IE中预览完全相同的pdf时,我看到了选中标记,并且一切正常!

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

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

这是Internet Explorer中生成的pdf表单:

请注意复选标记如何正确呈现:

这是在FireFox中预览的相同表格:

请注意该复选框如何带有“4”而不是选中标记:

任何帮助将不胜感激!

最佳答案

正如该项目的github repo所指出的那样,该错误显然是addressed already:该错误据说是在this commit期间修复的。因此,如果您仍然遇到问题,则意味着:

  • 您正在使用pdf.js库的过时版本
  • 或,问题已重新引入到库中。

  • 因此,从开始,您将要确保使用的是pdf.js库的最新版本。如果您仍然遇到问题,即使使用最新版本,则问题仍然存在于嵌入式pdf文档查看器中,在项目维护人员最终解决问题之前,您无需执行太多操作即可解决此问题。问题。

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

    同样,出于上述相同的原因,如果您将复选框分配给渲染正方形(而不是选中的正方形),则字母“N”将出现在复选框中而不是正方形,因为正方形符号已映射到字母“N” ”。

    这个问题仅存在于Firefox的嵌入式pdf文档查看器中,但是在Adobe Acrobat Reader或其他离线pdf阅读器(和其他浏览器pdf阅读器)中查看时,它看起来完全正常,这就是为什么它在Chrome和IE中看起来不错的原因,因此,当用户下载表格时,它会像您期望的那样显示。

    您可以尝试一些解决方法/优化:

    尝试其中一种或全部尝试,它们没有特定的顺序(或保证能正常工作)
  • 不要依赖firefox中内置的pdf.js浏览器扩展,而是make your own updated version based on the latest pdf.js source或目标another pdf library,并使用与浏览器无关的API来呈现和显示pdf。
  • 创建一个HTML表单供用户填写和验证所有信息,然后根据HTML表单提供的数据呈现pdf,以便仅下载(在浏览器中无法预览)。这将迫使他们在不存在问题的默认pdf查看器中打开pdf,因为同样,您描述的问题仅在Firefox的嵌入式pdf查看器中发生,而在其他pdf查看器(如Adobe Acrobat)中没有发生。
  • 确保服务器上已安装ZapfDingBats Font。我尚未确认,但是应该解决了该问题的提交似乎增加了对该字体的支持,因此值得尝试确保此字体在您的ColdFusion服务器上可访问,然后尝试预览呈现的字体。 Firefox中的pdf。
  • 检测到用户正在通过Firefox访问您的表单,如果是,则警告用户该问题,但请确保他们下载表单并在其默认pdf查看器中查看将按预期进行。
  • 将页面转换为HTML5(如果尚未转换),然后添加HTML5 shiv(以便可以在较旧的浏览器上使用HTML5功能)和CSS normalizer,并使用这些最佳设置测试问题是否仍然存在。值得一试以确保在HTML5标准下以某种方式对问题进行了不同处理,因为并非每个人都遇到与您相同的问题。
  • 最后,确保使用HTML validator通过ColdFusion输出将HTML呈现为有效标记。

  • 除此之外,在mozilla团队更新其嵌入式pdf查看器之前,您无能为力。但是,由于问题只存在于firefox查看器中,而不存在于pdf本身中,因此由您来决定这是否是破坏交易的问题,并寻找替代方案。

    注意: PDF.js内置于Firefox 19+版本中。

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

    更新:您可以使用 this pdf (代表ZapDingbats符号字体的字符映射)作为测试浏览器对通过pdf.js呈现的pdf中嵌入字体的解释的方式。请注意,在撰写本文时,上面的pdf确实不能在Firefox 中(通过pdf.js)正确显示Zapf Dingbats,但是其他浏览器却将它们渲染得很好(请注意firefox中a20[x2714]旁边的“4”,以及Chrome中相同条目(a20[x2714])旁边的复选标记。

    关于Firefox pdf表单在复选框中显示 "4"(而不是选中标记);在IE和Chrome中正常运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27882254/

    10-16 14:16