2016-09-15 2 views
1

Креветка имеет вариант инициализации :compress, который описан here.Креветка PDF Сжатие, сжатие потоков контента, что он делает

Видимо, это "Compresses content streams before rendering them".

С и без compress: true Я сгенерировал то же самое 14 страниц pdf дважды. На каждой странице есть 2 фотографии и всевозможные тексты. Полученный размер файла был таким же.

Так что мой вопрос: в производстве с большим количеством фотографий я увижу разницу в размерах файлов? Или, может быть, compress: true ест большую или меньшую ОЗУ во время обработки? В чем его цель?

+0

Вы контролировали использование памяти? Это может быть полезно в очень больших документах, где стоит использование центрального процессора для более легкой памяти. – tadman

+1

Возможно, вам повезло больше узнать о своей группе Google: https://groups.google.com/forum/#!forum/prawn-ruby – Tass

+0

@ Спасибо за то, что в группе google были опубликованы ответы [здесь] (https://groups.google.com/forum/#!searchin/prawn-ruby/compression|sort:relevance/prawn-ruby/_JK372mdEPs/lZAkgVDDJLEJ) и [здесь] (https://groups.google.com/forum/#! searchin/prawn-ruby/compression | sort: актуальность/prawn-ruby/RoEHWLgQNtI/IZLnm4Cfh_sJ), теперь я запускаю как «compress: true», так и 'optimize_objects: true' за эти ответы и не видел увеличения использования ЦП в производстве – BigRon

ответ

0

я, наконец, нашел исчерпывающие ответы на три вопроса

1. В производстве с большими количествами фотографий я увижу разницу в размерах файлов?

2. Или, может быть, compress: true съедает более или менее оперативной памяти во время обработки?

  • Занимательно, файл для малого МОГ (< 10MB) размеры дополнительное потребление оперативной памяти, связанный с compress: true незначительна или вообще отсутствует. Для больших размеров файлов ваши результаты могут отличаться.

3. Какова его цель (:compress)?

2

Более эффективный способ сжатия PDF-файлов является постобработки с помощью Ghostscript, с помощью команды, такие как:

ghostscript -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dUseCIEColor -dPDFSETTINGS=/printer -dNOPAUSE -dQUIET -dBATCH -sOutputFile=<output.pdf> <input.pdf> 

Это обычно уменьшает размер моего Созданные на основе креветок PDF-файлы на 50% и более. Опция dPDFSETTINGS может быть установлена ​​на разные значения, чтобы изменить объем сжатия - см. Документы Ghostscript.

+0

Можете ли вы рассказать мне, как мы можем использовать ghostscripts в рубине? Я видел пару драгоценных камней, таких как gs-ruby и rghost, но ни у одного из них нет подробного примера того, как мы можем заставить скрипт работать над рубином. ты можешь помочь мне с этим? – Renegade

+1

Извините, я просто выкладываю команду в командной строке (заключая оператор в backticks), а не используя драгоценный камень. –