Обработка PDF файлов для уменьшения размера и/или размера файла

У меня есть файлы PDF, которые мне нужно подготовить для просмотра на мобильных устройствах. Худший случай будет ~ 50 страниц, с большим количеством цветных изображений и векторной графики, размером файла ок. 40Мб. Это приемлемо для просмотра ПК на широкополосной сети, но не отлично подходит для мобильного просмотра из-за длительного времени загрузки и очень медленной прокрутки на мобильном телефоне (по крайней мере, на моем разогнанном Droid). Существуют ли какие-либо инструменты или библиотеки для обработки файлов просто для векторного материала, уменьшения или сжатия изображений, что-то типа?

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

Ответ 1

Есть несколько основных вещей, которые могут взорвать размер PDF на мобильных устройствах:

  • фотографии с высоким разрешением (где lo-res будет достаточно)
  • встроенные шрифты (где контент будет по-прежнему доступен для чтения "достаточно хорошо" без них)
  • Содержимое PDF больше не требуется для текущей версии/просмотра (более старая версия определенных объектов)
  • встроенные профили ICC
  • встроенные сторонние файлы (с использованием PDF в качестве контейнера)
  • встроенные билеты на работу (для печати)
  • встроенный Javascript
  • и еще несколько

Программное обеспечение FOSS: Ghostscript может попытаться определить размер ваших PDF файлов, желательно повторить выборку используемые изображения и удаляя старые версии ( "поколений" ) PDF-объектов, которые были заменены более новыми:

gswin32c.exe ^
  -o sized-down.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/ebook ^
  -dEmbedAllFonts=false ^
  -c ".setpdfwrite <</AlwaysEmbed [ ]>>" ^
  -f blown-up.pdf

Вы можете добавить больше параметров в вышеуказанную командную строку, чтобы еще больше уменьшить некоторые PDF файлы (например, установив более низкое максимальное разрешение и т.д.). Вот пример, чтобы обеспечить сокращение дискретизации для цветных и полутоновых изображений на 72dpi:

gswin32c.exe ^
  -o sized-down.pdf ^
  -sDEVICE=pdfwrite ^
  -dPDFSETTINGS=/ebook ^
  -dEmbedAllFonts=false ^
  -dColorImageDownsampleThreshold=1.0 ^
  -dColorImageDownsampleType=/Average ^
  -dColorImageResolution=72 ^
  -dGrayImageDownsampleThreshold=1.0 ^
  -dGrayImageDownsampleType=/Average ^
  -dGrayImageResolution=72 ^
  -c ".setpdfwrite <</AlwaysEmbed [ ]>>" ^
  -f blown-up.pdf

Коммерческое + программное обеспечение с закрытым исходным кодом: callas pdfToolbox4 может еще больше уменьшить размер файлов, применив пользовательский профиль в процесс сокращения PDF (он может даже вставлять шрифты и профили ICC).


Обновление 2: См. также следующий (новый) вопрос с ответом:

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

Ответ 2

Adobe Acrobat Professional имеет два встроенных инструмента для оптимизации файлов PDF:

"Оптимизатор PDF" - http://www.adobe.com/designcenter/acrobat/articles/acr7optimize.html, который упростит перенос и удалит ненужный контент (между прочим)

и

"Оптимизировать отсканированный PDF файл" -http://help.adobe.com/en_US/Acrobat/9.0/Standard/WS58a04a822e3e50102bd615109794195ff-7f71.w.html#WS0BEFAC0B-47D9-47b8-9AF8-4DE2FE9C9736.w, который будет уменьшаться и сжимать встроенные растровые изображения.

Оба являются лучшими инструментами для того, что они делают, что я использовал. Однако основное внимание в большинстве инструментов оптимизации PDF заключается в уменьшении размера файла, не улучшая скорость рендеринга.

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

Ответ 3

В Acrobat есть опции для уменьшения размера изображения и улучшения формата PDF/скорости. Вы посмотрели этот вариант?

Ответ 4

Планируете ли вы, что у пользователя есть файлы PDF, хранящиеся на их телефоне, для просмотра в автономном режиме? Если нет, можете ли вы конвертировать PDF файлы в HTML? Вы также можете выполнять пост-обработку любых изображений, чтобы снизить качество/размер файла.

Некоторые опции для конвертеров включают в себя:

  • Отправьте по электронной почте ссылку на PDF или реальный PDF файл на [email protected]. Вы получите обратно HTML-версию PDF. Подробнее о сайте Adobe
  • Используйте автономное программное обеспечение, такое как pdf995 или pdf2html
  • Используйте коммерческий плагин Adobe Acrobat, например LD-Converter

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

Как внешняя ставка, попробовали ли вы просматривать свой PDF файл со своего телефона, используя онлайн-версию Google?

Ответ 5

Некоторое время назад (несколько лет) я уменьшал размер PDF файлов, преобразовывая их в djvu (скажем, через http://any2djvu.djvuzone.org/ или локально установленные бесплатные средства командной строки). Результаты были очень приятными (маленькие).

В то время AFAIK, PDF не включал поддержку кодировок той же эффективности в размере, что и djvu, но теперь мне сказали, что формат PDF включает кодировки, которые не хуже djvu. Таким образом, должны быть инструменты, которые делают такую ​​же хорошую оптимизацию для PDF. Ищите их.

Или вы можете распространять djvus, но я не уверен, что программное обеспечение для чтения djvu предварительно установлено в ваших ОС.

Ответ 6

  это должно быть что-то читаемое на устройствах Android и iOS без загрузки программного обеспечения.

Вы можете предварительно обработать PDF файл с помощью такого инструмента, как k2pdfopt.

Это меняет это ===================> на это:

https://www.willus.com/k2pdfopt/examples/original/ieee_twocolumn_template.png  ______ https://www.willus.com/k2pdfopt/examples/kindle/ieee_twocolumn_template_k2opt_v127.png

Из его источников, проект стартовал в 2012 году.