2009-07-09 2 views
2

У нас есть много готовых к печати PDF-файлов, которые мы хотим уменьшить до меньшего размера, которые подходят для онлайн-загрузки. Я использую Ghostscript так:GhostScript удаляет изображение, когда для ColorConversionStrategy установлено значение sRGB

"C:\Program Files\gs\gs8.64\bin\gswin32c.exe"^
-q^
-dNOPAUSE^
-dBATCH^
-dSAFER^
-dPDFSETTINGS=/screen^
-sDEVICE=pdfwrite^
-sOutputFile="c:\gs_out.pdf" 
-f "c:\6916_DE.pdf" 

Проблема заключается в том, что Ghostscript не удается преобразовать один образ так, когда я открываю в результате PDF Adobe Reader предупреждает меня о возможной ошибке в файле. Если я изменяю параметр PDFSETTINGS на /print, выход работает, но размер файла не уменьшается.

Я прочитал файл справки для ps2pdf, и я нашел один критический параметр, ColorConversionStrategy. Когда ColorConversionStrategy установлено на sRGB, изображение будет удалено, если установлено значение UseDeviceIndependentColor, которое по умолчанию используется для настройки /print, изображение все еще присутствует, но размер файла не уменьшается.

Изображение прозрачное, что может быть одним из факторов.

У кого-нибудь есть идеи?

ответ

2

Первый, я предлагаю вам обновить свой Ghostscript до последней версии, которая является v8.71. Многие проблемы, связанные с обработкой PDF, были исправлены с 8.64 (которые, как вам кажется, используются).

Второй, если вы используете -dPDFSETTINGS=/screen на вашей командной строке, это будет неявно также установить:
-dColorConversionStrategy=/sRGB и
-dColorImageResolution=72.
Но -dPDFSETTINGS=/printer неявным использует:
-dColorConversionStrategy=/UseDeviceIndependentColor, а также
-dColorImageResolution=300.

Если ваша главная цель состоит в том, чтобы уменьшить размер изображения, попробуйте следующее:

gswin32c.exe^
    -o c:\gs_out.pdf^
    -sDEVICE=pdfwrite^
    -dPDFSETTINGS=/screen^
    -c ".setpdfwrite"^
    -c "<</ColorConversionStrategy /LeaveColorUnchanged>> setdistillerparams"^
    -c "<</ColorImageDownsampleType /Bicubic>> setdistillerparams"^
    -f "c:\6916_DE.pdf" 

Вы продолжаете использовать /screen (и для этого вы подразумеваете -dColorImageResolution=72).

Однако два параметра -c переопределяют две другие подразумеваемые настройки /screen. Это может решить вашу проблему.

Смежные вопросы