postscript Samouczek
Pierwsze kroki z PostScriptem
Szukaj…
Uwagi
PostScript to język skryptowy oparty na stosach odwrotnych, dynamicznie typowany, z dynamiczną przestrzenią nazw, z wbudowanymi operacjami podstawowymi do generowania renderowanych obrazów z opisów wektorowych. PostScript wykorzystuje ten sam „Adobe Image Model” co format pliku PDF.
PostScript jest używany jako format wyjściowy przez wiele programów, ponieważ został zaprojektowany z myślą o łatwym generowaniu maszynowym.
Podobnie jak LISP, PostScript jest homoiczny, a kod i dane mają tę samą reprezentację. Procedury mogą przyjmować procedury jako dane, a procedury - jako wyniki, nadając się również do technik programowania konkatenatywnego .
Instalacja lub konfiguracja
Autentyczne interpretery Adobe PostScript są dostępne w wysokiej klasy drukarkach, produkcie Display PostScript (DPS) i programie Acrobat Distiller. Jako autorzy standardu produkty te są uważane za „standardowe wdrożenie” w celu opisania różnic między implementacjami PostScript.
Standardowy interfejs interpretera zdefiniowany w PLRM to strumień programu, który może być tekstowy lub binarny, w zależności od szczegółów kanału bazowego lub systemu operacyjnego / kontrolera. Acrobat Distiller ma interfejs GUI do wybierania wejściowego programu postscriptowego i renderowania jego wyników w formacie pdf. Distiller ma również ograniczoną obsługę używania wyjściowego strumienia tekstowego do zgłaszania błędów i wyników innych programów. GSView zapewnia podobny interfejs GUI dla podobnego przepływu pracy z wykorzystaniem Ghostscript jako interpretera.
Zarówno Ghostscript, jak i Xpost działają w trybie wiersza poleceń. Plik programu postscriptowego do uruchomienia można wspomnieć w wierszu polecenia ( gs program.ps
lub xpost program.ps
), który otworzy okno graficzne do wyświetlenia wyniku graficznego. Opcji można użyć do renderowania grafiki w innym miejscu, np. Pliku dysku, lub całkowitego wyłączenia grafiki i używania PostScript jako języka skryptowego.
Każdy z tłumaczy ustnych ma własne instrukcje instalacji i konfiguracji, a ich odtworzenie tutaj byłoby marnotrawstwem (i skłonnością do przestarzałości).
Bezpłatne tłumacze PostScript
Ghostscript jest dostępny dla wszystkich głównych platform i dystrybucji Linuksa, w formie źródłowej lub binarnej, na licencji GNU lub na podstawie innych umów licencyjnych z autorami, oprogramowaniem Artifex . Ghostscript implementuje pełny standard PostScript 3.
Xpost jest dostępny w formie źródłowej dla wszystkich głównych platform, na podstawie licencji BSD-3-klauzula. Implementuje standard poziomu 1 z niektórymi rozszerzeniami poziomu 2 i niektórymi rozszerzeniami DPS.
Ogólny opis PostScript
PostScript to kompletny ogólny język programowania Turinga, zaprojektowany i opracowany przez Adobe Systems. Wiele pomysłów, które rozkwitły w PostScript, zostało opracowanych w projektach dla Xerox i Evans & Sutherland.
Jego główna rzeczywista aplikacja historycznie jest językiem opisu strony lub w jednostronicowym formacie EPS jest językiem opisu grafiki wektorowej. Jest dynamicznie typowany, dynamicznie skalowany i oparty na stosie, co prowadzi do składni głównie w języku polskim.
Istnieją trzy główne wersje PostScript.
- PostScript Level 1 - został wydany na rynek w 1984 roku jako rezydentny system operacyjny drukarki laserowej Apple LaserWriter, inaugurujący erę Desktop Publishing.
- PostScript Level 2 - wydany w 1991 roku, zawierał kilka ważnych ulepszeń do poziomu 1, w tym obsługę dekompresji obrazu, separacji w RIP, automatycznie rozwijających się słowników, wyrzucania elementów bezużytecznych, nazwanych zasobów, kodowania binarnego samego strumienia programu PostScript.
- PostScript 3 - najnowsza i być może najszerzej przyjęta wersja została wydana w 1997 roku. Zawiera także kilka ulepszeń importu w stosunku do poziomu 2, takich jak Smooth Shading. Termin „poziom” został usunięty.
Chociaż PostScript jest zwykle używany jako język opisu strony - i dlatego jest implementowany w wielu drukarkach do generowania obrazów rastrowych - może być również wykorzystywany do innych celów. Jako szybki kalkulator z odwrotnym polerowaniem z bardziej pamiętnymi nazwami operatorów niż bc
. Jako format wyjściowy generowany przez inny program (zwykle w innym języku).
Mimo że plik PostScript ma zwykle 7-bitowy czysty ASCII, istnieje kilka rodzajów kodowania binarnego opisanych w standardzie poziomu 2. Programując się, program może sam wdrożyć swój własny, skomplikowany schemat kodowania. Odbywają się międzynarodowe zawody zaciemniające Postscript, nieco mniej aktywne niż konkurs C.
Referencje online
Strony indeksu dokumentacji Adobe:
https://www.adobe.com/products/postscript/resources.html
http://www.adobe.com/devnet/postscript.html
http://www.adobe.com/devnet/font.htmlPodręcznik języka PostScript, 3ed - standard PostScript 3. (7,41 MB pdf)
( Suplement , Errata )Podręcznik języka PostScript, 2ed - standard PostScript Level 2. (obejmuje dokumentację Display PostScript.) (3,29 MB pdf)
Tutorial Postscript and Cookbook - Niebieska książka. (847 KB pdf)
Projekt programu Postscript Language - zielona książka. (911 KB pdf)
Thinking in Postscript - autor zielonej księgi i samouczka niebieskiej księgi. (826 KB pdf)
Specyfikacja konwencji strukturyzacji dokumentów w języku PostScript 3.0 (521 KB pdf)
Format czcionki Adobe Type 1 (444 KB pdf)
Specyfikacja enkapsulowanego formatu pliku PostScript 3.0 (185 KB pdf)
Opis drukarki PostScript Specyfikacja formatu pliku 4.3 (186KB pdf) ( Aktualizacja )
Rozwiązywanie problemów z błędami PostScript - Wskazówki dotyczące debugowania. (158 KB HTML)
Acumen Journal - Archiwum artykułów programistycznych Postscript i PDF. (katalog html spakowanych plików pdf)
Ilustracje matematyczne: Podręcznik geometrii i postscriptum - autor: Bill Casselman. (katalog html rozdziałów pdf i pobierania kodu)
Wątek z wieloma implementacjami algorytmu sortowania (archiwum usenet)
Strony Guru Don Lancaster
Bezpośrednie użycie języka Postscript przez Anastigmatix
Step-mądry debugger dla kodu Postscript
FAQ
Książki
Postscript Language Reference Manual, 1ed, 1985. Zalecany ze względu na mały rozmiar i łatwy indeks operatora ze stron podsumowania (brak w późniejszych wydaniach).
PostScript w świecie rzeczywistym. Rozdziały różnych autorów na różne tematy, w tym doskonałe omówienie półtonów.
Lokalne przestrzenie nazw dla funkcji
Postscript to dynamiczna przestrzeń nazw lub język LISP 1 . Ale zapewnia narzędzia do implementacji zmiennych lokalnych w procedurach i innych efektów potrzebnych do implementacji algorytmów.
W przypadku lokalnych nazw w procedurze utwórz nowy słownik na początku i wstaw go na końcu.
/myproc {
10 dict begin
%... useful code ...
end
} def
Można również ładnie to połączyć ze skrótem, aby zdefiniować argumenty funkcji jako zmienne.
% a b c myproc result
/myproc {
10 dict begin
{/c /b /a} {exch def} forall
%... useful code yielding result ...
end
} def
Jeśli musisz zaktualizować zmienną * „global” *, gdy słownik lokalny jest na wierzchu, użyj store
zamiast def
.
Przykład Hello World
Wybierz czcionkę i rozmiar czcionki, wybierz lokalizację, show
ciąg.
%!PS
/Palatino-Roman 20 selectfont
300 400 moveto
(Hello, World!) show
showpage
Uwagi i typowe pułapki:
Nie ustawiono czcionki (powodując brak tekstu lub domyślną (brzydką) czcionkę)
Używanie
findfont
isetfont
ale zapominanie oscalefont
między nimi. Korzystanie zselectfont
poziomu 2 pozwala uniknąć tego problemu i jest bardziej zwięzłe.Nie można ustawić punktu za pomocą
moveto
lub ustawić punkt poza stroną. Dla papieru listowego w USA 8,5 x 11 to 792 x 612 punktów ps. Łatwo więc zapamiętać około 800 x 600 (ale krótszy i szerszy smidge). Tak więc300 400
to mniej więcej środek strony (trochę wysoko, trochę lewo).Zapomniałem nazwać
showpage
. Jeśli wyświetlasz podgląd programu ps za pomocągs
i nie kończy się on nashowpage
,gs
może wyświetlić dla ciebie obraz. A jednak plik w tajemniczy sposób nie wygeneruje żadnych danych wyjściowych podczas próby konwersji na format pdf lub coś innego.
Program
Przeczytaj dokumentację w tej kolejności, aby łatwo nauczyć się PostScript:
Doskonały samouczek Paula Bourke'a: http://paulbourke.net/dataformats/postscript/
Blue Book, pierwsza połowa, oryginalny oficjalny samouczek:
http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDFZielona Księga, jak efektywnie korzystać z PostScript:
http://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDFMyśląc w Postscriptum, powiedział nuff: http://wwwcdf.pd.infn.it/localdoc/tips.pdf
Ilustracje matematyczne . Zacznij od małych, buduj duże. Matematyka za krzywymi Beziera. Algorytm obcinania wielokątów Hodgmana-Sutherlanda. Transformacje afiniczne i nieliniowe transformacje ścieżki. Rysunek 3D i cieniowanie Gourauda. Ze wstępu:
Które [z wielu narzędzi, które pomagają w tworzeniu grafiki matematycznej] do wyboru, najwyraźniej wiąże się z kompromisem między prostotą a jakością, w którym większość wybiera to, co uważają za prostotę. Prawda jest taka, że kompromis nie jest konieczny - po dokonaniu niewielkiej początkowej inwestycji wysiłku zdecydowanie najlepszą rzeczą w większości sytuacji jest napisanie programu w języku programowania graficznego PostScript. Jakość danych wyjściowych programu PostScript praktycznie nie jest ograniczona, a wraz z nabieraniem doświadczenia trudności z używaniem języka gwałtownie spadają. Widoczna złożoność związana z tworzeniem prostych postaci przez programowanie w PostScript, jak mam nadzieję, ta książka pokaże, jest w dużej mierze iluzją. A nakład pracy związany z tworzeniem bardziej skomplikowanych postaci zwykle nie będzie większy ani mniejszy niż jest to konieczne.