Nie znam języka postscriptowego.
Mam system emulacji drukowania dwustronnego napisany w bashu. Drukuje najpierw strony nieparzyste, a następnie strony parzyste. Musi wiedzieć, czy istnieje nieparzysta liczba stron, aby mogła wysunąć ostatnią nieparzystą stronę, która nie ma odpowiedniej parzystej strony. Wykorzystuje również liczbę stron do celów raportowania.
Nie wiedziałem, jak to zrobić poprawnie, więc napisałem kod, który wygląda na końcu i, jeśli to konieczne, początek pliku postscriptowego szukającego „%% stron”, po którym następuje liczba stron. Działa to na prawie wszystkich, z wyjątkiem plików drukowanych przez przeglądarkę Opera.
Czy ktoś może zasugerować inny sposób uzyskania tych informacji?
Pliki postscriptowe wydają się być dość duże z dużą ilością treści nieczytelnych dla ludzi, więc nie spędziłam jeszcze wiele czasu na tych, które pochodzą z Opery.
TIA
Aktualny kod jest pod adresem:
http://sourceforge.net/projects/duplexpr/
function ps_page_ct
grep
doHiResBoundingBox
: to nie zadziała. To słowo nie musi być używane w plikach wejściowych - jego wygląd w strumieniu wyjściowym jest spowodowany przez Ghostscript interpretujący wszystkie dane wejściowe i destylujący ten fragment informacji.Niestety, nie ma prostego sposobu na znalezienie stron w surowym pliku Postscript. Dlatego
%%Pages
została utworzona konwencja (konwencje strukturalne Adobe Document).Poleceniem do wydania strony jest
showpage
. W prostych przypadkach wystarczy je policzyć.Ale to polecenie można osadzić w treści funkcji, a następnie potrzebujesz parsera Postscript.
źródło
Znalazłem gdzieś ten mały fragment, przetworzy on dokument bardzo szybko i wydrukuje liczbę stron. Może to pomóc, jeśli exiftool nie wydrukuje informacji o metadanych, ponieważ dokument nie został prawidłowo wygenerowany:
źródło
|grep ....
? Jaki jest wynik? Używam go jako zapasowego, gdy dane exif nie zawierają „Licznika stron”. Czy istnieje link do używanych dokumentów? Jakiej wersji ghostscript używasz? Na jakim systemie operacyjnym?