Antworten:
Witzigerweise gibt es dafür "legitime" Anwendungsfälle, insbesondere für Menschen mit Sehbehinderung. Acrobat und andere Reader können Farben für die Anzeige überschreiben (z. B. Strg-I in Evince und über das Menü Eingabehilfen in Acrobat Reader X), aber seltsamerweise nicht zum Drucken. Sie können jedoch den pdf2ps-Konverter von GhostScript (oder einen gefälschten PS-Druckertreiber, der nur die Datei schreibt) verwenden, um eine Postscript-Datei zu erhalten, und dann die Datei durch Ablegen bearbeiten
{1 exch sub} settransfer
als erste Zeile in der Datei und dann das Drucken der PostScript-Datei. Auf diese Weise erhalten Sie ein originalgetreueres Rendering des Dokuments als wenn Sie das PDF in ein Bild konvertieren und dieses invertieren würden.
pdf2ps
und ps2pdf
kann ich das Original-PDF in eine invertierte PDF-Datei exportieren. Ich bin nur gespannt, was die vorgeschlagene Linie macht und ob es möglich ist, zu den ursprünglichen Farben zurückzukehren.
Es gibt einen einfachen und einen technischen Weg .
Die technische Möglichkeit besteht darin, dass Sie, wenn Sie Ghostscript installiert haben und den .../bin
Ordner zu Ihrem PFAD hinzugefügt haben, die Farben Ihrer PDF-Datei nur umkehren können, indem Sie über die Befehlszeile etwas aufrufen, das der folgenden ähnelt:
gswin64 -o C:/outputfile.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f C:/inputfile.pdf
Beachten Sie, dass gswin64
(in der sich .../bin
Ordner) aufgerufen werden kann , gswin32
wenn Sie die 32-Bit - Version heruntergeladen haben , oder etwas ganz anderes , wenn Sie auf einem * nix - System sind anstelle von Windows, und dass Sie sollten offensichtlich ersetzen C:/outputfile.pdf
und C:/inputfile.pdf
den tatsächlichen Pfaden Ihrer Eingabedatei und vorgesehener Speicherort der Ausgabedatei. Achten Sie auch darauf, dass es meiner Erfahrung nach manchmal Probleme geben kann, wenn Ihre Pfadverzeichnisse Leerzeichen enthalten, selbst wenn Sie sie in Anführungszeichen setzen.
Beachten Sie auch, dass einige Versionen von Ghostscript möglicherweise fehlschlagen, es sei denn, Sie fügen die {1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer
Zeile in eine separate .ps
Datei ein und fügen die .ps
Datei Ihrem Befehl hinzu.
(Dies ist wirklich nur eine ausführlichere Version der Mateen Ulhaq
obigen Antwort.)
Der einfache Weg ist, dass Sie die Website InvertPDF.com nutzen können, wenn Sie sich nicht die Mühe machen, eines der oben genannten Dinge zu tun (plus ein bisschen mehr). Dies ist meine eigene Website, und ich bin auf diesen Thread gestoßen, als ich versuchte, ihn zu erstellen. Ich hoffe sehr, dass diese Antwort es der nächsten Person erleichtert, etwas Ähnliches zu erreichen oder ein eigenes Offline-Skript zu erstellen.
Laut dieser Seite können Sie dies möglicherweise mit ImageMagick erreichen. Die PDF-Datei wird jedoch vor dem Invertieren in Bilder konvertiert . Wenn die Qualität aus diesem Grund nicht ausreicht, sollten Sie in der Lage sein, die DPI-Zahl anzupassen.
convert -density 300 -negate "input.pdf[1-999]" output.pdf
Ersetzen Sie 300
mit Ihrem gewünschten DPI und 1-999
mit Ihrem gewünschten Seitenbereich.
HINWEIS : Dieser Befehl gilt für eine ältere Version von ImageMagick. Sie müssen sicherstellen, dass ältere Dienstprogramme installiert sind.
In Acrobat Reader X
Bearbeiten-> Einstellungen-> Eingabehilfen Auswählen: Dokumentfarben ersetzen Auswählen: Benutzerdefinierte Farbe
Stellen Sie die verbleibenden Optionen nach persönlichen Vorlieben ein.
Hinweis: Das Dokument wird dadurch nicht geändert, sondern nur Ihre Ansicht und die Art und Weise, wie es gedruckt wird.
Keine der zuvor veröffentlichten Lösungen hat für mich funktioniert, daher habe ich dieses einfache Bash-Skript geschrieben. Es kommt auf pdftk
und an awk
. Kopieren Sie einfach den Code in eine Datei und machen Sie sie ausführbar. Dann starte es wie folgt:
$ /path/to/this_script.sh /path/to/mypdf.pdf
Das Drehbuch:
#!/bin/bash
pdftk "$1" output - uncompress | \
awk '
/^1 1 1 / {
sub(/1 1 1 /,"0 0 0 ",$0);
print;
next;
}
/^0 0 0 / {
sub(/0 0 0 /,"1 1 1 ",$0);
print;
next;
}
{ print }' | \
pdftk - output "${1/%.pdf/_inverted.pdf}" compress
Dieses Skript funktioniert für mich, aber Ihre Laufleistung kann variieren. Insbesondere werden manchmal die Farben in der Form 1.000 1.000 1.000
anstelle von aufgelistet 1 1 1
. Das Skript kann einfach nach Bedarf geändert werden. Falls gewünscht, können auch zusätzliche Farbkonvertierungen hinzugefügt werden.
Wenn Sie ein ansprechenderes Graustufenbild wünschen und Ihr Dokument problemlos in Bilder konvertieren können, werfen Sie es in eine .bat-Datei und ziehen Sie Ihre PDF-Datei einfach auf die .bat-Datei.
"C:\Program Files\gs\gs9.20\bin\gswin64c" -o inverted.pdf -sDEVICE=pdfwrite -c "{1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer" -f %1
convert -brightness-contrast 3,-18 -compress lzw -density 300 -colorspace Gray inverted.pdf output.pdf
Erfordert die Installation von Ghostscript für den ersten Befehl (bitte korrekten Pfad angeben). Erfordert die Installation von ImageMagick mit älteren Dienstprogrammen für den zweiten Befehl.
Viele hatten vorgeschlagen, die Methode Bearbeiten-> Einstellungen-> Eingabehilfen zu verwenden, aber leider hat dies bei mir nicht funktioniert. Nachdem ich die PDF-Einstellungen getestet und durchgespielt hatte, gelang es mir, das zu bekommen, was ich wollte!
Dies sollte den Trick machen!
Wichtige Notiz!
Ich würde vorschlagen, diese Datei als PDF zu drucken, als direkt. Vor allem, wenn Sie mehrere Seiten auf einer Seite drucken möchten, da dadurch auch das Leerzeichen schwarz wird!
Wenn Sie das Dokument als andere PDF-Datei drucken möchten , klicken Sie unter Seitengröße und -handhabung auf Anpassen und aktivieren Sie die beiden Kontrollkästchen " Papiergröße bei Bedarf auswählen " und " Benutzerdefinierte Papiergröße bei Bedarf verwenden" . (Um unerwünschte Leerzeichen zu vermeiden)
Ich hoffe das hilft!
Die Verwendung von ImageMagick hat bei mir funktioniert, obwohl die Ausgabedatei etwa 50-mal größer ist als die Eingabedatei.
convert -density 300 -negate input_file.pdf output_file.pdf