Как конвертировать изображения SVG для использования с Pisa / XHTML2PDF?
Я использую Pisa/XHTML2PDF для создания PDF-файлов на лету в Django. К сожалению, мне нужно также включить изображения SVG, что я не считаю легкой задачей.
Как лучше всего: а) преобразовать SVG в PNG / JPG (в Python) или б) включить SVG в экспорт PDF из Пизы?
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')
Шаг from gtk import gdk
предложенный Lukasz, необходим и должен предшествовать созданию pixbuf, иначе вы не получите save
Метод, как это видно Nick Sergeant.
"У меня работает rsvg, но вот что я получаю, когда пытаюсь сохранить: AttributeError:" gtk.gdk.Pixbuf "объект не имеет атрибута" save "- Ник Сержант, 25 апреля 2009 г., 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')