svglib
我正在尝试使用和包在 python 中将 SVG 文件转换为 PDF reportlab
。这是 SVG 文件。
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="blue" />
</svg>
这是我用来转换的代码(从svglib
网页获取)。
>>> from svglib.svglib import svg2rlg
>>> from reportlab.graphics import renderPDF
>>> drawing = svg2rlg("file.svg")
>>> renderPDF.drawToFile(drawing, "file.pdf")
代码运行良好,没有任何错误或异常,但file.pdf
由此生成的是一个空白文件。我的意思是,当我打开这个 PDF 文件时,我什么也看不到,只看到白色背景页面,上面什么也没有。
我哪里出错了?
答案1
如果你做了最后一行:
renderPDF.drawToFile(drawing, "file.pdf", autoSize=0)
你会在页面上看到一个漂亮的蓝色圆圈。的正常参数值 autoSize
会1
导致 PDF 与绘图的尺寸相同。
问题在于您的 svg 文件没有大小参数。例如,您可以将svg
开始标签更改为:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="1000px" width="1000px">
无需使用即可获得类似(可见)的结果autoSize=0