2016-12-15 2 views
0

Я использую Ghostscript 8.x для преобразования PDF в grayscale.I я использую следующую команду:Ghostscript, как сохранить размер в формате PDF в процессе преобразования PDF в оттенках серого

gs -dNOPAUSE -dBATCH -q -sOutputFile=- -sDEVICE=psgray 2016-12-15-165043474.pdf | ps2pdf - output.pdf 

Это успешно преобразует мой PDF в оттенки серого, но Я теряю исходный формат pdf. Полученный pdf-файл имеет много пробелов, как размер A4. Мой входной файл pdf имеет фиксированную ширину 3 см (высота может меняться). Я хочу, чтобы выходной pdf был того же размера. Пожалуйста, предложите.

ответ

1

Не используйте устройство psgray! Это серьезно устарело и полностью удалено в последних версиях Ghostscript. Используя это, вы конвертируете PDF в PostScript, а затем конвертируете его в PDF. Больше шагов, чем вам нужно (при каждом преобразовании потенциально возникают проблемы), и именно там вы получаете размер носителя по умолчанию.

Просто используйте устройство pdfwrite для выполнения всей работы, но для этого вам понадобится достаточно новая версия Ghostscript. Возможно, более поздняя, ​​чем прежняя версия, которую вы, очевидно, используете в настоящее время.

gs -sDEVICE=pdfwrite -sColorConversionStrategy=DeviceGray -sOutputFile=out.pdf input.pdf 
+0

Эта команда дает мне ошибку: CRIT: rangecheck in .putdeviceprops. Пожалуйста, предложите. – Jeets

+0

«CRIT:» не является ошибкой Ghostscript. Какую версию Ghostscript вы используете сейчас? Вы обновили до 6 лет? Я сказал, что вам понадобится достаточно последняя версия, текущая версия - 9.20. – KenS

+0

Благодаря KenS обновление помогло с небольшой модификацией в команде: gs -sOutputFile = grayscale.pdf -sDEVICE = pdfwrite -sColorConversionStrategy = Gray -dProcessColorModel =/DeviceGray -dCompatibilityLevel = 1.4 -dNOPAUSE -dBATCH 2016-12-15-164803020.pdf Jeets

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