将JPG数据正确嵌入Inkscape生成的PDF文件中

nib*_*bot 5 pdf jpeg inkscape

Inkscape中存在一个错误,其中SVG文档中包含的JPEG图像在导出为PDF文件时嵌入为位图而不是JPEG.

结果是文件大小大幅增加.例如,我有一个简单的SVG绘图,其中包含一个2 MB的JPEG图像; 导出为PDF会产生14 MB的文件.

我正在寻找一种解决方法.有没有办法通过插入正确编码的JPG图像来修复生成的PDF,可能是通过某种pdftk技巧?

(在我的情况下,生成的PDF将作为图形包含在使用pdflatex呈现的LaTeX文档中,因此除了直接修复由Inkscape生成的PDF之外,可能还有其他解决方法.)

nib*_*bot 3

一种拼凑方法是使用pdf2ps后跟ps2pdf,它将把位图数据重新编码为 JPEG:

pdf2ps made-by-inkscape.pdf foo.ps
ps2pdf foo.ps smaller-file.pdf
Run Code Online (Sandbox Code Playgroud)

对于我的测试用例,文件大小为:

original JPEG           2.1M
made-by-inkscape.pdf   15M
foo.ps                104M
smaller-file.pdf        1.5M
Run Code Online (Sandbox Code Playgroud)

当然,这涉及对 JPEG 数据进行重新编码,最好避免这种情况。