Перетворити 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.