Czy przekonwertować plik PDF na skalę szarości w wierszu poleceń w programie FLOSS?

81

Mam kolorowy plik PDF i zamierzam go wydrukować, a następnie skopiować go w czerni i bieli. Chciałbym wiedzieć, jak to jest w czarno-białym przed skopiowaniem. Czy możliwe jest „skalowanie w skali szarości” pliku PDF w wierszu poleceń za pomocą bezpłatnego oprogramowania? Używam Ubuntu 9.10.

Rory
źródło

Odpowiedzi:

36

ImageMagick może to zrobić.

convert -colorspace GRAY color.pdf gray.pdf

za pośrednictwem tego e-maila

Iain
źródło
27
To znacznie obniża jakość. Rozwiązanie @goyinux jest lepsze.
Johannes Weiss,
7
Konwertuj faktycznie zrasteryzuje zawartość pliku pdf. Tak więc, chyba że pdf zawiera już tylko obrazy rastrowe (np. Zeskanowany dokument), to podejście jest dużym nie-nie.
m000
2
Chyba że użyjesz -density 400 -quality 100parametrów - które działają dobrze
burtek
2
Naprawdę, czy jest coś, czego ImageMagick nie może zrobić? :)
BalinKingOfMoria
-density 400 -quality 100tworzy OGROMNE pliki. +1 za rozwiązanie @ goyinux.
Stanimir Stoyanov
155

Lepszy:

gs \
 -sOutputFile=output.pdf \
 -sDEVICE=pdfwrite \
 -sColorConversionStrategy=Gray \
 -dProcessColorModel=/DeviceGray \
 -dCompatibilityLevel=1.4 \
 -dNOPAUSE \
 -dBATCH \
 input.pdf
Eroen
źródło
1
Zgadzam się, daje to znacznie lepsze wyniki niż konwersja, ale czasami obraca pdf, co jest nieco denerwujące!
tdc,
9
Właśnie zdałem sobie sprawę, że możesz to wyłączyć za pomocą-dAutoRotatePages=/None
tdc
1
Właśnie uruchomiłem to polecenie na pliku PDF o wielkości 58 MB, który był już w skali szarości (pochodzi ze skanera), a wynikowy wynik wynosił 10 MB i wyglądał dokładnie tak samo. Miły!
Archie,
1
Działa również w systemie Windows! Po prostu usuń `\` i umieść wszystko w tej samej linii.
ixe013,
1
W rzeczywistości nie udaje się to z tym błędemGPL Ghostscript 9.10: Unable to convert color space to Gray, reverting strategy to LeaveColorUnchanged.
jjmerelo,
13

Oto mały skrypt, który oprócz konwersji w skali szarości może łączyć wiele plików wejściowych. Aby użyć skryptu, wstaw następujące wiersze do pliku, np. „Convert2gray.sh”

#!/bin/bash
gs -sOutputFile=converted.pdf -sDEVICE=pdfwrite -sColorConversionStrategy=Gray -dProcessColorModel=/DeviceGray -dCompatibiltyLevel=1.4 -dNOPAUSE -dBATCH $@

i uczynić go wykonywalnym

chmod +x convert2gray.sh

Następnie

./convert2gray.sh input1.pdf input2.pdf … lastinput.pdf

utworzy pojedynczy plik PDF „przekonwertowany.pdf”, który zawiera wszystkie strony z plików wejściowych przekonwertowanych na skalę szarości.

Musiałem wydrukować wiele plików w skali szarości i znalazłem to najłatwiejszy sposób, ponieważ wszystko można wydrukować po sprawdzeniu za pomocą jednego polecenia.

Ysis
źródło
FWIW, pdftk może także łączyć pliki PDF.
user1338062,