Dovětek

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 28. ledna 2022; kontroly vyžadují 2 úpravy .
dovětek
Jazyková třída multiparadigma , stack -based , procedurální
Objevil se v 1982
Autor John Warnock , Charles Geschke
Vývojář Adobe
Přípona souboru .ps
Uvolnění PostScript 3 (1997)
Typový systém přísný , dynamický
Hlavní implementace Adobe PostScript, TrueImage, Ghostscript , InterPress
Byl ovlivněn Forth
ovlivnil PDF , Encapsulated PostScript

PostScript je jazyk pro popis stránek primárně používaný v DTP .

Ideologie

Postscript vyvinuli John Warnock a Chuck Geschke z Adobe Systems na počátku 80. let 20. století . Postscript byl původně používán jako jádro tiskového stroje počítače Apple , ale brzy se rozšířil na většině počítačových systémů. Postscriptové interprety (ve formě softwarových nebo hardwarových komponent) pro tisk dokumentů jsou přítomny téměř ve všech moderních počítačových systémech.

Postscript používá model zobrazování textu (nebo obrázků) na prázdné stránce. Když je stránka připravena, vytiskne se a začne „kreslení“ obrázku další stránky. Není to nic jiného než metoda kompilace. Každý Postscriptový dokument je obvykle program, který tiskne ( nebo zobrazuje na obrazovce monitoru ) po sobě jdoucí stránky.

Historie

Jazyk PostScript byl vytvořen v roce 1976 Johnem Warnockem z Evans and Sutherland Computer Corporation .. Jeho kolega John Gaffney , který byl tehdy  tlumočníkem velké 3D grafické databáze New York Harbor , vytvořil jazyk Design System (velmi podobný Forth ). Později se John Warnock přestěhoval do výzkumného centra Xerox PARC v Palo Alto a v roce 1978 spolu s Martinem Newellemvytvořil nový systém JaM (John a Martin) založený na Design System, který se používá ve výzkumu tisku a později se vyvinul do InterPress- Xerox Printing Protocol .

V roce 1982 John Warnock opustil Xerox a založil s Chuckem Geschkem Adobe Systems Inc. Zpočátku bylo jejich cílem vytvořit specializované tiskové pracoviště, které se mělo jmenovat PostScript, ale brzy pochopili, že je lepší soustředit své úsilí na vývoj nástrojů pro správu tiskáren třetích stran.

V roce 1984 spatřil světlo světa PostScript ( Level 1 byl později přidán k názvu , aby se odlišil od Level 2). Postscript měl řadu výhod oproti jiným systémům té doby:

Adobe s PostScriptem zariskovalo a možná nebylo schopno přesvědčit trh o potřebě takového jazyka, nebýt Steva Jobse z Apple Computer . V roce 1985 začaly prodeje počítačů Macintosh klesat a Apple potřeboval „zabijáckou aplikaci“ – něco, co uměl jen jeho počítač. Steve Jobs investoval 2,5 milionu dolarů do společnosti Adobe, která vytvořila PostScriptový řadič pro tiskárnu Apple LaserWriter , a do společnosti Aldus , která vytvořila PageMaker , který plně využil výhody počítačů Macintosh a LaserWriter. Nástup předtiskové přípravy na počítači pak zachránil Apple a z Adobe a Aldus udělal velké společnosti. Jiní fotosaziči, počínaje Linotypem , ocenili PostScript a brzy vybavili své sazeče PostScriptovými interprety. PostScript se stal standardem v předtiskové přípravě.

V roce 1991 vydala společnost Adobe další revizi PostScriptu, PostScript Level 2. Jednalo se o významnou revizi, na kterou vydavatelská komunita dlouho čekala. Hlavní vylepšení byla:

Společnost Adobe udělala chybu, když před zahájením práce na své hardwarové implementaci vydala specifikace PostScript Level 2. Konkurenti nečekaně vstoupili na trh s emulátory PostScript Level 2 před samotnou Adobe. V důsledku toho trvalo velmi dlouho, než aplikace začaly používat všechny nové funkce PostScript úrovně 2.

V roce 1998 představila společnost Adobe nový standard PostScript 3. Změny oproti úrovni 2 jsou malé. To je pochopitelné vzhledem k tomu, že mnoho aplikací stále nemůže plně podporovat PostScript Level 2. Hlavní výhody PostScriptu 3 jsou:

Rozsah

