正在考虑在我的应用程序中生成服务器端pdf报告的最佳路线,该应用程序当前已部署在Heroku上。我已经阅读了几篇文章,都说需要安装外部库,但没有找到任何描述在Heroku上安装外部库功能和易用性的内容。
这里有没有任何人有在Heroku上安装过这些库的经验?这是一个困难的过程吗?其中一个比另一个更容易在Heroku上设置吗?或者如果我能够在本地系统上安装并运行PIP Freeze,那么是否可以处理在Heroku上必要的任何安装?
谢谢!
正在考虑在我的应用程序中生成服务器端pdf报告的最佳路线,该应用程序当前已部署在Heroku上。我已经阅读了几篇文章,都说需要安装外部库,但没有找到任何描述在Heroku上安装外部库功能和易用性的内容。
这里有没有任何人有在Heroku上安装过这些库的经验?这是一个困难的过程吗?其中一个比另一个更容易在Heroku上设置吗?或者如果我能够在本地系统上安装并运行PIP Freeze,那么是否可以处理在Heroku上必要的任何安装?
谢谢!
Weasyprint需要安装一些依赖项,我认为在Heroku上安装它是不可能的。我在本地测试了它,效果非常好,在设置完成后很容易就可以使用一个漂亮的动态HTML文档,并获得一个稳定的PDF文件。
Heroku提供了一个名为web2pdf-addon的插件: https://elements.heroku.com/addons/webtopdf#details
我还没有测试过它,但看起来很有前途。
我刚刚在我的Django程序中添加了WeasyPrint。我在本地和Heroku上都进行了测试,它在两个地方都很好用。
如果您正在使用Django,可以先运行pip3 freeze来获取正确的WeasyPrint信息(版本),以便在您的requirements文件中使用:
$ pip3 freeze
然后寻找WeasyPrint信息。对我来说,它是以下行:
WeasyPrint==51
$ git add -A
$ git commit -m "Changed requirements"
$ git push heroku master
Heroku添加了WeasyPrint及其依赖项。
WeasyPrint比ReportLab更容易使用,唯一的问题是它无法正确处理页面断点(因为您正在将HTML页面转换为PDF),如果您的报告跨越多个页面(例如表格),这可能成为一个致命问题。