Konvertieren einer PDF-Datei in Schwarzweiß mit Ghostscript

21

Ähnlich zu dieser Frage:

PDF-Dateien in der Befehlszeile von FLOSS in Graustufen konvertieren?

Ich habe ein PDF-Dokument und möchte es in reines Schwarzweiß umwandeln. Ich möchte also Halbtöne verwerfen. Um mit Ghostscript in Graustufen zu konvertieren, kann ich diesen Befehl verwenden:

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

Was muss ich ändern, um einfarbig zu werden, z. B. nur die Farben Schwarz und Weiß und keine Halbtöne?

niklasfi
quelle

Antworten:

6

Der letzte Vorschlag wird in der Tat nur in Graustufen konvertiert und funktioniert dann nur, wenn das zugrunde liegende Dokument setrgbcolor verwendet . Das hat bei mir nicht geklappt , da ich einen Doc hatte, der setcolor verwendete .

Ich hatte Erfolg mit der Neudefinition von setcolor , um die Farbe immer auf 0,0,0 zu setzen:

gs -o <output-file.pdf> -sDEVICE=pdfwrite \
-c "/osetcolor {/setcolor} bind def /setcolor {pop [0 0 0] osetcolor} def" \
-f <input-file.ps>

Es ist mehr als 15 Jahre her, dass ich PostScript-Hacking durchgeführt habe, daher kann das oben Gesagte lahm, falsch oder sogar versehentlich sein - wenn Sie wissen, wie Sie es besser machen können, schlagen Sie es bitte vor.

Surge
quelle
3

Ich bin mir nicht sicher, ob der folgende Vorschlag funktioniert ... aber es kann sich lohnen, ihn auszuprobieren:

  1. Konvertieren Sie das PDF in PostScript mit dem einfachen pdf2psDienstprogramm
  2. Konvertieren Sie dieses PostScript zurück in PDF, während Sie einen neu definierten /setrgbcolorPostScript-Operator verwenden

Dies sind die Befehle:

Zuerst

  pdf2ps color.pdf color.ps

Dies gibt Ihnen color.psals Ausgabe.

Zweite

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
quelle
Ich habe es versucht und hatte immer noch Grautöne. niklasfi will einfarbig.
Frabjous
3

Es ist kein Ghostscript, aber mit imagemagick ist das ganz einfach:

 convert -monochrome input.pdf output.pdf
O-Stadt
quelle
10
Die resultierende PDF-Qualität ist viel schlechter als das Original.
Hindol
convert -monochrome -denisty 600?
Ilia w495 Nikitin
Dies scheint Halbton zu tun; Ich möchte, dass alle Farben (außer Weiß) in Schwarz umgewandelt werden, unabhängig von der Dunkelheit.
G. Rocket
0

Für reines Schwarzweiß-PDF müssen Sie es in das ps-Format und anschließend in das PDF-Format für Postscript konvertieren:

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

Postscript in PDF -> schwarz und weiß

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