Sök…


Anmärkningar

PostScript är ett omvänd polskt stapelbaserat, dynamiskt typat, dynamiskt namnutrymme, skriptspråk med inbyggda primitiv för att generera återgivna bilder från vektorbeskrivningar. PostScript använder samma "Adobe Image Model" som PDF-filformatet.

PostScript används som ett utgångsformat av många program eftersom det är utformat för att enkelt kunna genereras av maskinen.

Liksom LISP är PostScript homoikoniskt och kod och data delar samma representation. Förfaranden kan ta förfaranden som data och ge förfaranden som resultat, och även låna sig till tekniker från sammanlänkande-programmering .

Installation eller installation

De giltiga Adobe PostScript-tolkarna finns i avancerade skrivare, Display PostScript (DPS) -produkten och Acrobat Distiller-produkten. Som författare av standarden betraktas dessa produkter som "standardimplementeringen" i syfte att beskriva skillnader mellan PostScript-implementationer.

Standardgränssnittet till tolkar definierad i PLRM är programströmmen som kan vara antingen text eller binär beroende på detaljerna i den underliggande kanalen eller OS / styrenheten. Acrobat Distiller har ett gränssnitt för gränssnitt för att välja det inmatade postscript-programmet och återge dess utdata som en pdf. Distiller har också något begränsat stöd för att använda utgångstextströmmen för rapporteringsfel och annan programutgång. GSView tillhandahåller ett liknande gränssnitt för gränssnitt för ett liknande arbetsflöde med Ghostscript som tolk.

Ghostscript och Xpost fungerar båda i ett kommandoradsläge. Den postfil som ska köras kan nämnas på kommandoraden ( gs program.ps eller xpost program.ps ) som öppnar ett grafikfönster för att visa den grafiska utgången. Alternativ kan användas för att återge grafiken någon annanstans som en diskfil eller undertrycka grafiken helt och använda postscript precis som ett textskriptspråk.

De olika tolkarna har sina egna installations- och installationsinstruktioner och det skulle vara slöseri (och benägna att bli föråldrat) att reproducera dem här.

Fritt tillgängliga PostScript-tolkar

  • Ghostscript är tillgängligt för alla större plattformar och Linux-distributioner, i källa eller binär form, under GNU-licensen eller under andra licensarrangemang med författarna, Artifex-programvara . Ghostscript implementerar hela PostScript 3-standarden.

  • Xpost finns i källform för alla större plattformar, under BSD-3-klausullicensen. Den implementerar Level-1-standarden med vissa Level-2-tillägg och vissa DPS-tillägg.

Allmän beskrivning av PostScript

PostScript är ett Turing-komplett generellt programmeringsspråk, designat och utvecklat av Adobe Systems. Många av idéerna som blommade i PostScript hade odlats i projekt för Xerox och Evans & Sutherland.

Dess huvudsakliga verkliga tillämpning är historiskt som ett sidbeskrivningsspråk , eller i dess enkelsidiga EPS bildar ett vektorgrafik bildbeskrivningsspråk. Den är dynamiskt typad, dynamisk-scoped och stack-baserad vilket leder till en mestadels omvänd polsk syntax.

Det finns tre stora utgåvor av PostScript.

  1. PostScript Level 1 - detta släpptes på marknaden 1984 som det bosatta operativsystemet för Apple LaserWriter laserskrivare, som invigde Desktop Publishing Era.
  2. PostScript Level 2 - släpptes 1991 och innehöll flera viktiga förbättringar av nivå 1, inklusive stöd för bildkomprimering, separering i RIP, auto-växande ordböcker, skräpsamling, Named Resources, binära kodningar av själva PostScript-programströmmen.
  3. PostScript 3 - den senaste och kanske mest antagna versionen släpptes 1997. Den innehåller också flera importförbättringar över nivå 2, t.ex. Smooth Shading. Termen "nivå" har tappats.

Även om PostScript vanligtvis används som sidbeskrivningsspråk - och därför implementeras i många skrivare för att generera rasterbilder - kan det också användas för andra ändamål. Som en snabb omvänd polsk kalkylator med mer minnesvärda operatörsnamn än bc . Som ett utgångsformat som genereras av ett annat program (vanligtvis på något annat språk).

