当我尝试使用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