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.

  1. PostScript Level 1 - został wydany na rynek w 1984 roku jako rezydentny system operacyjny drukarki laserowej Apple LaserWriter, inaugurujący erę Desktop Publishing.
  2. 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.
  3. 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

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 i setfont ale zapominanie o scalefont między nimi. Korzystanie z selectfont 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ęc 300 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 na showpage , 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:

  1. Doskonały samouczek Paula Bourke'a: http://paulbourke.net/dataformats/postscript/

  2. Blue Book, pierwsza połowa, oryginalny oficjalny samouczek:
    http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF

  3. Zielona Księga, jak efektywnie korzystać z PostScript:
    http://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDF

  4. Myśląc w Postscriptum, powiedział nuff: http://wwwcdf.pd.infn.it/localdoc/tips.pdf

  5. 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.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow