Преобразование PDF в черно-белый с ghostscript


17

Аналогично этому вопросу:

Преобразовать PDF в оттенки серого в командной строке во FLOSS?

У меня есть PDF-документ, и я хочу преобразовать его в чисто черный и белый. Поэтому я хочу отказаться от полутонов. Для преобразования в оттенки серого с помощью ghostscript я могу использовать эту команду:

gs \
 -sOutputFile=output.PDF \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
  input.PDF < /dev/null

Что я должен изменить, чтобы получить монохромный, например только цвета черный и белый и нет полутонов?

Ответы:


5

Последнее предложение действительно только преобразуется в оттенки серого, а затем работает, только если основной документ использует setrgbcolor , Это не сработало для меня, так как у меня был документ, который использовал SetColor ,

Я имел успех с переопределением SetColor всегда устанавливать цвет на 0,0,0:

gs -o <output-file.pdf> -sDEVICE=pdfwrite \
-c "/osetcolor {/setcolor} bind def /setcolor {pop [0 0 0] osetcolor} def" \
-f <input-file.ps>

Прошло более 15 лет с тех пор, как я выполнял любые взломы PostScript, поэтому вышеприведенное может быть хромым, неправильным или даже случайным - если вы знаете, как сделать лучше, пожалуйста, предложите.


3

Я не уверен, сработает ли следующее предложение ... но, возможно, стоит попробовать:

  1. конвертировать PDF в PostScript с помощью простого pdf2ps полезность
  2. конвертировать этот PostScript обратно в PDF, используя переопределенный /setrgbcolor Оператор PostScript

Это команды:

Первый

  pdf2ps color.pdf color.ps

Это дает вам color.ps в качестве вывода.

второй

gs \
-o bw-from-color.pdf \
-sDEVICE=pdfwrite \
-c "/setrgbcolor{0 mul 3 1 roll 0 mul 3 1 roll 0 mul 3 1 roll 0 mul add add setgray}def" \
-f color.ps

Я попробовал это и остался с оттенками серого. Никласфи хочет монохромный.
frabjous

3

Это не ghostscript, но с imagemagick это довольно просто:

 convert -monochrome input.pdf output.pdf

10
В результате качество PDF гораздо хуже, чем оригинал.
Hindol

convert -monochrome -denisty 600 ?
Ilia w495 Nikitin

Это похоже на полутон; Я хочу, чтобы все цвета (кроме белого) были преобразованы в черный независимо от темноты.
g.rocket



0

Для чистого черно-белого PDF вам необходимо преобразовать его в формат ps, а затем в PDF для postscript:

exec(" gs -sDEVICE=psmono  -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=combined.ps  $pdf");

постскриптум в PDF - & gt; черное и белое

exec(" gs -sDEVICE=pdfwrite   -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=file_pdf.pdf  filename.ps");
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.