在pdfkit中显示框而不是文本 - Python3

时间:2018-02-15 11:35:25

标签: python wkhtmltopdf pdfkit html-to-pdf python-pdfkit

我正在尝试使用 pdfkit python库将HTML文件转换为pdf。 我遵循了here的文档。

目前,我正在尝试将纯文本转换为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)

这是输出。

Boxes are being displayed instead of plain text.

而不是文字'这是我想要转换为pdf的段落。' ,转换的PDF包含框。

感谢任何帮助。 谢谢:))

2 个答案:

答案 0 :(得分: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参数。可以找到选项列表here

答案 1 :(得分:0)

此问题参考此处Include custom fonts in AWS Lambda

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

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