Вы можете использовать Ghostscript:
gswin32c ^
-o grayscale.pdf ^
-sDEVICE=pdfwrite ^
-sColorConversionStrategy=Gray ^
-sProcessColorModel=DeviceGray ^
-dCompatibilityLevel=1.4 ^
c:/path/to/input.pdf
(пример для Windows; в Linux используйте gs
вместо gswin32c.exe
и \
в качестве знака продолжения строки вместо ^
).
Обновление
Если преобразование цветов не работает должным образом, и если вы видите сообщение типа "Невозможно преобразовать цветовое пространство в серый, возвращение стратегии в LeaveColorUnchanged" затем ...
- ваш Ghostscript, вероятно, является более новым выпуском из серии 9.x версий и
- ваш исходный PDF, вероятно, использует встроенный ICC цветовой профиль
В этом случае добавьте -dOverrideICC
в командную строку и посмотрите, изменит ли он желаемый результат.
Кроме того, оригинальный ответ содержал опечатку:
- используется
-sProcessColorModel=/DeviceGray
(дополнительный символ косой черты)
- вместо
-sProcessColorModel=DeviceGray
(без косой черты))