3

我正在使用Pisa/XHTML2PDF在 Django 中动态生成 PDF。不幸的是,我还需要包含 SVG 图像,我认为这不是一件容易的事。

a)将 SVG 转换为 PNG/JPG(在 Python 中)或 b)在比萨的 PDF 导出中包含 SVG 的最佳方法是什么?

4

2 回答 2

2

有基于 Java 的 Apache Batik SVG 工具包

关于 C# 的类似问题中,有人建议为此使用Inkscape 的命令行版本

对于 Python,这里有一个来自这个讨论线程的有用建议:

import rsvg
from gtk import gdk
h = rsvg.Handle('svg-file.svg')
pixbuf = h.get_pixbuf()
pixbuf.save('foobar.png', 'png')

Lukaszfrom gtk import gdk建议的步骤是必要的,并且必须在创建 pixbuf 之前,否则您将无法获得原始海报所观察到的方法。save

于 2009-04-24T21:30:50.083 回答
1

“我让 rsvg 正常工作,但这是我尝试保存时得到的结果:AttributeError: 'gtk.gdk.Pixbuf' object has no attribute 'save' – Nick Sergeant 2009 年 4 月 25 日 0:10”

您需要导入 gdk 才能访问 pixbuf 方法:

import rsvg
from gtk import gdk
h = rsvg.Handle('svg-file.svg')
pixbuf = h.get_pixbuf()
pixbuf.save('foobar.png', 'png')

并从包含 svg 数据的字符串转换:

import rsvg
from gtk import gdk
h = rsvg.Handle()
h.write(svg_string)
h.close()
pixbuf = h.get_pixbuf()
pixbuf.save('foobar.png', 'png')
于 2010-04-16T12:57:40.557 回答