2015-11-17 147 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請求提供了額外的速度獎勵,這也許是首先的原因。 –