La dernière suggestion ne se convertit en effet qu'en niveaux de gris et ne fonctionne ensuite que si le document sous-jacent utilise setrgbcolor . Cela n'a pas fonctionné pour moi, car j'avais un document qui utilisait setcolor .
J'ai réussi à redéfinir setcolor pour toujours définir la couleur sur 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>
Cela fait plus de 15 ans que je n'ai pas piraté PostScript, donc ce qui précède peut être boiteux, incorrect ou même accidentel - si vous savez comment faire mieux, n'hésitez pas à le suggérer.
Je ne sais pas si la suggestion suivante fonctionnera... mais cela vaut peut-être la peine d'essayer :
- convertir le PDF en PostScript en utilisant le simple
pdf2ps
utilitaire - reconvertir ce PostScript en PDF tout en utilisant un
/setrgbcolor
redéfini Opérateur PostScript
Voici les commandes :
Premier
pdf2ps color.pdf color.ps
Cela vous donne color.ps
en sortie.
Deuxième
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
Ce n'est pas du ghostscript, mais avec imagemagick c'est assez simple :
convert -monochrome input.pdf output.pdf