Ponowne kodowanie tylko obrazów PDF? (lub ghostscript nie działa na 8-bitowym RGB podczas optymalizacji)

Muszę zoptymalizować wiele dużych dokumentów PDF dla rozmiaru pliku, więc spróbowałem użyćghostscript, wywołany w ten sposób:

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

Widzę to na niektórych stronach, ale na niektórych stronach ulega awarii.

Zaktualizowałem dogs wersja 9.02, a ja doświadczam tego samego. Po rozerwaniu dokumentu na osobne strony i uruchomieniu powyższego polecenia na każdej stronie, mogę potwierdzić, które strony są problematyczne; w rzeczywistości błąd występuje nawet wtedy, gdy zadzwonię po prostugs input-my-doc-pageX.pdf - to uruchamia przeglądarkę i mogłem zobaczyć tekst złożony, dopóki nie pojawił się obraz, gdy się zawiesił.

Mogę więc potwierdzić, że w moim przypadkugs zawiesza się na konkretnych obrazach - i wreszcie mogę również podać minimalny działający (lub raczej nie działający) przykład, który demonstruje problem (poniżej). W szczególności problemem wydają się być 8-bitowe obrazy RGB, określone w określony sposób.

 

Teraz nie mogę powiedzieć, czy to jest błąd, ale ponieważ muszę to zrobić - myślałem, że może mógłbym „oszukać”ghostscript, uruchamiając pliki PDF za pomocą aplikacji, która prawie nie pozostawia plików PDF - z wyjątkiem tego, że koduje obrazy ponownie w jednym formacie (powiedzmy PNG); tak, żegs Optymalizator może również uruchomić te pliki bez awarii.

Jakie opcje muszę ponownie kodować tylko obrazy danego pliku PDF przy użyciu wiersza poleceń w systemie Linux?

Z góry dziękuję za wszelkie odpowiedzi,
Twoje zdrowie!

 

PS: Sprawa testowa jest w zasadzieprzykładowy kod źródłowy w formacie PDF w poście:Imagemagick: generowanie surowych danych obrazu do osadzania flot PDF?.

Ten plik PDF (hello2.pdf) otwiera się dobrze, powiedzmy,evince:

... ale ponieważ jego tabela Xref jest uszkodzona, naprawiam ją:

$ pdftk hello2.pdf output hello2O.pdf
$ qpdf --check hello2O.pdf 
checking hello2O.pdf
PDF Version: 1.4
File is not encrypted
File is not linearized
No errors found

Naprawiony plikhello2O.pdf również otwiera się dobrzeevince - jednak kiedy próbuję uruchomić powyższegs polecenie optymalizacji na nim się nie powiedzie:

$ gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dBATCH -sOutputFile=optihello2O.pdf hello2O.pdf
GPL Ghostscript 9.02 (2011-03-30)
Copyright (C) 2010 Artifex Software, Inc.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Processing pages 1 through 1.
Page 1
Loading NimbusSanL-Regu font from /usr/share/ghostscript/9.02/Resource/Font/NimbusSanL-Regu... 2756020 1410650 1869284 568021 3 done.
Error: /undefined in --run--
Operand stack:
   --dict:6/15(L)--   false   --dict:11/19(L)--   --dict:4/4(L)--   --nostringval--   FlateDecode   --dict:4/4(L)--   0
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1910   1   3   %oparray_pop   1909   1   3   %oparray_pop   1893   1   3   %oparray_pop   --nostringval--   --nostringval--   2   1   1   --nostringval--   %for_pos_int_continue   --nostringval--   --nostringval--   --nostringval--   --nostringval--   %array_continue   --nostringval--   false   1   %stopped_push   --nostringval--   %loop_continue   --nostringval--   576   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   %array_continue   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1160/1684(ro)(G)--   --dict:1/20(G)--   --dict:82/200(L)--   --dict:82/200(L)--   --dict:108/127(ro)(G)--   --dict:295/300(ro)(G)--   --dict:23/30(L)--   --dict:6/8(L)--   --dict:25/40(L)--   --dict:7/17(L)--
Current allocation mode is local
GPL Ghostscript 9.02: Unrecoverable error, exit code 1

questionAnswers(1)

yourAnswerToTheQuestion