Обработка PDF-файлов для уменьшения размера файла и / или его сложности - PullRequest
11 голосов
/ 31 декабря 2010

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

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

Ответы [ 5 ]

8 голосов
/ 02 января 2011

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

  • изображения с высоким разрешением (там, где достаточно разрешения)
  • встроенные шрифты (где контент мог бы быть читаемым "достаточно хорошо" без них)
  • Содержимое 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-файлов (например, установив более низкое максимальное разрешение и т. Д.). Вот пример для принудительного снижения частоты дискретизации для цветных и полутоновых изображений до 72 точек на дюйм:

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, оставляя остальную часть макета страницы без изменений. Это полезно в тех случаях, когда вы не хотите (растровые) изображения, а только текстовые части, чтобы уменьшить размер файла.

4 голосов
/ 10 января 2011

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

«PDF Optimizer» - 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-файлов в растровые изображения.Если вы немного масштабируете их перед растеризацией (чтобы обеспечить масштабирование на устройстве) и придерживаетесь индексированной цветовой схемы, вы сможете создавать растры для каждой страницы с приемлемым размером и разрешением файла.Они будут рисоваться на устройстве намного быстрее, чем векторный контент.

0 голосов
/ 11 января 2011

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

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

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

0 голосов
/ 07 января 2011

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

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

  • Отправьте либо ссылку на PDF-файл, либо реальный PDF-файл на pdf2html@adobe.com.Вы получите обратно HTML версию PDF.Больше информации на сайте Adobe
  • Используйте автономное программное обеспечение, такое как pdf995 или pdf2html
  • Используйте коммерческий плагин Adobe AcrobatНапример, LD-Converter

Я уверен, что есть еще больше вариантов для выполнения конвертации.

В качестве внешней ставки вы пробовали просматриватьваши PDF-файлы с телефона с помощью онлайн-приложения Google ?

0 голосов
/ 02 января 2011

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

...