Правильно вставляйте данные JPG в файлы PDF, созданные Inkscape.

В Inkscape существует ошибка, из-за которой изображения JPEG, включенные в документ SVG, внедряются в виде растровых изображений. а не JPEG при экспорте в файлы PDF.

Результатом является огромное увеличение размера файла. Например, у меня есть простой рисунок SVG, который включает в себя изображение JPEG размером 2 МБ; экспорт в PDF приводит к файлу размером 14 МБ.

Я ищу обходной путь. Есть ли способ исправить полученный PDF, вставив правильно закодированное изображение JPG, возможно, с помощью какой-то хитрости pdftk?

(В моем случае полученный PDF-файл будет включен как рисунок в документ LaTeX, обработанный с помощью pdflatex, поэтому могут быть обходные пути, отличные от непосредственного исправления PDF-файла, созданного Inkscape.)


person nibot    schedule 14.07.2011    source источник
comment
Наконец исправлено в Inkscape 0.91.   -  person Bernhard Reiter    schedule 27.03.2015


Ответы (2)


Одна хитрость заключается в использовании 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, чего лучше избегать.

person nibot    schedule 14.07.2011
comment
Обратите внимание, что ps2pdf может принимать pdf в качестве входных данных, вам не нужно сначала создавать файл ps. - person Maxim; 15.12.2016

Я обнаружил, что Inkscape 0.48.1 вместо этого экспортирует в EPS и передает полученный файл EPS в сценарий epstopdf дает хорошие результаты. Файлы PNG/JPG остаются PNG/JPG в файле PDF, шрифты выглядят нормально и т. д.

person Samuel Audet    schedule 21.12.2011
comment
У меня это не сработало в Inkscape 0.48.4 (в Ubuntu 14.04). Создал квазитривиальный SVG с 305604-байтовым JPEG. Экспорт в PDF дает 2414085 байт, pdfimages -j извлекает 2904016-байтовый PPM. Экспорт в EPS дает 28295129 байт. epstopdf (в Ubuntu пакет texlive-font-utils) создает PDF размером 1223973 байт. pdfimages -j извлекает 821634-байтовый JPEG. Вывод: это было перекодировано. - person Stéphane Gourichon; 01.02.2015