2015-11-17 151 views
1

在我的ColdFusion应用程序,导出PDF时,它显示错误消息当CFChart图像的ColdFusion导出PDF它显示嵌入字体错误

一个弹出(标题为ADOBE READER)“不能提取嵌入字体“PCBOHZ + TimesNewRomanPS-BoldMT。 某些字符可能无法正常显示或打印正确(OR)不能 提取TimesNewRomanPS-BoldMT”在我的本地环境

相同的PDF下载,以及所有其他系统,没有任何问题。此问题仅发生在客户端系统(Windows 8)之一中。

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

最初我以为它与Adobe Acrobat Reader有关。后来我发现这不是PDF创建中的问题。这看起来像一些CSS语法问题,我给了错误的字体名称。没有PCBOHZ + TimesNewRomanPS-BoldMT字体姓氏。我需要在CF管理fonts.cfm文件中导入该字体ttf文件。但我的疑问是,如果这与CSS样式相关,相同的HTML不应该呈现在客户端浏览器的权利?请分享你的想法。

另一个问题是CFDOCUMENT图像丢失

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

popup comes when exporting the pdf

+1

有一个问题在这里? –

+0

什么是图表格式? –

+0

charformat是PNG – Prabha

回答

0

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

+0

感谢Pankaj,我已经把cfontocument中的FONTEMBED =“yes”。 – Prabha

+0

这是否与PDF创建问题有关 – Prabha

+0

否与您正在使用的字体有关。你是否阅读过这篇文章? – Pankaj

0

对于红色的X问题,我发现CFPDF/CFDocument对于CFChart图像来说是最可靠的,如果从本地驱动器拉出它们。例如,写CFChart图像到本地驱动器(RAM驱动器,给这个),然后写图像标记类似:

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

对于字体,你可能是出于运气。我在字体和ColdFusion PDF上完全相同的问题浪费了太多时间。为什么在地球上Adob​​e不提供与CF的集成Acrobat选项是一个完整的谜。在需要不同字体的情况下,我使用'wkhtmltopdf'来创建PDF。

+0

感谢您的更新,此功能(cfchart图像在虚拟目录cfservelet)存在很长时间和工作良好,非常罕见的情况下,由于未知原因失败,可能是安全设置,以防止CFDOCUMNT发送任何HTTP请求(即使本身)。 。 – Prabha

0
+0

嗨保罗,感谢您的更新,在URL中提到的要点是1)ColdFusion位于防火墙后面,因为它无法发送任何HTTP请求(即使对其本身而言)。 2)图像位于需要验证的受保护目录下。由于cfdocument目前无法发送认证信息,因此无法获取图像。 3)ColdFusion使用HTTPS,它没有正确配置来信任自己。所以cfdocument不能发送https请求给自己。如果在我的情况下存在同样的问题,我该如何解决这个问题。 – Prabha

+0

和4)阻止CFDocument向本地服务器发送请求的其他原因。所以你可以测试这个解决方案,看看它是否可以解决问题。它为移除图像的HTTP请求提供了额外的速度奖励,这也许是首先的原因。 –