Stara drukarka postscriptowa, dokument z dużymi obrazami tworzy puste strony

2

Mam dokument PDF z bardzo dużymi zdjęciami (wysoka jakość, wysokie DPI, wypełnianie całych stron). Chciałem wydrukować go na moim HP LaserJet 2200dn, ale zamiast zdjęć dostaję puste strony. Zakładam, że dzieje się tak, ponieważ moja drukarka nie ma wystarczającej ilości pamięci RAM.

Co mogę zrobić, aby wydrukować ten plik PDF?

Używam niestabilnej wersji Debiana z domyślnymi sterownikami dla tej drukarki. Korzystam z sieciowego serwera wydruku (HP Jetdirect, podłączonego do drukarki).

Aktualizacja: ten sam problem występuje na nieco lepszym HP Laserjet 4100dtn.

liori
źródło

Odpowiedzi:

1

HP Laserjet 2200dn powinien również obsługiwać sterowniki PCL 5, przetwarzanie PS-> PCL5 zostanie wykonane na komputerze stacjonarnym / serwerze, a wynikowy plik PCL5 będzie mniejszy do przetworzenia przez drukarkę.

Inną opcją może być konwersja z pdf2ps i ponowne przetwarzanie ps na serwerze, aby zmniejszyć rozdzielczość obrazu przed wysłaniem do drukarki.

Właśnie znalazłem przykład zmniejszenia rozdzielczości pdf:

gs -sDEVICE = pdfwrite -dCompatibilityLevel = 1.4 -dPDFSETTINGS = / screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile = output.pdf input.pdf

http://www.ubuntugeek.com/ubuntu-tiphowto-reduce-adobe-acrobat-file-size-from-command-line.html

jhcaiced
źródło
gsLinia zajęło godzinę, z pliku 77MB produkowanego pliku 1,1MB który miał taką samą liczbę stron, ale każdy z nich jest „pusta” ... pusty w pewnym sensie, że strony nadal zawierać obraz, ale ten obraz jest niemal całkowicie biały, z wyjątkiem niektórych kolorowych pikseli (na wejściu były tylko obrazy w skali szarości). Coś musiało
pójść
0

Oto jak to rozwiązałem. Nie rozumiem jednak, dlaczego to zadziałało.

Najpierw zrzuciłem wszystkie strony do plików png 600DPI przy użyciu ghostscript. Zauważ, że w moim przypadku dokument był czarno-biały, więc urządzenie wybrane w tym wywołaniu odzwierciedla to:

gs -sDEVICE=pnggray -r600 -o pages-%d.png input.pdf

Następnie przekonwertować każdy pojedynczy obraz na pojedynczy plik PDF za pomocą imagemagick. To była naprawdę szybka operacja, więc nie warto próbować zrównoważyć go (za pomocą GNU Parallellub podobnego oprogramowania).

for file in *.png; do convert "$file" "${file/png/pdf}"; done

Następnie połączyłem pliki PDF w jeden plik za pomocą pdftk(inne narzędzia prawdopodobnie również by działały, ale to już zainstalowałem):

pdftk pages*.pdf cat output output.pdf

Wytworzony output.pdfplik ma mniej więcej taki sam rozmiar jak plik wejściowy, wygląda wystarczająco dobrze i (co najważniejsze) może być wydrukowany przez moją drukarkę ... z tą wadą, że z jakiegokolwiek powodu moja drukarka przetwarza każdą stronę przez ~ 5 minut przed drukowaniem. Zresztą zrezygnowałem z drukowania na jedną noc, więc nie przejmowałem się szukaniem lepszej opcji.

Więc to, co zrobiłem, to mniej więcej kompresowanie wszystkich stron.

liori
źródło
Równoległość za pomocą GNU Parallel jest łatwiejsza niż pętla for: konwersja równoległa {} {.}. Pdf ::: * .png
Ole Tange
@Ole Tange: Nie zainstalowałem go, a AFAIK nie ma pakietu dla Debiana. W moim przypadku zajęłoby to więcej czasu :-)
liori