【问题标题】:When exporting PDF with CFChart images in ColdFusion It shows embedded font error在 ColdFusion 中导出带有 CFChart 图像的 PDF 时显示嵌入字体错误
【发布时间】:2016-02-18 22:53:16
【问题描述】:

在我的 ColdFusion 应用程序中,当导出 PDF 时,它会显示一个带有错误消息的弹出窗口(标题为 Adob​​e Reader)

"无法提取嵌入字体'PCBOHZ + TimesNewRomanPS-BoldMT. 某些字符可能无法正确显示或打印 (OR) 不能 提取 TimesNewRomanPS-BoldMT"

在我的本地环境和所有其他系统中下载相同的 PDF,没有任何问题。此问题仅发生在其中一个客户端系统(Windows 8)中。

<CFDocument> 标签用于创建使用font-family = "Helvetica" 的 PDF。此 PDF 包含 cfchart 图像(包含 ColdFusion 生成的 HTML 代码)。此 PDF 的所有 html 代码在浏览器中呈现为报表仪表板视图。在此仪表板上,用户单击“PDF”按钮,相同的 HTML 内容被放置在 CFdocument 正文中,并引发警报弹出窗口。

最初我认为它与 Adob​​e Acrobat Reader 有关。后来我发现这不是PDF创建的问题。这似乎是一些 CSS 语法问题,我给出了错误的字体系列名称。没有PCBOHZ + TimesNewRomanPS-BoldMT 字体系列名称。我需要在 CF admin fonts.cfm 文件中导入该字体 ttf 文件。但我怀疑这是否与 css 样式有关,相同的 HTML 不应该在客户端浏览器中呈现,对吗?请分享您的想法。

另一个问题是缺少 CFDOCUMENT 图像

在生成的 PDF 中,图像显示为红十字标记,在创建 PDF 时,CFDOCUMENT 向冷融合服务器发出 HTTP URL 调用,以从 CF 虚拟文件夹 CFIDE/CFSERVLET 获取图像(因为这些图像由cfchart 标签基于 CF 管理员中的图表设置),在 google 中我发现此问题的原因可能是在 HTTP 请求图像时,由于 ColdFusion 位于防火墙后面,因此 CFPDF 无法发送任何 HTTP请求(即使对自己)。由于此图像请求获得 404 状态,因此在下载的 PDF 中它显示默认 HTML IMG 标记红色十字标记。有价值的coldfusion主题URL之一,有一个通过维护主机文件条目来处理http请求的解决方案 - 可以添加一个条目HOSTS 文件的内部 IP。请分享您对这个问题的看法,并建议我应该采用什么方法来解决这个问题。

【问题讨论】:

  • 这里有问题吗?
  • 图表格式是什么?
  • 您能否发布一个 small 独立示例来重现该问题?
  • @ScottStroz 我想说这里不仅有一个问题,还有 两个 问题。一篇关于字体,一篇关于图片。

标签: pdf coldfusion cfdocument


【解决方案1】:

您可以尝试在cfdocument 中添加FONTEMBED="yes"。此链接可能会进一步帮助您。参考这篇文章。 https://forums.adobe.com/thread/728994?tstart=0

【讨论】:

  • 这是否与 PDF 创建问题有关
  • 没有。它与您使用的字体有关。你看过那个帖子了吗?
  • Pankaj,我检查了所有 url 以及你今天早上提到的那个,但我无法得到任何解决方案,当点击导出时显示的警报弹出标题显示“ Adobe 阅读器”。相同的pdf适用于不同的系统,这仅适用于一个系统,即使使用单个cfchart图像,该用户也无法导出pdf,还有一点是表格导出正确,问题仅在于我认为的cfchart图像。跨度>
  • 您是否让该用户尝试了多个浏览器?
  • 在 IE 和 Chrome 中试过,有什么可能将无效样式(如 PCBOHZ + TimesNewRomanPS-BoldMT)附加到 html。
【解决方案2】:

对于红色 X 问题,我发现如果从本地驱动器中提取 CFChart 图像,CFPDF/CFDocument 最可靠。例如,将 CFChart 图像写入本地驱动器(RAM 驱动器对此很有用),然后将图像标记写入如下内容:

<img src="file:///ram://myimage.png">

对于字体,您可能不走运。我在字体和 ColdFusion PDF 的完全相同的问题上浪费了太多时间。为什么 Adobe 不提供与 CF 集成的 Acrobat 选项完全是个谜。在需要不同字体的情况下,我求助于使用“wkhtmltopdf”创建 PDF。

【讨论】:

  • 您好,感谢您的更新,此功能(虚拟目录 cfservelet 中的 cfchart 图像)存在很长时间且运行良好,极少数情况下由于未知原因而失败,可能是防止 CFDOCUNT 发生的安全设置发送任何 HTTP 请求(即使发送给它自己)。 .
猜你喜欢
  • 1970-01-01
  • 2010-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 2015-09-01
  • 1970-01-01
  • 2017-02-19
相关资源
最近更新 更多