4

我正在尝试使用pdfkit python 库将 HTML 文件转换为 pdf。我按照这里的文档。

目前,我正在尝试将纯文本转换为 PDF 而不是整个 html 文档。一切正常,但我在生成的 PDF 中看到的不是文本,而是框。这是我的代码。

import pdfkit
config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf/wkhtmltox/bin/wkhtmltopdf')
content = 'This is a paragraph which I am trying to convert to pdf.'
pdfkit.from_string(content,'test.pdf',configuration=config)

这是输出。

正在显示框而不是纯文本。

而不是文本“这是我正在尝试转换为 pdf 的段落。” ,转换后的 PDF 包含框。

任何帮助表示赞赏。谢谢 :)

4

2 回答 2

1

无法在 Ubuntu 16.04 上重现 Python 2.7 的问题,并且在提到的规格上运行良好。据我了解,这个问题是由于您的操作系统没有 pdfkit 生成文件的字体或编码。

也许尝试这样做:

import pdfkit
config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf/wkhtmltox/bin/wkhtmltopdf')
content = 'This is a paragraph which I am trying to convert to pdf.'
options = {
    'encoding':'utf-8',
}
pdfkit.from_string(content,'test.pdf',configuration=config, options=options)

修改 pdf 的选项可以作为字典添加并分配给options函数中的参数from_string。可以在此处找到选项列表。

于 2018-02-15T12:06:02.490 回答
0

此处提到此问题在 AWS Lambda 中包含自定义字体

如果您在 lambda 上使用 pdfkit,则必须将 ENV 变量设置为 "FONT_CONFIG_PATH": '/opt/fonts/' "FONTCONFIG_FILE": '/opt/fonts/fonts.conf'

如果此问题在本地环境中,则全新安装 wkhtmltopdf 必须解决此问题

于 2021-06-26T09:07:31.153 回答