使用 reportlab 通过 matplotlib 生成的基于向量的图形构建 PDF
我正在尝试使用 reportlab 在 Django 安装中的服务器端构建 PDF 文档。这些文档应包含多个使用 matplotlib 创建的图表。
我已经弄清楚如何让reportlab使用matplotlib的图像,而不通过传递 PIL-Image 对象直接到Image()
-flowable。对于 PNG 等光栅化图像格式来说,这效果出奇地好。
现在,锦上添花的是能够嵌入基于矢量的图形(如 SVG)。
我使用 svglib 将 matplotlib 生成的 SVG 转换为 reportlab 图形对象,但不幸的是 svglib 确实省略了刻度线和轴标签。在某些图表上,它通常会失败。
你有什么想法吗?
I'm trying to build PDF-documents on the server-side in a Django-Installation using reportlab. These documents should contain several graphs which are to be created with matplotlib.
I already figured out how to make reportlab use matplotlib's images without dumping them to the filesystem temporarily by passing PIL-Image objects directly to the Image()
-flowable. This works surprisingly well for rasterized images formats like PNG.
Now, the icing on the cake would be able to embed vector based graphics (like SVG).
I used svglib to convert SVGs generated by matplotlib to reportlab graphic objects but unfortunately svglib does omit the tickmarks and axis labels. On some graphs it fails in general.
Do you have any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
此页面有一个我还没有机会测试自己的解决方案: https://web.archive.org/web/20120725125858/http://terior.netmanagers.com.ar/weblog/posts/BB753.html
This page has a solution that I haven't had a chance to test myself yet: https://web.archive.org/web/20120725125858/http://lateral.netmanagers.com.ar/weblog/posts/BB753.html
您可以将 matplotlib 图形生成为 pdf 并使用 pdfrw 将其嵌入到 reportlab 画布中,如中所述这个答案
You can generate matplotlib graphics as pdf and use pdfrw to embed it in reportlab canvas as described in this answer