猿问

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

试图确定在我当前部署在 Heroku 上的应用程序中生成服务器端 pdf 报告的最佳途径。我已经阅读了几篇说两者都需要安装外部库的帖子 - 但没有找到任何描述功能和在 Heroku 上易于安装的内容。

这里有没有人有安装到 Heroku 上的应用程序的经验?这是一个困难的过程吗?在 Heroku 上设置一个比另一个更容易吗?或者,如果我能够在我的本地系统上安装并运行 PIP Freeze,这是否会处理 Heroku 上所需的任何安装?

谢谢!!


慕容3067478
浏览 201回答 4
4回答

哆啦的时光机

Weasyprint 需要安装一些依赖项,认为不可能在 heroku 上安装它。我在本地对其进行了测试,它运行良好,设置完成后,很容易提供一个漂亮的动态 html 文档并获得一个可靠的 pdf 作为回报。heroku 提供了一个 web2pdf 插件: https ://elements.heroku.com/addons/webtopdf#details我还没有测试它,但它看起来很有希望。

收到一只叮咚

我刚刚将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 masterHeroku 添加了 WeasyPrint 及其依赖项。

子衿沉夜

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

慕桂英3389331

我有最重要的 Reportlab 经验。要启动并运行它需要您付出很多努力,它不能“开箱即用”并且涉及大量编程(您需要创建模板,围绕文本构建逻辑,围绕批处理作业构建例程等) . 它作为一个普通的 PIP 包安装,但是你需要开始编程才能让它工作。但是,看起来 Weasyprint 使用另一种技术来生成 pdf(用于打印的 CSS),如果您已经拥有使用 CSS 格式化的页面,这可能是一种更容易访问的解决方案。
随时随地看视频慕课网APP

相关分类

Python
我要回答