Odpowiedzi:
Zabawne jest, że istnieją do tego „uzasadnione” przypadki użycia, zwłaszcza osoby słabowidzące. Acrobat i inni czytelnicy mogą przesłonić kolory wyświetlacza (np. Ctrl-I w Evince i za pomocą menu Dostępność w Acrobat Reader X), ale dziwnie nie do drukowania. Możesz jednak użyć konwertera pdf2ps GhostScript (lub fałszywego sterownika drukarki PS, który właśnie zapisuje plik), aby uzyskać plik postscriptowy, a następnie edytować plik, umieszczając
{1 exch sub} settransfer
jako pierwszy wiersz w pliku, a następnie wydrukowanie tego pliku PostScript. W ten sposób uzyskasz bardziej wierne renderowanie dokumentu niż w przypadku przekonwertowania pliku PDF na obraz i odwrócenia go.
pdf2ps
i ps2pdf
mogę wyeksportować oryginalny plik pdf do odwróconego pliku pdf. Jestem tylko ciekawy, co robi proponowana linia i czy można „przywrócić” oryginalne kolory.
Istnieje prosty i techniczny sposób .
Technicznym sposobem jest to, że jeśli masz zainstalowany Ghostscript i jego .../bin
folder jest dodany do PATH, powinieneś być w stanie odwrócić kolory swojego pliku PDF, wywołując z linii poleceń coś podobnego do następującego:
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
Zauważ, że gswin64
(znajduje się w .../bin
folderze) można nazwać gswin32
, jeśli pobrałeś wersję 32-bitową lub coś zupełnie innego jeśli jesteś na * nix zamiast systemu Windows, i że należy oczywiście wymienić C:/outputfile.pdf
i C:/inputfile.pdf
z aktualnymi ścieżkami twoich plik wejściowy i planowana lokalizacja pliku wyjściowego. Uważaj też, że z mojego doświadczenia wynika, że czasami możesz mieć problemy, jeśli masz spacje w katalogach ścieżek, nawet jeśli umieszczasz wokół nich cudzysłowy.
Warto również zauważyć, że iirc niektóre wersje Ghostscript mogą zawieść w tym przypadku, chyba że umieścisz {1 exch sub}{1 exch sub}{1 exch sub}{1 exch sub} setcolortransfer
wiersz w osobnym .ps
pliku i po prostu dodasz ten .ps
plik do swojego polecenia.
(To jest tak naprawdę bardziej rozbudowana wersja Mateen Ulhaq
powyższej odpowiedzi)
Prostym sposobem jest to, że jeśli nie przeszkadza ci robienie któregokolwiek z powyższych, możesz skorzystać ze strony InvertPDF.com, która zrobi to wszystko (plus trochę więcej) za Ciebie. To jest moja własna strona internetowa i natknąłem się na ten wątek, gdy próbowałem go zbudować. Mam nadzieję, że ta odpowiedź ułatwi następnej osobie próbę osiągnięcia podobnej rzeczy lub stworzenie własnego skryptu offline.
Według tej strony możesz to zrobić za pomocą ImageMagick. Jednak plik PDF zostanie przekonwertowany na obrazy, zanim zostanie odwrócony. Jeśli z tego powodu jakość nie jest wystarczająca, powinieneś być w stanie dostosować liczbę DPI.
convert -density 300 -negate "input.pdf[1-999]" output.pdf
Zamień 300
na pożądane DPI i 1-999
żądany zakres stron.
UWAGA : To polecenie dotyczy starszej wersji ImageMagick i musisz upewnić się, że zainstalowane są starsze narzędzia.
W programie Acrobat Reader X
Edycja-> Preferencje-> dostępność Wybierz: Zamień kolory dokumentów Wybierz: Kolor niestandardowy
Ustaw pozostałe opcje zgodnie z osobistymi preferencjami.
Uwaga: nie zmienia to dokumentu, tylko widok i sposób, w jaki jest drukowany.
Żadne z wcześniej opublikowanych rozwiązań nie działało dla mnie, więc napisałem ten prosty skrypt bash. To zależy od pdftk
i awk
. Po prostu skopiuj kod do pliku i uczyń go wykonywalnym. Następnie uruchom go w następujący sposób:
$ /path/to/this_script.sh /path/to/mypdf.pdf
Scenariusz:
#!/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
Ten skrypt działa dla mnie, ale twój przebieg może się różnić. W szczególności czasami kolory są wymienione w formularzu 1.000 1.000 1.000
zamiast 1 1 1
. Skrypt można łatwo modyfikować w razie potrzeby. W razie potrzeby można również dodać dodatkowe konwersje kolorów.
Jeśli chcesz uzyskać bardziej przyjemną skalę szarości i nie przeszkadza ci konwertowanie dokumentu na obrazy, wrzuć to do pliku .bat, a następnie po prostu przeciągnij plik PDF do pliku .bat.
"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
Wymaga zainstalowania Ghostscript dla pierwszego polecenia (proszę podać poprawną ścieżkę). Wymaga zainstalowania ImageMagick ze starszymi narzędziami dla drugiego polecenia.
Wielu sugerowało użycie metody Edycja-> Preferencje-> Dostępność , ale niestety nie zadziałało to dla mnie. Po przetestowaniu i obejrzeniu ustawień PDF udało mi się zdobyć to, czego chciałem!
To powinno wystarczyć!
Ważna uwaga!
Sugerowałbym wydrukowanie tego pliku do pliku PDF niż bezpośrednio. Zwłaszcza jeśli zamierzasz wydrukować wiele stron na jednej stronie, ponieważ spowoduje to, że białe spacje również staną się czarne!
Na koniec, jeśli chcesz wydrukować dokument jako inny plik PDF, w obszarze Rozmiar i obsługa strony kliknij Dopasuj i zaznacz oba pola - „ Wybierz rozmiar papieru w razie potrzeby ” i Użyj niestandardowego rozmiaru papieru w razie potrzeby . (Aby uniknąć niechcianych białych znaków)
Mam nadzieję, że to pomoże!
Korzystanie z ImageMagick działało dla mnie, chociaż plik wyjściowy jest około 50 razy większy niż plik wejściowy.
convert -density 300 -negate input_file.pdf output_file.pdf