2012-09-08 61 views
2

當我將一個docx文檔轉換爲pdf格式時,我的國家字符轉換爲「#」標記。
有什麼辦法可以爲pdf文檔設置字體編碼嗎?如何在將docx - > pdf與docx4j轉換時更改字體編碼?

我過去使用過xdocreport,它可以處理這個問題,但是我遇到了圖片,頁眉和頁腳的問題。

Docx4j設法做到這一點,但不是字體。轉換後,字體有ANSI編碼,而我想有Windows-1250。有沒有設置這個選項?

+0

這個問題是關係到http://stackoverflow.com/questions/29607496/how-to-handle-special-characters-when-converting-from-html-to-docx –

回答

1

我的問題是 - 在Linux服務器上缺少正確的True Type字體。插入的默認字體(沒有我的代碼頁)。

我通過 TTF-mscorefonts的安裝程序

在Debian解決安裝默認的Windows女士字體的問題:

apt-get install ttf-mscorefonts-installer 
+0

對於你不能做的情況docx4j有一個字體映射器的概念,它允許您將文檔字體映射到可用的物理字體。 – JasonPlutext

1

我有同樣的問題,結果發現,隨着你自己所說,字體問題。系統上的字體需要支持您的編碼。

例如:對於使用「Arial」字體的文檔,德語變音符字符顯示爲「?」。

我發現一個其他的解決辦法,以覆蓋PDF字體編碼如下:

嘗試設置在pdfOptions.fontEndcoding屬性(在我的情況「ISO-8859-15」),您的需求。

將其設置爲「UTF-8」(接縫爲默認值)會導致特殊字符的相同問題。

另一件事,我發現:

使用「宋體」字體,這是默認的Word 2007/2010,使用UTF-8編碼,即使沒有發生問題。 也許iText中用於生成PDF的嵌入式Type-1 Arial Font不支持UTF-8編碼。

+0

請關注XDocReport 1.0.3(未發佈),因爲我們對Font進行了大量重構(它可能會隨Calibri發生變化) – Angelo

+0

@minni正如我在我的問題中寫的,我決定放棄使用xdocreport來轉換docx - > pdf因爲其他問題,而不是編碼。 Xdocreport可以很好地管理。問題在於docx4j - 但我發現上述解決方案。無論如何,感謝與Calibri的提示 – robson