我使用Pisa/XHTML2PDF在Django中即時生成PDF。不幸的是,我還需要包含SVG圖像,我不認爲這是一件容易的事情。如何轉換SVG圖像以用於Pisa/XHTML2PDF?
什麼是最好的方法去a)將SVGs轉換爲PNG/JPG(使用Python)或b)包括比薩的PDF導出中的SVGs?
我使用Pisa/XHTML2PDF在Django中即時生成PDF。不幸的是,我還需要包含SVG圖像,我不認爲這是一件容易的事情。如何轉換SVG圖像以用於Pisa/XHTML2PDF?
什麼是最好的方法去a)將SVGs轉換爲PNG/JPG(使用Python)或b)包括比薩的PDF導出中的SVGs?
有基於Java的Apache Batik SVG toolkit。
在similar question regarding C#建議使用command line version of Inkscape。
對於Python,這裏是從this discussion thread一個有用的建議:
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
方法,如通過the original poster觀察。
「我得到了rsvg的工作,但這裏是我得到什麼,當我試圖保存:AttributeError:'gtk.gdk.Pixbuf'對象沒有屬性'保存'''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')
啊,那將是真棒,但我不知道如何獲得rsvg。它從一個快速的谷歌搜索中顯示出來,其他人也有類似的問題'獲取'rsvg。這是一個Python 2.6的唯一的東西? – 2009-04-24 22:00:49
Rsvg(http://en.wikipedia.org/wiki/Librsvg)是GNOME項目的一部分。這裏有一個鏈接(http://mwusers.com/forums/showthread.php?p=27924)討論如何在Windows上安裝它。 – 2009-04-24 22:31:32