Stejně jako plotry poskytuje PostScript vysoce kvalitní výstup vektorové grafiky a jediný řídicí jazyk, který může použít jakýkoli výrobce tiskáren. Stejně jako jehličkové tiskárny nabízí PostScript pohodlné možnosti pro tisk bitmapové grafiky a textu. Na rozdíl od obou dokáže PostScript kombinovat všechny tyto typy výstupu na jednu stránku, což vám poskytuje mnohem větší flexibilitu, než jaké měla jakákoli tiskárna nebo plotr dříve.

PostScript je více než typický jazyk pro ovládání tiskárny, je to plně vybavený programovací jazyk. Mnoho aplikačních programů dokáže převést dokument na program PostScript, který po spuštění vytvoří původní dokument. Tento program lze odeslat přímo na tiskárnu podporující PostScript nebo jej převést překladačem jazyka PostScript do jiného formátu (u tiskáren, které nepodporují jazyk PostScript), nebo lze výsledek jeho spuštění interpretem zobrazit na obrazovce. Protože původní program PostScript je stejný, PostScript se nazývá nezávislý na zařízení .

Většina vysoce výkonných tiskáren a plotrů má vestavěný překlad jazyka PostScript . Jednoduché tiskárny domácí třídy zároveň podporují pouze základní grafické operace, takže úkol vytvořit bitmapový obrázek je přiřazen centrální procesorové jednotce . Existují překladače jazyka PostScript pro různé operační systémy , z nichž nejznámější je bezplatný program Ghostscript .

Existuje komerční verze systému TeX  - BaKoMa TeX, kterou napsal sovětský a ruský programátor V. Malyshev zcela v PostScriptu.

Jazyk

PostScript je plně vybavený Turing-kompletní programovací jazyk . PostScriptové programy sice nevytvářejí především lidé, ale jiné programy, ale v zásadě nic nebrání psát na něj programy [1] pro výpočty grafiky, implementaci numerických metod pro řešení matematických úloh atp.

PostScript je interpretovaný zásobníkový jazyk podobný Forth . Syntaxe jazyka používá reverzní polskou notaci , díky čemuž je použití závorek zbytečné, ale čtení programového textu vyžaduje určitou praxi, protože je potřeba mít na paměti obsah zásobníku. Většina operátorů bere operandy ze zásobníku a vkládá výsledek výpočtu do zásobníku. Literály (řetězce a čísla) tlačí svou kopii na hromádku.

PostScript kreslí pomocí dvourozměrného pravoúhlého souřadnicového systému , jehož počátek je v levém dolním rohu stránky ; výchozí osa x je vodorovná (tj. šířka stránky), osa y  je svislá. Měrnou jednotkou pro lineární souřadnice je typografický bod . Pomocí jazykových operátorů [6, pp. 517-518] počátek souřadnicového systému lze posunout do libovolného bodu (operátor translate) a samotný systém lze otočit do libovolného úhlu v rovině stránky (operátor rotate); scaleměřítko podél každé ze dvou os lze také změnit pomocí operátoru . Například výstup „zrcadlového“ obrazu na film (tzv. „ Emulsion down “) v PostScriptových tiskárnách se provádí pomocí jediného operátoru scale, který nastavuje záporné měřítko podél jedné z os souřadnicového systému: například -1.0 1.0 scale.

