gpt4 book ai didi

python - 如何在 Django 中将 html 页面转换为 pdf

转载 作者:行者123 更新时间:2023-12-01 05:51:27 25 4
gpt4 key购买 nike

我正在使用 Django 创建报告网站。报告是动态生成的,它们还包括一些 SVG 图表。我想创建一个基于用户正在查看的当前报告的 PDF 文件,但带有额外的页眉和页脚。我遇到了 Phantomjs,但有两个问题,首先是该页面需要用户登录,所以如果我将 url 发送到服务器,phantomjs 会为日志页面创建 pdf;其次,报告是使用 ajax 生成的,因此即使相同的 url 也会有不同的报告。有没有更好的方法来做到这一点?

最佳答案

一般问题是如何通过您的网络服务器进行身份验证。对于 WKHTMLTOPDF 和 PHANTOMJS,我通过将身份验证 token 传递给它们并让它们在 cookie 中将其传递回服务器来做到这一点。

因此对于 WKHTMLTOPDF 这将变为:

wkhtmltopdf --cookie=LtpaToken2=<sometoken>  

这适用于传递身份验证 token 的 Java Web 服务器。我不太了解 django,但它必须使用类似的基于 cookie 的机制进行身份验证。您将需要:

  1. 获取服务端token(一般可以通过cookie或者request-header获取)
  2. 将其传递给工具 wkhtmltopdf 或 phantomjs
  3. 当该工具请求任何 protected 页面时,它需要传回 cookie。两者都有相同的命令行参数。

对于 AJAX,最好的方法是添加延迟。同样,两者都有配置延迟的机制。如果是 WKHTMLTOPDF,您可以在命令行参数中指定它,phantomjs 可以在 windows.setTimeOut 中指定。为 Ajax 提供足够的延迟,以便在渲染页面之前完成。

关于python - 如何在 Django 中将 html 页面转换为 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14137778/

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