2016-10-10 116 views
0

這是密切相關的(和相同的問題莖) What is the Debian equivalent of urw-fonts (needed for utf-8 in wkhtmltopdf)?wkhtmltopdf在Debian上查找字體在哪裏?

但我認爲這是對自己的一個有效的問題。如鏈接中所述,我試圖使用wkhtmltopdf(通過Debian中的命令行)將多語言utf-8 html文檔轉換爲pdf。一些語言沒有被正確渲染並顯示爲白色或黑色矩形,大概是因爲wkhtmltopdf無法找到或訪問必要的字體。

問題:在系統上(Debian),wkhtmltopdf在哪裏查找字體,以及如何在給定特定命令時檢查它正在查找哪些字體(如果可能)?

回答

1

字體在/usr/share/fonts/之下。

此命令顯示命令foo訪問哪些字體。

strace -e open -o >(sed -n '/^open("\/usr\/share\/fonts\//p') foo 

strace顯示系統調用。 -e open表示只顯示系統調用來打開文件。 -o >(sed -n '/^open("\/usr\/share\/fonts\//p')表示將輸出輸出到sed,只打印系統調用以打開/usr/share/fonts/中的文件。

對於某些程序,打開詳細輸出並檢查它的stderr是否有用,如果它說明使用了哪些字體。

對於您的特定問題,請檢查是否正確指定了HTML文件的編碼。

就拿從strace的

open("/usr/share/fonts/X11/Type1/n019004l.pfb", O_RDONLY) = 8 

它在相同的格式,你將如何在C程序中使用open輸出。 /usr/share/fonts/X11/Type1/n019004l.pfb是文件的路徑。 O_RDONLY表示以只讀方式打開它。 8表示操作成功,生成的文件描述符爲8.請參閱打開的手冊頁。

+0

謝謝,該命令似乎工作。你能解釋下面的輸出是什麼意思,特別是50%?這些是前兩行,其他格式相同: 'open(「/ usr/share/fonts/X11/Type1/n019004l.pfb」,O_RDONLY)= 8] 50% open(「/ usr /share/fonts/X11/Type1/n019003l.pfb「,O_RDONLY)= 8' – Yury

+0

至於你的其他意見:我已經檢查是否有一個冗長的選項wkhtmltopdf(沒有找到一個),而我很確定編碼在html和命令行中都被正確指定了(在這裏找到了兩個成功使用的例子)。無論如何,好的建議。 – Yury