Converting a PDF to black & white with ghostscript
The last suggestion indeed only converts to grayscale and then only works if the underlying doc uses setrgbcolor. This did not work for me, since I had a doc, that used setcolor.
I had success with redefining setcolor to always set the color to 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>
It has been 15+ years since I did any PostScript hacking, so the above may be lame, incorrect or even accidental - if you know how to do better, please suggest.
I am not sure if the following suggestion will work... but it may be worth to try out:
- convert the PDF to PostScript using the simple
pdf2ps
utility - convert that PostScript back to PDF while using a re-defined
/setrgbcolor
PostScript operator
These are the commands:
First
pdf2ps color.pdf color.ps
This gives you color.ps
as output.
Second
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
It's not ghostscript, but with imagemagick this is quite simple:
convert -monochrome input.pdf output.pdf