为了账号安全,请及时绑定邮箱和手机立即绑定

Weasyprint 或 Reportlab 用于在 Heroku 上生成 Django 报告

Weasyprint 或 Reportlab 用于在 Heroku 上生成 Django 报告

慕容3067478 2022-10-18 17:49:48
试图确定在我当前部署在 Heroku 上的应用程序中生成服务器端 pdf 报告的最佳途径。我已经阅读了几篇说两者都需要安装外部库的帖子 - 但没有找到任何描述功能和在 Heroku 上易于安装的内容。这里有没有人有安装到 Heroku 上的应用程序的经验?这是一个困难的过程吗?在 Heroku 上设置一个比另一个更容易吗?或者,如果我能够在我的本地系统上安装并运行 PIP Freeze,这是否会处理 Heroku 上所需的任何安装?谢谢!!
查看完整描述

4 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

Weasyprint 需要安装一些依赖项,认为不可能在 heroku 上安装它。我在本地对其进行了测试,它运行良好,设置完成后,很容易提供一个漂亮的动态 html 文档并获得一个可靠的 pdf 作为回报。

heroku 提供了一个 web2pdf 插件: https ://elements.heroku.com/addons/webtopdf#details

我还没有测试它,但它看起来很有希望。


查看完整回答
反对 回复 2022-10-18
?
收到一只叮咚

TA贡献1821条经验 获得超5个赞

我刚刚将WeasyPrint添加到我的Django程序中。我在本地和Heroku上都对其进行了测试。它在两个地方都非常有效。


如果您使用的是 Django,您可以先运行 pip3 freeze 以获取正确的 WeasyPrint 信息(版本)以在您的需求文件中使用:


$ pip3 freeze 

然后查找 WeasyPrint 信息。对我来说,它是以下行:


WeasyPrint==51

将此行添加到requirements.txt文件中。然后运行:


$ git add -A

$ git commit -m "Changed requirements"

$ git push heroku master

Heroku 添加了 WeasyPrint 及其依赖项。


查看完整回答
反对 回复 2022-10-18
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

WeasyPrint 比 ReportLab 更易于使用,weasyprint 的唯一问题是它不能正确处理分页符(因为您正在将 HTML 页面转换为 PDF),如果您的报告超过 1 页,这可能会破坏交易(例如表格)



查看完整回答
反对 回复 2022-10-18
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我有最重要的 Reportlab 经验。要启动并运行它需要您付出很多努力,它不能“开箱即用”并且涉及大量编程(您需要创建模板,围绕文本构建逻辑,围绕批处理作业构建例程等) . 它作为一个普通的 PIP 包安装,但是你需要开始编程才能让它工作。

但是,看起来 Weasyprint 使用另一种技术来生成 pdf(用于打印的 CSS),如果您已经拥有使用 CSS 格式化的页面,这可能是一种更容易访问的解决方案。


查看完整回答
反对 回复 2022-10-18
  • 4 回答
  • 0 关注
  • 198 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号