Ghostscript для сжатия пакета PDF-файлов - PullRequest
0 голосов
/ 07 ноября 2018

У меня нет опыта программирования.

Мои PDF-файлы не будут отображать изображения на iPad в PDFExpert или GoodNotes, поскольку изображения в формате JPEG2000, из того, что я мог найти в Интернете.

Это большие PDF-файлы, до 1500-2000 страниц с изображениями. Один из них был 80MB или около того файла. Я попытался распечатать его на Foxit, чтобы преобразовать изображения в JPG из JPEG2000, но размер файла подскочил до 800 МБ ... плюс это занимает слишком много времени.

Я наткнулся на Ghostscript, но понятия не имею, как использовать интерфейс командной строки.

У меня очень мало времени. В значительной степени нужно пошаговое руководство для небольшого скрипта, который конвертирует все мои PDF-файлы за один раз.

Очень сожалею о моей неопытности и беспомощности. Может ли кто-нибудь накормить меня шагами для этого?

РЕДАКТИРОВАТЬ: я хочу переключить JPEG2000 на любой другой формат, который производит меньше увеличения размера файла и вызывает минимальную потерю качества (в разумных пределах). Я понятия не имею, как использовать Ghostscript. Я хочу изменить сжатие изображений таким образом, чтобы оно отображалось правильно на iPad, сохраняя при этом качество остального текста, а также встроенных закладок.

Я повторю, что у меня НЕТ опыта работы с командной строкой ... Я даже не знаю, как указать GS на папку, в которой находятся мои PDF-файлы ...

1 Ответ

0 голосов
/ 08 ноября 2018

Вы на самом деле не сказали, чего хотите. Как конвертировать PDF-файлы?

Обратите внимание, что переключение с JPX (JPEG2000) на JPEG приведет к потере качества, поскольку данные изображения будут квантованы (с другой схемой квантования в JPX) кодером JPEG. Вместо этого вы можете использовать схему сжатия без потерь, но тогда вы не получите такой же тип сжатия. В любом случае вы не получите такой же коэффициент сжатия, как JPX, независимо от того, что вы используете, результат будет больше.

Простая команда Ghostscript будет:

gs -sDEVICE = pdfwrite -o out.pdf in.pdf

Поскольку кодировка JPEG2000 (или, по крайней мере, была) запатентована, устройство pdfwrite не записывает изображения в формате JPX <по умолчанию, оно будет записывать их несколько раз с различными схемами сжатия, а затем использовать ту, которая дает наилучшее сжатие (практически всегда JPEG). </p>

Для получения лучших результатов потребуется более сложная командная строка, но вам также нужно будет более четко определить, чего именно вы хотите достичь, и какова воспринимаемая проблема с упрощенной командной строкой.

[EDIT]

Ну, предоставление помощи по выполнению командной строки немного не по теме для переполнения стека, это должен быть сайт для разработчиков программного обеспечения: -)

Не зная, какую операционную систему вы используете, чтобы дать вам подробные инструкции, я также понятия не имею, что использует iPad, я обычно не использую устройства Apple, и мой единственный опыт - с Mac.

Предположительно, вы знаете, где (каталог) вы установили Ghostscript. Либо откройте командную оболочку там и введите команду ./gs, либо выполните команду, указав полный путь, например:

/usr/bin/gs

Я думал, что аргументы в командной строке говорят сами за себя, но ....

Переключатель -sDEVICE=pdfwrite указывает Ghostscript использовать устройство pdfwrite, как можно догадаться из названия, это устройство записывает файлы PDF в качестве вывода.

Переключатель -o - это имя (и полный путь, если требуется) выходного файла.

Последний аргумент - это имя (и снова полный путь, если его нет в текущем каталоге) входного файла.

Таким образом, команда может выглядеть следующим образом:

/usr/bin/gs -sDEVICE=pdfwrite -o /home/me/output.pdf /home/me/input.pdf

Или если Ghostscript и входной файл находятся в одном каталоге:

./gs -sDEVICE=pdfwrite -o out.pdf input.pdf
...