2011-01-07 29 views
33

我已經在Centos 5.5上安裝了wkhtmltopdf。 (因爲有圖書館的問題,已經有4天了)。 現在部分工作。我說部分是因爲,由whtmltopdf創建的所有pdf包含正方形而不是文本?wkhtmltopdf上的方形字符問題

我該怎麼辦?我搜索了谷歌,但我找不到任何東西。

感謝您的幫助。

+0

不好的左輪手槍 - 看看@James F的回答,這對我來說是個詭計 – Roland 2012-01-28 09:02:46

+0

如果你只是在某些換行符上看到這個,嘗試在`body`中添加`text-rendering:geometricPrecision;`請按照以下網頁的https://github.com/wkhtmltopdf/wkhtmltopdf/issues/1734 – 2015-09-21 20:06:51

+0

@Tim - 點擊當前投票計數爲56的灰色勾號標記James F答案爲正確。 – 2016-03-22 17:30:32

回答

78

當我遇到黑色方塊問題時,我可以通過安裝urw-fonts包來解決此問題,而無需安裝X11。

+3

James F的解決方案解決了我的問題,當我在命令行上執行wkhtmltophp時,所有字體都是100%,但如果我嘗試使用命令從PHP執行它, Centos 6和安裝的URL字體yum安裝urw-fonts,然後它的工作;-)謝謝詹姆斯 – Roland 2012-01-28 09:01:47

0

我想猜這是一個字體問題,或者是一個編碼問題。

您的HTML使用什麼編碼? (這是更容易檢查,所以我首先列出)如果它是有趣的,你可能需要翻譯之前,它餵養到wkhtmltopdf。在這種情況下報告錯誤可能也有幫助。

wkhtmltopdf知道如何找到你的字體嗎?如果wkhtmltopdf找不到你的系統的字體,那麼它有一個嚴重的問題,並可能回退到「未知字符」字符(空框)。另外,如果您的文本包含實際上並不存在請求字體的字符,您將獲得未知字符。如果您應該使用「新快訊」,並且文本全部是阿拉伯文......字體快遞公司不包含這些字符。瀏覽器有各種可以使用的後退位置,但PDF渲染器只會盡其所能地完成所要求的功能。在這種情況下,這是未知的字符。

簡單測試:wkhtmltopdf能否成功將「hello world.html」轉換爲您的系統上的PDF?

<html><body>Hello World</body></html> 

如果成功,你需要沿着「腦死亡」和「你真正的HTML」事情出差錯的行,其中弄清楚。

+0

是,我按照你所說的test.html進行了測試。即使那個是以正方形顯示的。 但所有都充滿了黑色。我測試了wkhtmltopdf-i386和wkhtmltopdf-amd64。我害怕,我的問題太複雜了。你怎麼看? :( – 2011-01-10 21:26:41

0

我認爲您需要嘗試安裝X11軟件包,wkhtmltopdf將其用於字體等。 您描述的症狀正是程序在缺少這些軟件包時所做的。

+0

這是不對的,如果運行EL7,你不需要整個X11系統,抓住[wkhtmltopdf-amd](https://github.com/h4cc/wkhtmltopdf-amd64),然後`yum install libXrender libXext fontconfig urw -fonts` – 2016-03-22 17:33:02

0

獨立wkhtmltopdf不需要一個x服務器 - 試試看看是否可以緩解問題。我已經在CentOS上工作,沒有圖形/ x服務器,它工作得很好。

17

我可以使用下面的資源來解決這個問題:

http://code.google.com/p/wkhtmltopdf/wiki/static

總之,你可能並不需要安裝整個X11庫及其所有依賴。 只需安裝urw-fonts就可以做詭計。以上資源甚至提到CentOS有這個問題。

運行在服務器上運行此命令:

sudo yum install urw-fonts libXext openssl-devel 
1

我使用與wkhtmltox 12.4 CentOS的7,發現沒有一個建議,迄今固定在輸出PDF文件我的塊文本。

對我來說,最終的解決方案是安裝dejavu-sans-fonts。