De hecho, la última sugerencia solo se convierte a escala de grises y luego solo funciona si el documento subyacente usa setrgbcolor . Esto no funcionó para mí, ya que tenía un documento que usaba setcolor .
Tuve éxito al redefinir setcolor para establecer siempre el color en 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>
Han pasado más de 15 años desde que pirateé PostScript, por lo que lo anterior puede ser poco convincente, incorrecto o incluso accidental. Si sabe cómo hacerlo mejor, sugiéralo.
No estoy seguro si la siguiente sugerencia funcionará... pero puede valer la pena intentarlo:
- convierta el PDF a PostScript utilizando el sencillo
pdf2ps
utilidad - convierta ese PostScript a PDF mientras usa un
/setrgbcolor
redefinido Operador PostScript
Estos son los comandos:
Primero
pdf2ps color.pdf color.ps
Esto te da color.ps
como salida.
Segundo
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
No es ghostscript, pero con imagemagick esto es bastante simple:
convert -monochrome input.pdf output.pdf