Как конвертировать изображения 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')
Другие вопросы по тегам