Skip to main content
 首页 » 编程设计

python之使用 pisa 和非 ascii 字符创建 PDF

2025年05月04日9me-sa

我正在尝试使用包含用户输入的 pisa 创建 PDF 文档。 用户输入可以是其他语言。尝试输入中文或日文时,字符显示为黑框。即使我不知道用户输入的是什么语言,如何让 PDF 正确显示?

这是我正在尝试的示例:

import ho.pisa as pisa 
import StringIO 
import sys 
 
data = """ 
<html> 
    <head> 
        <title>Testing</title> 
        <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
    </head> 
    <body> 
        <p>%s</p> 
    </body> 
</html> 
""" 
 
text = "" 
for line in sys.stdin: 
    text += line 
 
pisa.pisaDocument(StringIO.StringIO(data % text), file('final.pdf', 'w'), encoding='UTF-8') 

请您参考如下方法:

pisa 使用的默认字体不支持中文或日文字符。我能够通过包含支持这些字符的字体文件并在 css 中使用它来显示字符。

@font-face { 
   font-family: OtherFont; 
   src: url(font/OtherFont.ttf); 
} 
body { 
   font-family: OtherFont; 
} 

参见 this documentation 的第 8 节