我已经设法使用 rsvg 读取 SVG,并在 Python 中通过 Cairo 将其输出到 PNG。
尽管有很多类似的问题,但我还没有看到任何关于如何通过 rsvg 和 cairo 将 SVG 转换为 PDF 的文档。我知道命令行 'rsvg'/'rsvp-convert' 工具,但希望将功能合并到我的 Python 代码中。也没有启动子进程。
举例来说,这基本上是我目前用来渲染 PNG 的内容:
img = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
ctx = cairo.Context(img)
handler= rsvg.Handle(None, svgstr)
handler.render_cairo(ctx)
img.write_to_png(pngfilepath)
问题是:如何将代码更改为输出 PDF,从而保持矢量格式;不得发生光栅化。