gpt4 book ai didi

python - 使用 Python 将 HTML 转换为 PDF

转载 作者:可可西里 更新时间:2023-11-01 12:52:50 25 4
gpt4 key购买 nike

我正在尝试在 Django 中将 HTML 转换为 PDF 文档,但没有成功。

我曾尝试使用 wkhtmltopdf 0.9.9,但是 Apache 抛出一个错误,指出 wkhtmltopdf 无法连接到服务器。当我直接使用 wkhtmltopdf 时,它运行得非常好,并将 HTML 转换为 PDF 文档。

我也尝试过使用 unoconv,但是渲染的 PDF 文件没有应用任何 CSS。我也尝试过使用 xhtml2pdf。我再次面临同样的问题;呈现的 PDF 文件没有应用任何 CSS 样式。我花了今天和昨晚的大部分时间来尝试解决这个问题,但我离解决问题还差得很远。

如果您需要更多信息,请告诉我

最佳答案

为 Django 配置 Pisa 不应该是 too hard .

网上确实有几个例子告诉你如何去做,解释如何在模板中链接到外部资源:

在您的情况下,您应该尝试第一篇博文中提到的链接回调函数:

def fetch_resources(uri, rel):
"""
Callback to allow pisa/reportlab to retrieve Images,Stylesheets, etc.
`uri` is the href attribute from the html link element.
`rel` gives a relative path, but it's not used here.

"""
path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, ""))
return path

对于较新的 Django 版本,您可能应该使用 STATIC_ROOT 而不是 MEDIA_ROOT

然后在您的渲染方法中相应地使用获取资源:

pdf = pisa.pisaDocument(StringIO.StringIO(
html.encode("UTF-8")),
result,
link_callback=fetch_resources,
encoding="utf-8")

关于python - 使用 Python 将 HTML 转换为 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com