Även om PostScript-filen vanligtvis är 7-bitars ren ASCII finns det flera typer av binär kodning som beskrivs i nivå 2-standarden. Och eftersom det är programmerbart kan ett program implementera sitt eget godtyckligt komplicerade kodningsschema för sig själv. Det finns en internationell obfuskad Postscript-tävling, något mindre aktiv än den C.

Referenser online

Vanliga frågor

Böcker

  • Referenshandbok för postscript Language, 1ed, 1985. Rekommenderas för dess lilla storlek och enkla operatörsindex från sammanfattningssidorna (saknas i senare utgåvor).

  • Real World Postscript. Kapitel av olika författare om olika ämnen, inklusive utmärkt täckning av halftoning.

Lokala namnutrymmen för funktioner

Postscript är ett dynamiskt namnavstånd eller LISP 1- språk. Men det ger verktygen för att implementera lokala variabler i procedurer och andra effekter som behövs för att implementera algoritmer.

För lokala namn i en procedur, skapa en ny ordlista i början och pop den i slutet.

/myproc {
    10 dict begin
    %... useful code ...
    end
 } def

Du kan också kombinera detta fint med en genväg för att definiera funktionens argument som variabler.

% a b c  myproc  result
/myproc {
    10 dict begin
    {/c /b /a} {exch def} forall
    %... useful code yielding result ...
    end
 } def

Om du behöver uppdatera en * "global" * -variabel medan den lokala ordlistan finns på toppen, använd store istället för def .

Hej världsexempel

Välj ett teckensnitt och teckensnitt, välj plats, show sträng.

%!PS
/Palatino-Roman 20 selectfont
300 400 moveto
(Hello, World!) show
showpage

Anteckningar och vanliga fallgropar:

  • Det går inte att ställa in ett teckensnitt (vilket resulterar i antingen ingen text eller ett standardtecken (fult))

  • Använder findfont och setfont men glömmer att scalefont däremellan. selectfont använder nivå-2 undviks detta problem och är mer kortfattat.

  • Det går inte att ställa in en punkt med moveto eller ställa in punkten utanför sidan. För US-brevpapper är 8,5x11 792x612 ps poäng. Så det är lätt att komma ihåg ungefär 800x600 (men en smidge kortare och bredare). Så 300 400 är ungefär mitt på sidan (lite hög, lite kvar).

  • Glömmer att ringa showpage . Om du förhandsgranskar ett ps-program med gs och det inte slutar på showpage kan gs visa en bild åt dig. Och ändå kommer filen på mystiskt sätt inte att producera någon utgång när du försöker konvertera till pdf eller något annat.

Curriculum

Läs dokumentationen i den här ordningen för att enkelt lära dig postscript:

  1. Paul Bourkes utmärkta handledning: http://paulbourke.net/dataformats/postscript/

  2. Blå bok, första halvlek, den officiella officiella självstudien:
    http://www-cdf.fnal.gov/offline/PostScript/BLUEBOOK.PDF

  3. Green Book, hur man använder postscript effektivt:
    http://www-cdf.fnal.gov/offline/PostScript/GREENBK.PDF

  4. Tänker i Postscript, 'sa nuff: http://wwwcdf.pd.infn.it/localdoc/tips.pdf

  5. Matematiska illustrationer . Börja litet, bygg stort. Matten bakom Bezier Curves. Hodgman-Sutherland-klippalgoritmen. Affinera transformationer och icke-linjära transformationer av vägen. 3D-ritning och Gouraud-skuggning. Från förordet:

Vilket [av de många verktygen som hjälper en att producera matematisk grafik] att välja innebär uppenbarligen en avvägning mellan enkelhet och kvalitet, där de flesta går för vad de uppfattar som enkelhet. Sanningen är att avvägningen är onödig - när man väl gjort en liten initial insats, är det absolut bästa i de flesta situationer att skriva ett program på det grafiska programmeringsspråket PostScript. Det finns praktiskt taget ingen begränsning för kvaliteten på utskriften i ett PostScript-program, och när man får erfarenhet minskar svårigheterna med att använda språket snabbt. Den uppenbara komplexiteten i att producera enkla figurer genom att programmera i PostScript, som jag hoppas att den här boken kommer att visa, är till stor del en illusion. Och mängden arbete med att producera mer komplicerade fi gurer är vanligtvis varken mer eller mindre än vad som är nödvändigt.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow