使用Pisa创建包含非ASCII字符的PDF

2 投票
1 回答
2062 浏览
提问于 2025-04-17 19:49

我正在尝试使用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')

1 个回答

1

默认情况下,pisa使用的字体不支持中文或日文字符。我通过添加一个支持这些字符的字体文件,并在css中使用它,成功显示了这些字符。

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

可以查看这份文档的第8节了解更多信息。

撰写回答