如何使用 python-pdfkit 中的 from_string 生成具有 non-ascii 个字符的 PDF
How to generate a PDF with non-ascii characters using from_string from python-pdfkit
我正在努力使用 Python 3.5.2、python-pdfkit 和 wkhtmltox-0.12.2 生成具有 non-ascii 个字符的简单 PDF。
这是我能写的最简单的示例:
import pdfkit
html_content = u'<p>ö</p>'
pdfkit.from_string(html_content, 'out.pdf')
这就像输出文档看起来像:
pdfkit 项目中存在相关问题https://github.com/devongovett/pdfkit/issues/470
那说
"You need to use an embedded font. The built-in fonts have a limited character set available."
这个问题的答案How to: output Euro symbol in pdfkit for nodejs给出了如何做的线索。
我发现我只需要在我的 HTML 代码中添加一个带有字符集属性的元标记:
import pdfkit
html_content = """
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>€</p>
<p>áéíóúñö</p>
<body>
</html>
"""
pdfkit.from_string(html_content, 'out.pdf')
实际上,我花了相当长的时间来遵循此处建议的错误解决方案。如果有人感兴趣,我写了一个短篇小说on my blog。抱歉垃圾邮件 :)
也可以在选项中设置字符集。这样您就不必更改 HTML 文件 - 特别是如果您不是创建它的人,并且您不想弄乱它。
def get_options():
return {
'encoding': 'UTF-8',
'enable-local-file-access': True
}
pdfkit.from_string(html, verbose=True, options=get_options(), configuration=_pdfkit_config)
我正在努力使用 Python 3.5.2、python-pdfkit 和 wkhtmltox-0.12.2 生成具有 non-ascii 个字符的简单 PDF。
这是我能写的最简单的示例:
import pdfkit
html_content = u'<p>ö</p>'
pdfkit.from_string(html_content, 'out.pdf')
这就像输出文档看起来像:
pdfkit 项目中存在相关问题https://github.com/devongovett/pdfkit/issues/470 那说
"You need to use an embedded font. The built-in fonts have a limited character set available."
这个问题的答案How to: output Euro symbol in pdfkit for nodejs给出了如何做的线索。
我发现我只需要在我的 HTML 代码中添加一个带有字符集属性的元标记:
import pdfkit
html_content = """
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<p>€</p>
<p>áéíóúñö</p>
<body>
</html>
"""
pdfkit.from_string(html_content, 'out.pdf')
实际上,我花了相当长的时间来遵循此处建议的错误解决方案。如果有人感兴趣,我写了一个短篇小说on my blog。抱歉垃圾邮件 :)
也可以在选项中设置字符集。这样您就不必更改 HTML 文件 - 特别是如果您不是创建它的人,并且您不想弄乱它。
def get_options():
return {
'encoding': 'UTF-8',
'enable-local-file-access': True
}
pdfkit.from_string(html, verbose=True, options=get_options(), configuration=_pdfkit_config)