Czy podczas drukowania można odwrócić kolory tekstu i tła w pliku PDF?

18

Mam istniejący plik PDF z całkowicie czarnym tłem, a cały tekst jest biały.

Czy istnieje sposób, aby tekst był drukowany na czarno, a czarne tło w ogóle nie było drukowane?

Mam Bluebeam i Adobe PDF.

Ron
źródło

Odpowiedzi:

12

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.

AlwaysLearning
źródło
1
Zrobiłem coś takiego (w systemie Windows), instalując sterownik drukarki PostScript, a następnie każąc drukować do pliku w celu przechwycenia wyniku. Ta sama koncepcja powinna działać na innych systemach operacyjnych. Należy zauważyć, że pliki PostScript to tylko pliki tekstowe, które można edytować w większości edytorów tekstu.
martineau
Korzystając z kombinacji pdf2psi ps2pdfmogę wyeksportować oryginalny plik pdf do odwróconego pliku pdf. Jestem tylko ciekawy, co robi proponowana linia i czy można „przywrócić” oryginalne kolory.
tigerjack89
3

Istnieje prosty i techniczny sposób .

Technicznym sposobem jest to, że jeśli masz zainstalowany Ghostscript i jego .../binfolder 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 .../binfolderze) 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.pdfi C:/inputfile.pdfz 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} setcolortransferwiersz w osobnym .pspliku i po prostu dodasz ten .psplik do swojego polecenia.

(To jest tak naprawdę bardziej rozbudowana wersja Mateen Ulhaqpowyż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.

Jack Crawford
źródło
2

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ń 300na 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.

Starsze narzędzia

bdr9
źródło
@ fixer1234 Dziękujemy za zwrócenie mojej uwagi na to. Dodałem link do tej strony w Archiwum internetowym.
bdr9,
1

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.

Bas
źródło
Nie drukuje inaczej niż oryginalny AFAICT
mike65535,
1

Ż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 pdftki 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.000zamiast 1 1 1. Skrypt można łatwo modyfikować w razie potrzeby. W razie potrzeby można również dodać dodatkowe konwersje kolorów.

John Cole
źródło
0

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.

Mateen Ulhaq
źródło
0

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!

  • Idź do wydruku (Ctrl + P)
  • Kliknij Ustawienia zaawansowane
  • Sprawdź ustawienia: niestandardowe
  • Kliknij Wyjście z lewego panelu
  • W obszarze Kolor: wybierz Szary kompozytowy
  • Zaznacz pole Neguj
  • Kliknij OK

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!

Xin Yi
źródło
Jest to specyficzne dla sterownika drukarki
Mark Jeronimus
-1

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
Catchaca
źródło
Wiersz poleceń (w luinux) brzmiał: konwersja-gęstość 300 -negate plik_wejściowy.pdf
plik_wyjściowy.pdf