PostScript má vlastnosti metasouboru, který kombinuje podporu pro vektorové i bitmapové obrázky. Písma v PostScriptu jsou pouze vektorová. Trochu od sebe jsou tzv. Fonty Type3 , ve kterých lze ke kreslení glyfů použít libovolnou proceduru formulovanou v jazyce PostScript (procedura ) [6, s. 337-342]. Od vydání aktualizace SP4 pro Windows NT 4.0 v roce 1998 (viz také http://support.microsoft.com/gp/lifesupsps ) s Adobe Type Manager 4.0 a ovladačem AdobePS 5 nainstalovaným v systému jsou všechna písma v jiném než latinském jazyce . kódování, zejména znaky azbuky byly nahrány do PostScriptového souboru ve formě písem Type3 , kde každý glyf byl reprezentován jako bitmapový obrázek příslušného rozlišení. Vyjmutí fontu jako bitmapy způsobilo mnoho problémů při přípravě na fotosazbu a předtiskovou přípravu obecně. Tato chyba byla opravena v AdobePS 5.1 a Adobe Type Manager 4.1 , které byly poté zahrnuty do distribuce Windows 2000 . /BuildGlyph

Struktura dokumentu

Struktura PostScriptového souboru je tvořena strukturálními komentáři. Strukturální komentáře začínají posloupností znaků " %%" na začátku řádku.

PostScriptový soubor se skládá ze čtyř částí: záhlaví, prologu, těla a epilogu.

Záhlaví začíná řádkem " %!PS-Adobe-N.M", kde NM je verze specifikace, následují strukturální komentáře s obecnými vlastnostmi dokumentu a záhlaví končí řádkem " %%EndComments".

%!PS-Adobe-2.0 %%Tvůrce: dvips(k) 5.78 Copyright 1998 Radical Eye Software %%Title: rep.dvi %%Stránky: 9%%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments

Prolog obvykle obsahuje popisy podprogramů a data potřebná pro tisk dokumentu, jako jsou procedury a fonty. Prolog končí komentářem „ %%EndProlog“.

Tělo programu obsahuje příkazy zodpovědné za vykreslení každé stránky, před kterými je uveden řetězec " %%Page: <метка> <номер>", kde <štítek> je štítek stránky, která se netiskne, a <číslo> je pořadové číslo stránky v souboru, například,%%Page: iii 3

Po příkazech pro vykreslení všech stránek následuje strukturální komentář „ %%Trailer“, po kterém začíná epilog.

V epilogu můžete duplikovat komentáře ze záhlaví (toto je implementováno v případě, že program ještě nezná například počet stránek na začátku výstupu) - v tomto případě namísto číselných hodnot parametrů v záhlaví, musíte napsat " (atend)".

Soubor končí řetězcem " %%EOF".

Přehled jazykových prvků

Hromady

PostScript používá čtyři zásobníky k ukládání různých typů dat: zásobník operandů, zásobník grafického kontextu, zásobník provádění a zásobník slovníků.

Typy dat

Základní datové typy jazyka PostScript jsou: celé číslo se znaménkem, reálné číslo, booleovský výraz ( truenebo false), řetězec znaků ( ( … ) ), pole ( [ … ] ), procedura ( { … } ), slovník, jméno.

Operátoři

Operátory v PostScriptu berou operandy (parametry) tak, že je vytahují ze zásobníku, a vkládají výsledky akcí (pokud nějaké existují) také do zásobníku. Tento styl programování, ve kterém jsou operandy specifikovány před operací na nich (operátor), se nazývá postfixová notace. Chcete-li například přidat dvě daná čísla, musíte je nejprve umístit na vrchol zásobníku operandů a poté provést příkaz add, který vyjme poslední dva prvky (tedy daná čísla) ze zásobníku, sečte je a zapíše výsledek do zásobníku, odkud jej lze vytáhnout jinou operací jako operand. Píše se to takto:4 5 add

PostScriptové příkazy lze rozdělit do několika skupin. Jedná se o operátory pro práci s obsahem zásobníku (bez ohledu na typ), aritmetické operace, operátory pro práci s poli, práci se slovníky, práci s řetězci, porovnávání, řízení toku příkazů, práci s typem argumentů a převod, přístup a práce se soubory, práce s virtuální pamětí, stav grafiky a další.

Stručný přehled mechanismu kreslení obrázků

Proces kreslení (rasterizace) při provádění ( interpretaci ) PostScriptového programu spočívá ve výpočtu pro každý pixel výstupního zařízení jedné (pro monochromatické) nebo několika (například čtyři pro zařízení CMYK nebo šest pro CMYKOrGr ) hodnot parametrů (-s) v rozsahu od 0 do 1,0. Vypočtená hodnota parametru (s) se používá jako argument pro další důležitou funkci  - přenosovou funkci (ruské synonymum  - display ). Standardně je tato funkce v drtivé většině případů nejjednodušší funkcí y(x)=x a její hodnota je shodně rovna hodnotě argumentu. V řadě případů se však například používají poměrně složité nelineární závislosti y(x) ke kompenzaci zisku bodu , daného po částech nebo tabulkové aproximaci . Po částech lineární aproximace přenosové funkce se používá např. v souborech Adobe Photoshop EPS a PS  - pro aproximaci je definiční oblast [0; 1.0] rozdělena na čtyřicet úseků s krokem 0,025 (2,5 % rastrového bodu ) ; na každém ze čtyřiceti úseků má přenosová funkce tvar y(x)=b x+a. Přenosová funkce ve tvaru y(x)=1-x (z hlediska jazyka PostScript ) obrátí obraz a udělá z něj negativ - takto  tisknou negativy PostScriptové tiskárny . {1 sub neg} settransfer

U monochromatických zařízení - např. pro fotosazbu , lze rozhodnutí o vyplnění (zvýraznění) pixelu učinit jako výsledek porovnání hodnoty přenosové funkce vypočtené pro daný pixel a hodnoty tzv. Bodová funkce nebo dvourozměrné pole Pole prahu : pokud je hodnota přenosové funkce větší než hodnota funkce Spot nebo prvku pole Threshold pro tento pixel, je pixel překreslen (zvýrazněn) .

Speciální výběr přenosové funkce a funkce Spot nebo Threshold array umožňuje získat poměr počtu stínovaných a nevyplněných pixelů výstupního zařízení pro každý pixel zdrojového (rastrovaného) obrazu tak, aby průměrný jas odpovídající plocha obrazu na tisku (tisku) je téměř úměrná hodnotě vypočteného parametru (viz obr. výše).

Podobným způsobem se tvoří tečky různých velikostí, které tvoří polotónový obraz na typografických tiscích: v novinách, časopisech, knihách.

Příklad programu

%!ps-adobe-1.0 % Standardně postscript používá měrnou jednotku 1 bod = 1/72 palce . % a máme rádi milimetry. 72 25,4 div % 1 mm = 72/25,4 bodů dup % duplikuje hodnotu v horní části zásobníku měřítko % natáhněte tento počet na obou souřadnicích 100 100 přeložit % nastavit počátek na (100 mm, 100 mm)   /Times-Roman findfont % získat písmo Times-Roman 10 scalefont % roztáhnout na velikost 10 (máme mm!) setfont % nastaví vybraný font   0 30 330 { % cyklus pro úhly od 0 do 330 v krocích po 30 gsave % uložit aktuální transformaci souřadnic otočit % otočit souřadnicový systém (úhel ve stupních je převzat z horní části zásobníku) 15 0 přesun do % pohybu do bodu (15 mm, 0 mm) (Wikipedia) zobrazit % napsaného slova aktuálním písmem grestore % návratová transformace souřadnic } pro % konec smyčky for   showpage % zobrazit stránku

Výstup programu

Manipulace s písmem

Práce s fonty je téměř stejně složitá jako samotný PostScript . Systém písem používá grafická primitiva PS ke kreslení glyfů se zakřivenými čarami, které pak lze zobrazit v libovolném rozlišení . S tímto přístupem vzniká řada typografických problémů.

Jeden z problémů – že písma se při malých velikostech neškálují lineárně – je vyřešen zahrnutím hintingu . V době, kdy byla technologie pro vkládání nápověd do písem přísně střežena, byly „naznačené“ fonty kódovány a komprimovány do toho, co Adobe nazvalo Font Type 1 (také známé jako PS1 , T1 nebo Adobe Type 1 ). Typ 1 byl spíše úložištěm informací s čistě popisnými znaky než úplným jazykem (PDF je v tomto ohledu podobný). Společnost Adobe poté začala licencovat technologii Type 1 těm, kteří chtěli do svých písem přidat nápovědu. Těm, kteří nelicencovali technologii, zůstalo písmo Type 3. Písma Type 3 umožňovala plnou složitost jazyka PostScript, ale bez standardního přístupu k nápovědám.

Písmo Type 2, které je určeno pro použití s ​​formátem Compact Font (CFF), bylo implementováno za účelem zmenšení celkové velikosti souboru písem. Později se stal základem pro manipulaci s fonty OpenType .

Aby Apple mohl konkurovat systému Adobe, vyvinul v roce 1991 své vlastní systémy TrueType . Ihned po oznámení TrueType společnost Adobe zveřejnila specifikace pro formát Type 1 . Od té doby se objevilo mnoho bezplatných písem Type 1. V tomto formátu jsou k dispozici například fonty používané systémem rozložení TeX .

Koncem 90. let se společnost Adobe připojila k Microsoftu ve vývoji OpenType . V podstatě se jednalo o sloučení a rozšíření formátů Type 1 a TrueType. Při tisku na výstup postscriptového zařízení jsou vynechány nadbytečné části písma OpenType a to, co je odesláno do ovladače tiskárny, se neliší od toho, co je na výstupu písem TrueType nebo Type 1.

Fonty indexované CID

Formát písma CID-Indexed (zkratka pro Character Identified) byl vyvinut pro vyřešení problému adresování glyfů v hieroglyfických jazycích s velmi velkým počtem znaků (čínština, korejština, japonština). Tento formát lze použít s typem 1 pro standardní CID indexovaná písma nebo Type 2 pro CID indexovaná písma OpenType .

Každý glyf prvku v kolekci znaků je identifikován jedinečným znakovým indexem (CID) v tomto kódování, který nemusí být stejný jako kód odpovídajícího znaku, jako je tomu v Unicode .

Kolekce znaků jsou jedinečně pojmenovány case, ordering, a padding, jako například „Adobe-Japan1-6“. Registr označuje vývojáře (například Adobe). Uspořádání odhaluje účel znakové sady (například "Japonsko1"). Dodatečné číslo (například 6) často označuje velikost sbírky. Například kolekce Adobe-Japan1-0 je 8284 glyfů a Adobe-Japan1-6 je 23058 glyfů.

Písma s klíčem CID lze vytvořit bez odkazu na sadu znaků pomocí kódování "identity", jako je Identity-H (pro horizontální psaní) nebo Identity-V (pro vertikální psaní). Taková písma mohou mít jedinečnou znakovou sadu, v takovém případě není číslo CID glyfu informativní; obvykle se místo toho používá kódování Unicode , případně s dalšími informacemi.

Technologie Adobe ClearScan vytváří vlastní písma Type1-CID, která odpovídají vizuálnímu vzhledu naskenovaného dokumentu po optickém rozpoznávání znaků (OCR). ClearScan (v Acrobatu 9) nenahrazuje písma systémovými písmy nebo Type1-MM (jako v Acrobatu 8 ​​a dřívějších), ale používá tato nově vytvořená vlastní písma. Vlastní písma jsou vložena do souboru PDF.

Trendy a vyhlídky

Kromě PostScriptu se na trhu laserových tiskáren rozšířil jazyk pro ovládání tiskárny PCL společnosti Hewlett-Packard . PCL bylo původně zaměřeno na jiné úlohy než PostScript (ovládání tiskárny spíše než popis stránky) a nemůže poskytovat přenositelnost . Pro kancelářské použití je to však v některých případech pohodlnější. PCL používá standardní Windows TrueType fonty ( na rozdíl od PostScriptu). Nejnovější verzi (PCL6) navíc vyvinula společnost HP v úzké spolupráci se společností Microsoft a poskytuje proto rychlejší odezvu na aplikaci, rychlý tisk složité grafiky, zlepšenou kvalitu tisku a zvýšenou přesnost při výstupu dokumentů.

Kromě toho je PostScript licencován a bez licenčních poplatků společností Adobe na řadič RIP (Raster Image Processor), zatímco PCL mohou třetí strany používat zdarma. Proto licencovaný RIP PostScript 3 pro plotry HP stojí asi 500 USD, zatímco nelicencované ovladače OKI "PS2 emulace" stojí 30-70 USD.

Prakticky všechny laserové tiskárny v 90. letech podporovaly PostScript jako svůj primární jazyk; od roku 2000 mnoho laserových tiskáren třídy SOHO nebylo vybaveno podporou PostScript, aby se snížily náklady. PostScript je tak PCL vytlačován z kanceláře, přičemž však zůstává prakticky nesporným standardem v oblasti předtiskové přípravy.

Poznámky

  1. Evan Danaher. Život v PostScriptu  . - Hra "Life" v jazyce PostScript ( GPL ). - " Angličtina. "  Naučil jsem se, že Postscript je skutečný jazyk, nejen pro grafiku. Strávil jsem tedy trochu času učením se a chtěl jsem v tom udělat něco zajímavého. Jasnou volbou byla samozřejmě hra o život Johna Conwaye. ". Získáno 9. dubna 2012. Archivováno z originálu 15. května 2012.

Literatura

  • Robert Šimonský. Naučte se Unix sami. 10 minut na lekci = Sams Teach Yourself Unix za 10 minut. - M .: "Williams" , 2006. - S. 272. - ISBN 0-672-32764-3 .
  • S. Nemnyugin, M. Chaunin, A. Komolkin. Efektivní práce v UNIXu. Petrohrad: "Piter", 2001. ISBN 5-272-00197-4
  • Romanovsky I. V., Stolyar S. E. "Stacks and Stack Languages" . Tutorial. - Petrohrad: "Informatizace školství", 2002. - 35 s.
  • Glenn C. Reid. Thinking in PostScript , Addison-Wesley, 1990.

Odkazy