以编程方式将图形添加到PDF中从未如此简单!继续阅读,看看在这篇文章中如何使用Python做到这一点。
.ReportLab具有生成SVG的本机支持,但不支持将SVG嵌入到其PDF中。幸运的是,Dinu Gherman创建了svglib包,这是一个纯Python包,可以读取SVG文件并将其转换为ReportLab可以使用的其他格式。svglib的官方网站位于GitHub上。
svglib软件包可以在Linux,Mac OS和Windows上运行。该网站声明它适用于Python 2.7 - 3.5,但它也适用于较新版本的Python。
您可以使用svglib来读取现有的SVG文件并将其转换为ReportLab Drawing对象。svglib软件包还有一个命令行工具svg2pdf,可以将SVG文件转换为PDF。
依赖
svglib包依赖于ReportLab和lxml。您可以使用pip安装这两个软件包:
pip install reportlab lxml
安装
可以使用三种方法之一来安装svglib软件包。
安装最新版本
如果您想要从Python Packaging Index安装最新版本,那么您可以按普通方式使用pip:
pip install svglib
从源代码管理安装最新版本
如果您不想使用最新版本的代码(即出血边缘/ alpha版本),那么您可以使用pip直接从GitHub安装,如下所示:
pip install git+https://github.com/deeplook/svglib
手动安装
大多数情况下,使用点是要走的路。但是您也可以从Python Packaging Index下载tarball,并根据需要自动执行pip为您自动执行的所有步骤。只需在终端中运行以下三个命令即可:
tar xfz svglib-0.8.1.tar.gzcd svglib-0.8.1python setup.py install
现在我们已经安装了svglib,让我们学习如何使用它!
用法
在ReportLab中使用svglib实际上非常简单。您只需从svglib.svglib导入svg2rlg,并为其指定SVG文件的路径。让我们来看看:
# svg_demo.pyfrom reportlab.graphics import renderPDF, renderPMfrom svglib.svglib import svg2rlgdef svg_demo(image_path, output_path):drawing = svg2rlg(image_