Conversione di un PDF in bianco e nero con ghostscript


21

Analogamente a questa domanda:

Convertire un PDF in scala di grigi nella riga di comando in FLOSS?

Ho un documento PDF e voglio convertirlo in puro bianco e nero. Quindi voglio scartare i mezzitoni. Per convertire in scala di grigi con ghostscript posso usare questo comando:

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

Cosa devo modificare per ottenere monocromatico, ad esempio solo i colori bianco e nero e senza mezzetinte?

Risposte:


6

L'ultimo suggerimento infatti si converte solo in scala di grigi e quindi funziona solo se il documento sottostante usa setrgbcolor . Questo non ha funzionato per me, dato che avevo un documento, che utilizzava setcolor .

Ho avuto successo con la ridefinizione di setcolor per impostare sempre il colore su 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>

Sono passati più di 15 anni da quando ho fatto qualsiasi hacking PostScript, quindi quanto sopra può essere zoppo, errato o addirittura accidentale - se sai come fare meglio, ti preghiamo di suggerire.


3

Non sono sicuro che il seguente suggerimento funzionerà ... ma potrebbe valere la pena provarlo:

  1. converti il ​​PDF in PostScript usando la semplice pdf2psutility
  2. convertire quel PostScript in PDF mentre si utilizza un /setrgbcoloroperatore PostScript ridefinito

Questi sono i comandi:

Primo

  pdf2ps color.pdf color.ps

Questo ti dà color.pscome output.

Secondo

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

Ho provato questo ed era ancora lasciato con sfumature di grigio. niklasfi vuole monocromatico.
frabjous,

3

Non è ghostscript, ma con imagemagick questo è abbastanza semplice:

 convert -monochrome input.pdf output.pdf

10
La qualità pdf risultante è molto peggio dell'originale.
Hindol,

convert -monochrome -denisty 600?
Ilia w495 Nikitin,

Questo sembra fare mezzitoni; Voglio che tutti i colori (tranne il bianco) vengano convertiti in nero, indipendentemente dall'oscurità.
g.rocket,



0

Per PDF in bianco e nero puro, è necessario convertirlo in formato ps quindi in PDF per PostScript:

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

PostScript in PDF -> bianco e nero

exec(" gs -sDEVICE=pdfwrite   -dNOPAUSE -dBATCH -dSAFER  -sOutputFile=file_pdf.pdf  filename.ps");
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.