Как оптимизировать размер файла PDF? - PullRequest
7 голосов
/ 04 мая 2009

У меня есть входной PDF-файл (обычно, но не всегда сгенерированный pdfTeX), который я хочу преобразовать в выходной PDF-файл, который визуально эквивалентен (независимо от разрешения), имеет те же метаданные (текстовая информация Unicode , гиперссылки, контуры и т. д.), но размер файла как можно меньше.

Я знаю о следующих методах:

  • java -cp Multivalent.jar tool.pdf.Compress input.pdf (из http://multivalent.sourceforge.net/). Повторное сжатие всех потоков, удаление неиспользуемых объектов, объединение эквивалентных объектов, сжатие пробелов, удаление значений по умолчанию, сжатие таблицы перекрестных ссылок.
  • Повторное сжатие подходящих изображений с помощью jbig2 и PNGOUT.
  • Перекодирование шрифтов Type1 в шрифты CFF.
  • Объединение эквивалентных изображений.
  • Объединение подмножеств одного и того же шрифта в большее подмножество.
  • Удалить заполняемые формы.
  • При перегонке или ином преобразовании (например, gs -sDEVICE=pdfwrite) убедитесь, что оно не ухудшает качество изображения и не увеличивает (!) Размеры изображения.

Я знаю о следующих методах, но они не применяются в моем случае, так как у меня уже есть PDF:

  • Используйте меньшие и / или меньшие шрифты.
  • Используйте векторные изображения вместо растровых изображений.

У вас есть другие идеи, как оптимизировать PDF?

Ответы [ 2 ]

10 голосов
/ 04 мая 2009

Оптимизация файлов PDF

Избегайте повторной графики

Для графики, которая должна быть вставлена ​​как растровые изображения, подготовьте их для максимальной сжимаемости и минимальных размеров. Используйте изображения наилучшего качества, которые вы можете получить при выходном разрешении PDF. Вставка сжатых JPEG-файлов в PDF-файлы и их дистилляция могут повторно сжать JPEG-файлы, что может привести к заметным артефактам. Используйте черно-белые изображения и текст вместо цветных изображений, чтобы разрешить использование более нового стандарта JBIG2, который превосходит монохроматическое сжатие. Обязательно отключайте эскизы при сохранении PDF-файлов для Интернета. Использовать векторную графику

По возможности используйте векторную графику для изображений, которые обычно превращаются в GIF-изображения. Векторные изображения отлично масштабируются, выглядят изумительно, и их математические формулы обычно занимают меньше места, чем растровые изображения, описывающие каждый пиксель (хотя в некоторых случаях растровая графика на самом деле меньше, чем векторная графика). Вы также можете сжимать данные векторного изображения, используя сжатие ZIP, встроенное в формат PDF. Acrobat Reader версий 5 и 6 также поддерживает стандарт SVG. Свернуть шрифты

То, как вы используете шрифты, особенно в небольших файлах PDF, может оказать существенное влияние на размер файла. Минимизируйте количество шрифтов, которые вы используете в своих документах, чтобы минимизировать их влияние на размер файла. Каждый дополнительный полностью внедренный шрифт может легко занимать 40 КБ в размере файла, поэтому большинство авторов создают «подмножественные» шрифты, которые включают только фактически используемые глифы. Сгладить жировые отложения

Формы Acrobat могут занимать много места в ваших PDF-файлах. Новое в Acrobat 8 ​​Pro позволяет выравнивать поля формы в диалоговом окне «Дополнительно» -> «Оптимизатор PDF» -> «Отменить объекты». Сглаживание форм делает поля формы непригодными для использования, а данные формы объединяются со страницей. Вы также можете использовать PDF Enhancer от Apago, чтобы уменьшить формы на 50%, удаляя информацию, присутствующую в файле, но фактически не используемую. Вы также можете комбинировать повторно проверенный PDF со старыми страницами форм для создания гибридного PDF в Acrobat (см. Раздел «Пересчитанный PDF» ниже).

см. артикул

4 голосов
/ 04 июня 2009

Из спецификации PDF версии 1.5 появилось два новых метода сжатия: потоки объектов и потоки перекрестных ссылок.

Вы упоминаете, что инструмент сжатия Multivalent.jar сжимает таблицу перекрестных ссылок. Обычно это означает, что таблица перекрестных ссылок преобразуется в поток, а затем сжимается.

Формат этого потока перекрестных ссылок не фиксирован. Вы можете изменить битовый размер трех «столбцов» данных. Также возможно предварительно обработать данные потока, используя функцию предиктора, которая улучшит уровень сжатия данных. Если вы загляните внутрь PDF с помощью текстового редактора, вы сможете найти запись /Predictor в словаре перекрестных ссылок, чтобы проверить, использует ли используемый вами инструмент эту функцию.

Использование предиктора для сжатия также может быть полезно для изображений.

Второй тип сжатия - это использование потоков объектов.

Часто в PDF у вас есть много похожих объектов. Теперь их можно объединить в один объект, а затем сжать. В документации к инструменту Multivalent Compress упоминается, что используются потоки объектов, но не имеется много подробностей о реальном выборе объектов для группировки. Сжатие будет лучше, если вы сгруппируете похожие объекты в поток объектов.

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