Перетворити PDF в сірий масштаб командного рядка в FLOSS?


81

У мене кольоровий PDF-файл, і я збираюся роздрукувати його, а потім скопіювати його чорно-білим кольором. Я хотів би дізнатися, що це таке в B&W, перш ніж скопіювати його. Чи можливо «відтінити сірий» PDF у командному рядку за допомогою вільного програмного забезпечення? Я використовую Ubuntu 9.10.

Відповіді:


36

ImageMagick може це зробити.

convert -colorspace GRAY color.pdf gray.pdf

через цей електронний лист


27
Це значно знижує якість. Рішення @goyinux краще.
Йоханнес Вайс

7
Конвертувати фактично розширить вміст PDF-файлу. Отже, якщо файл PDF вже інкапсулює лише растрові зображення (наприклад, відсканований документ), такий підхід є великим "ні-ні".
m000

2
Якщо ви не використовуєте -density 400 -quality 100параметри - це добре працює
burtek

2
Дійсно, чи щось ImageMagick не може зробити? :)
BalinKingOfMoria

-density 400 -quality 100створює ВЕЛИЧЕЗНІ файли. +1 для рішення @ goyinux.
Станімір Стоянов

155

Краще:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf

1
Погоджено, це дає набагато кращі результати, ніж конвертувати, але іноді він обертає pdf, що трохи дратує!
tdc

9
Щойно зрозумів, що ви можете відключити це-dAutoRotatePages=/None
tdc

1
Я просто запустив цю команду в PDF-файлі розміром 58 Мб, який вже був відтінків сірого (прийшов зі сканера), і отриманий результат був 10 Мб і виглядав точно так само. Приємно!
Арчі

1
Також добре працює і в Windows! Просто видаліть `\` і поставте все в один рядок.
ixe013

1
Насправді це не вдається з цією помилкоюGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo

13

Ось невеликий сценарій, який на додаток до конверсії сірого може об'єднувати кілька вхідних файлів. Щоб використовувати скрипт, введіть у файл такі рядки, наприклад, "convert2gray.sh"

#!/bin/bash
gs -sOutputFile=converted.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@

і зробити його виконуваним

chmod +x convert2gray.sh

Тоді

./convert2gray.sh input1.pdf input2.pdf … lastinput.pdf

створить єдиний PDF "convert.pdf", який містить усі сторінки з вхідних файлів, перетворених у відтінки сірого.

Мені довелося роздрукувати файли муліпле в усіх градаціях сірого, і це було найпростішим способом, оскільки ви можете роздрукувати все після введення одним командою.


FWIW, pdftk також може об'єднати PDF-файли.
user1338062
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.