Convertir un PDF a blanco y negro con ghostscript

21

De manera similar a esta pregunta:

¿Convertir un PDF a escala de grises en la línea de comando en FLOSS?

Tengo un documento PDF y quiero convertirlo a blanco y negro puro. Por eso quiero descartar los medios tonos. Para convertir a escala de grises con ghostscript, puedo usar este comando:

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

¿Qué debo cambiar para obtener monocromo, por ejemplo, solo los colores blanco y negro y sin medios tonos?

niklasfi
fuente

Respuestas:

6

La última sugerencia de hecho 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 redefiniendo 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 realicé cualquier pirateo de PostScript, por lo que lo anterior puede ser lamentable, incorrecto o incluso accidental; si sabe cómo hacerlo mejor, sugiéralo.

Oleada
fuente
3

No estoy seguro de si la siguiente sugerencia funcionará ... pero puede valer la pena probarla:

  1. convierte el PDF a PostScript usando la sencilla pdf2psutilidad
  2. convertir ese PostScript a PDF mientras usa un /setrgbcoloroperador PostScript redefinido

Estos son los comandos:

primero

  pdf2ps color.pdf color.ps

Esto te da color.pscomo 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
Kurt Pfeifle
fuente
Intenté esto y todavía me quedaba con tonos de gris. Niklasfi quiere monocromo.
frabjous
3

No es ghostscript, pero con imagemagick esto es bastante simple:

 convert -monochrome input.pdf output.pdf
o-town
fuente
10
La calidad del pdf resultante es mucho peor que la original.
Hindol 01 de
convert -monochrome -denisty 600?
Ilia w495 Nikitin
Esto parece hacer medio tono; Quiero que todos los colores (excepto el blanco) se conviertan en negro, independientemente de la oscuridad.
g.rocket
0

Para PDF en blanco y negro puro, debe convertirlo a formato ps y luego a PDF para postscript:

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

Postdata a PDF -> blanco y negro

exec(" gs -sDEVICE=pdfwrite   -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=file_pdf.pdf  filename.ps");
Tarun Kumar
fuente