當我嘗試使用Docverter(通過API)將utf-8編碼的markdown文件轉換爲pdf時,我只丟失了非ASCII字符。Docverter在markdown上丟失utf-8編碼 - > pdf
任何解決方案?
我想轉換.md - > .pdf。也許Docverter可以幫助.md - > .html,然後我可以使用一些其他庫/服務爲.html - > .pdf?
當我嘗試使用Docverter(通過API)將utf-8編碼的markdown文件轉換爲pdf時,我只丟失了非ASCII字符。Docverter在markdown上丟失utf-8編碼 - > pdf
任何解決方案?
我想轉換.md - > .pdf。也許Docverter可以幫助.md - > .html,然後我可以使用一些其他庫/服務爲.html - > .pdf?
問題與Docverter is now solved布爾選項,所以你現在可以直接轉換從md
到pdf
,傳遞選項ascii=true
到Docverter。這會導致中間HTML使用實體而不是utf-8,因此生成的pdf可以。
大量的調查研究後,(我也有同樣的問題),我發現的bug是由Docverter作出的HTML的「PDF轉換,它採用飛碟庫。即使字符集在meta
標記中正確設置爲utf-8
,此轉換也會忽略HTML輸入中的任何非ASCII字符。
但是,如果HTML包含實體,如ó
等,然後飛碟確實包括那些字符,並且假定其具有正確的編碼(庫所使用默認字體是細),則適當的炭的字體(ó
在這個例子)顯示在最終的pdf中。
所以我結束了以下方法:
.md
- 生成的html
使用HTML實體,而不是UTF-8html
.html
- >.pdf
第2步很容易,如果你碰巧使用蟒蛇。在這種情況下,下面的線達到目的:
def fixHTML(filename):
f = open(filename, "r")
content = unicode(f.read(), "utf-8") # Reads the file into a unicode string
f.close()
f = open(filename, "w")
f.write(content.encode("ascii", "xmlcharrrefreplace")) # Writes with the fixed encoding
注:不應該要求這樣旋繞的方式,因爲pandoc
接受這迫使如在步驟2中獲得。然而所述一個它以產生HTML開關--ascii
,Docverter解析器用於布爾選項seems to be broken,所以不可能將選項ascii
傳遞給Docverter。
謝謝!似乎是一個很好的解決方案,我會嘗試。 – lajarre