2011-07-14 52 views
5

存在一個bug in Inkscape,其中包含在SVG文檔中的JPEG圖像在導出爲PDF文件時被嵌入爲位圖而非JPEG。在Inkscape生成的PDF文件中正確嵌入JPG數據

結果是文件大小的巨大增加。例如,我有一個簡單的SVG圖形,其中包含一個2 MB的JPEG圖像;以14 MB文件格式導出到PDF結果。

我正在尋找解決方法。有沒有辦法通過插入正確編碼的JPG圖像,可能通過某種pdftk技巧來修復所得的PDF的

(在我的情況下,所得到的PDF將作爲與pdflatex呈現的乳膠文檔中的圖中,所以有可能比直接固定由Inkscape中生成的PDF其他解決方法。)

+1

最後修復Inkscape 0.91。 –

回答

3

一個組裝機是使用pdf2ps其次ps2pdf,這將重新編碼的位圖數據爲JPEG:

pdf2ps made-by-inkscape.pdf foo.ps 
ps2pdf foo.ps smaller-file.pdf 

對於我的測試情況下,文件大小爲:

original JPEG   2.1M 
made-by-inkscape.pdf 15M 
foo.ps    104M 
smaller-file.pdf  1.5M 

但是,當然,這涉及到重新編碼JPEG數據,這是最好的避免。

+0

請注意,ps2pdf可以將pdf作爲輸入,您不需要先生成ps文件。 – Maxim

1

我發現使用Inkscape 0.48.1導出到EPS,並將生成的EPS文件傳遞到epstopdf script可以產生良好的結果。 PNG/JPG文件保留在PDF文件中的PNG/JPG文件,字體看起來沒問題,等等。

+0

這對Inkscape 0.48.4(Ubuntu 14.04中的股票)並不適用。用305604字節的JPEG創建了一個準平凡的SVG。導出爲PDF會產生2414085字節,'pdfimages -j'會提取2904016字節的PPM。導出到EPS產量28295129字節。 epstopdf(在Ubuntu包texlive-font-utils中)產生1223973字節的PDF。 'pdfimages -j'提取一個821634字節的JPEG。結論:它已被重新編碼。 –