Ответ 1
Если вы запустите Ghostscript -dPDFSETTINGS=/screen
, это просто своего рода ярлык. Фактически вы получите (неявно) целый набор настроек, которые вы можете запросить с помощью следующей команды:
gs \
-dNODISPLAY \
-c ".distillersettings {exch ==only ( ) print ===} forall quit" \
| grep '/screen'
В моем Ghostscript (v9.06prerelease) я получаю следующий вывод (слегка отредактированный для повышения удобочитаемости):
/screen
<< /DoThumbnails false
/MonoImageResolution 300
/ColorImageDownsampleType /Average
/PreserveEPSInfo false
/ColorConversionStrategy /sRGB
/GrayImageDownsampleType /Average
/EmbedAllFonts true
/CannotEmbedFontPolicy /Warning
/PreserveOPIComments false
/GrayImageResolution 72
/GrayACSImageDict <<
/ColorTransform 1
/QFactor 0.76
/Blend 1
/HSamples [2 1 1 2]
/VSamples [2 1 1 2]
>>
/ColorImageResolution 72
/PreserveOverprintSettings false
/CreateJobTicket false
/AutoRotatePages /PageByPage
/MonoImageDownsampleType /Average
/NeverEmbed [/Courier
/Courier-Bold
/Courier-Oblique
/Courier-BoldOblique
/Helvetica
/Helvetica-Bold
/Helvetica-Oblique
/Helvetica-BoldOblique
/Times-Roman
/Times-Bold
/Times-Italic
/Times-BoldItalic
/Symbol
/ZapfDingbats]
/ColorACSImageDict <<
/ColorTransform 1
/QFactor 0.76
/Blend 1
/HSamples [2 1 1 2]
/VSamples [2 1 1 2] >>
/CompatibilityLevel 1.3
/UCRandBGInfo /Remove
>>
Мне интересно, тяжело ли ваши PDF файлы, и если такое преобразование делает неприемлемые вещи (повторная выборка изображений с "неправильными" параметрами), которые увеличивают размер файла...
Если это так (тяжелый PDF файл), скажите так, и я обновлю этот ответ несколькими предложениями....
Update
Я посмотрел образец файла, предоставленный ДНК. Интересно...
Нет, он не содержит любое изображение.
Вместо этого он содержит один большой поток (сжатый с использованием /FlateDecode
), который состоит из примерно 700 000+ (!!) операций, в основном однопоточных операций в формате PDF, например: m
(moveto), l
(lineto), d
(setdash), w
(setlinewidth), S
(штрих), S
(closepath и stroke), W*
(eoclip), rg
и rg
(setrgbcolor)
и еще несколько.
(Этот PDF-код очень неэффективно написан AFAICS (но выполняет свою работу), потому что он объединяет много коротких штрихов вместо длинных, и почти каждый штрих снова определяет цвет (даже если это то же самое, что и до), и имеет все другие накладные расходы (начальный ход, конечный ход,...).
Ghostscript -dPDFSETTINGS=/screen
здесь не имеет любого эффекта (например, нет изображений для downsample). Увеличенный размер файла (до +48 кбайт, если быть точным), вероятно, объясняется тем, что Ghostscript повторно организует некоторые команды внутреннего поглаживания и т.д. В другом порядке, когда он интерпретирует файл.
Значит, вы не можете многое сделать с размером файла PDF...
- ... если вы не конвертируете каждую из этих страниц PDF в изображение REAL, например PNG:
gs \ -o out72.png \ -sDEVICE=pngalpha \ L_2lambda_max_1wl_E0_1_zg.pdf
(Я использовал вывод pngalpha
для получения прозрачного фона.) Размеры изображения 'out.png' равны 259x213px
, размер файла теперь составляет 70 кбайт. Но я уверен, что вам не понравится качество: -)
Качество вывода "плохо", потому что Ghostscript использует разрешение по умолчанию 72 dpi.
Поскольку вы сказали, что хотите иметь 300 точек на дюйм, команда становится следующей:
gs \
-o out300.png \
-sDEVICE=pngalpha \
-r300 \
L_2lambda_max_1wl_E0_1_zg.pdf
Размер файла теперь 750 кбайт, размеры изображения 1080x889
Пиксели.
Обновление 2
Так как Curiosity в моде в эти дни...:-)... Я попытался сбить размер файла с помощью Adobe Acrobat X Pro на Mac.
Вы хотите знать результаты?
Выполнение "Сохранить как... (PDF с уменьшенным размером файла)" - что для меня в прошлом всегда давало очень хорошие результаты! - создал файл 1,8 ++ MByte (+ 29%). Я предполагаю, что это определенно повышает производительность Ghostscript (размер файла + 3%) в реалистичной перспективе!