Postscript Postscript är ett»sidbeskrivningsspråk». Vissa operationer påverkar»aktuell sida», en bitkarta. När en sida är färdig sänder operatorn showpage sidan till tryckverket och aktuell sida återställs. Postscript är text som lätt kan överföras mellan program och datorer och också kan läsas av människor. Postscript-programmet interpreteras normalt av en dator i eller vid utskriftsutrustningen. Postscript Language: Reference Manual second edition (Addison & Wesley) 1990. Definition av den nya utvidgade versionen av Postscript
Postscript forts. Postscript har en lång historia med rötter från Ivan Sutherland vid Evans and Sutherland via John Warnock och John Gaffney vid The ES Design System. John W flyttade till Xerox PARC 1978 och skapade där tillsammans med Martin Newell och Chuck Geschke JAM (John and Martin?) 1981. De gjorde sedan drivrutiner till många av Xerox laserskrivare. Steg mot enhetsoberoende gjordes med Press 1982 och med Interpress 1985. Interpress hade ungefär samma funktioner som tidig Postscript men binär lagring. Xerox ville inte släppa Interpress fritt. John W, Chuck G bildade tillsammans med Dough Brotz Adobe 1984 och skapade där Postscript.
Postscript forts. Ett viktigt steg är att Apple baserade sina laserskrivare på Postscript Idag använder nästan alla laserskrivare och fotosättare samt många skärmhanterare PS.
Matrisen och sidan Postscript-dokumentet beskriver en följd sidor i form av ett program. Programmet interpreteras och ger upphov till sidbeskrivningar i form av (bit-)matriser som styr ett tryckverk (xerografiskt eller fotografiskt). Detta är relativt enkelt om hela matrisen kan lagras. (Ett uppslag 500 mm 700 mm i 2 500 punkter per tum i fyra färger kräver 1,7 Gbyte.) eller om interpreteringen kan göras i utskriftens hastighet. Annars görs utskriften i»band» och stoppas och startas däremellan med risk för synliga skarvar.
Matrisen och sidan forts. Dokumentet passerar många stadier: tillämpningen har internt format tillämpningen skapar systemanpassat format (QuickDraw) drivrutinen skapar ett Postscript-dokument Postscript-dokumentet köas och kanske också transformeras (sortering, utskjutning o.d.) Postscript-programmet interpreteras och ger någon intern struktur av kommandon som ska påverka matrisen (ev. sorterade) en matris genereras matrisen ger upphov till styrsignaler till tryckverket den tryckta sidan kommer ut
Postscript-programmering När behöver man kunna Postscript? Engångsjobb för speciella effekter Manuell modifiering av programgenererad Postscript Postscript-transformerare Drivrutin (översättare från någon representation till Postscript) Postscript-interpretator
Begrepp i Postscript Aktuell sida trycks med showpage. De flesta geometriska former konstrueras i två steg: Först beskriver man konturer (path) Konturer kan målas med angiven pensel och färg Figur kan fyllas med angiven färg Konturer byggs av räta linjer, cirkelbågar och kubiska splines Färg kan vara gråton eller kulör Tvåtonsbilder, gråtonsbilder och färgbilder kan överföras Beskrivning av former underlättas av att man lätt kan ändra koordinatsystemet.
begrepp i Postscript forts. Initialt är origo i nedre vänstra hörnet, x åt höger, enheten 1/72 inch Koordinatsystemet kan flyttas, skalas, vridas och skjuvas (med transformationsmatris för»homogena koordinater») Postscript är stackorienterat. Operander läggs på stacken. Operatorer tar argument från stacken och lägger resultat på stacken samt har ev. bieffekter. Datatyper integer, real, boolean, array, string, name, dictionary, operator, file, mark, null, save, fontid
begrepp i Postscript forts. 40 60 add 2 div Stackens successeiva utseende: 40 40 60 100 100 2 50 /average {add 2 div} def 40 60 average average average {add 2 div} Operatorn def gör att proceduren {add 2 div} lagras under namnet average i aktuell symboltabell
begrepp i Postscript forts. Med x y på stacken ger 180 mul cos exch 180 mul cos add 2 div 0,5(cos(180x)+cos(180y)) /box{ 0 1 rlineto 1 0 rlineto 0 1 rlineto closepath} def 72 72 scale 2 4.5 moveto box 3 73 div setlinewidth stroke 5.5 2 moveto box fill showpage dx dy rlineto closepath x y moveto num setlinewidth stroke fill showpage name value def
Text i Postscript Ett teckensnitt är en symboltabell (dictionary) som bl.a. innehåller en procedur för varje tecken en kodningstabell (encoding vector) som avbildar från 0..255 till namn på en»glyfprocedur» metrikinformation Teckensnitt av typ 1 är kodade, alltid konturer, effektiva typ 3, användardefinierade med glyfprocedurer av godtyckligt slag typ 0, sammansatta av tecken ur andra teckensnitt Grundstorleken är 1 enhet
text i Postscript forts. /smallfont /Times-Roman findfont 9 scalefont def /medfont /Times-Roman findfont 12 scalefont def /bigfont /Times-Roman findfont 18 scalefont def 228 204 moveto bigfont setfont (Architecture) show 228 174 moveto medfont setfont (In the sense in which Architecture) show 228 160 moveto (is an art name findfont dict dict faktor scalefont dict dict setfont string show proc string kshow
text i Postscript forts. Att skapa ett teckensnitt med önskad kodningstabell % skapa en symboltabell som är lika stor % som Helveticas och gör den aktuell /Helvetica findfont dup length dict % i varje element i Helveticas % symboltabell begin % kopiera varje element utom det med % nyckel=fid {1 index /FID ne {def} {pop pop} ifelse} forall % låt Encoding få önskad kodning som värde /Encoding ISOLatin1Encoding def % kopiera aktuell symboltabell till % stacken currentdict % tag bort aktuell symboltabell end /Helvetica-ISOLatin1 exch definefont pop x dup x x length dict dict dict begin dict proc forall key value proc bool true-proc false-proc ifelse currentdict dict end
Litteraler»Litteraler» är skrivsätt för värden. Tecknen ( ) < > [ ] { } / % är specialtecken. Tal 12-98 +17 -.002-1. 0.0 123.6e10 1E-5 8#1777 Vektor [ 123 /abc (xyz) ] Procedur {add 2 div} Symboltabell << \Type \Font \Subtype \Type1 \BaseFont \Helvetica >>
Syntax för strängar string == "(" ch * ")". ch=="\n" "\r" "\t" "\b" "\f" "\\" "\(" "\)" "\" '0 3 oktala siffror' "\" 'radbyte' "\" 'annat tecken' 'tecken utom \'. Sträng i sedecimal form (bas 16) <901fA>
Strukturkonventioner Postscript-dokument bör följa»konventioner för strukturering av Postscript-dokument» (DSC version 3.0). Konventionen innebär att man lägger in rader som inleds med %% och således är kommentarer för interpretatorn men som ger viktig information till program som ska hantera Postscript-dokument. EPSF använder dessa funktioner för att beskriva objekt som kan fogas in i Postscriptdokument. En EPSF (encapsulated Postscript file) ska inledas med: %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: llx lly urx ury där ll betyder»lower left» och ur betyder»upper right». Koordinaterna bestämmer klippning och relationen mellan EPS-objektets koordinatsystem och omgivningen. En EPS-fil innehåller ofta en lågupplöst bild att visa på skärmen.
EPSF exempel %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 5 5 105 105 10 setlinewidth 55 10 moveto 45 45 rlineto -45 45 rlineto -45-45 rlineto closepath stroke som bl.a. kan infogas i ett MSWord-dokument:
Exempel på DSC %!PS-Adobe-3.0 %%Pages: 1 %%DocumentFonts: Helvetica CMEX10 %%+ CMMI10 CMR10 CMR7 CMSY7 %%Orientation: Portrait %%Requirements: fold(z-fold) %%Page: i 1 %%BeginPageSetup %%EndPageSetup %%PageTrailer %%EOF
Mer om Postscript På lektionerna gick vi igenom några exempel på programmering i Postscript och detta exempel på att rita en snögubbe. %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 250 330 340 470 /circle {1 1 moveto 0 1 1 0 360 arc} def % Rita en cirkel och förbered för % nästa med 0,2 radie överlapp % och 0,8 så stor /segment {circle gsave 1 setgray fill grestore stroke 0 1.8 translate 0.8 dup scale} def % Ögat är en punkt ritad med bred pensel /eye {0.5 1.5 moveto 0 0 rlineto 0.2 setlinewidth 1 setlinecap stroke} def % Näsan är en fylld triangel /nose {0.9 0.9 moveto 2 1 lineto 0.9 1.1 lineto closepath fill} def /snowman {0 setlinewidth segment segment circle gsave 1 setgray fill grestore stroke nose eye} def % Välj skala så att enheten blir 1 cm % Placera snögubben mitt på % ett A4-papper. Linjebredden skalas % med koordinatsystemet men bredd 0 % tolkas som minsta möjliga synliga % bredd 72 2.54 div dup scale 10 12 translate snowman
Postscript och PDF Elektronisk utgivning och dokumentutbyte via dator Dokumentfångst Dokumentlagring Dokumentöverföring Dokumentpresentation
Dokumentlagring Bild skapad med bildläsare och ev. OCR (automatisk teckenigenkänning) Enbart text Standardiserat dokumentformat (internationell standard eller de factostandard) Företagsspecifikt format Dokumentöverföring Post Datorpostbilaga Fildelning Internet
Dokumentpresentation Webbläsare Ordbehandlare Acrobat Papper
PDF Portable document format,»kompilerad Postscript» Saknar Postscripts programmerbarhet Innehåller anteckningar, länkar, index, frimärksbilder m.m. Flera viktiga delar i Acrobat Reader (läsare) ATM (Adobe type manager) Distiller (Postscript till PDF) Exchange (redigerare för PDF) PDFwriter (»skrivardrivrutin») PDFviewer (webbläsartillägg) Capture (OCR) Catalog (sökordssammanställning)
PDF forts. dokument drivrutin Acrobat PDFWriter Netscape PDFviewer utskrift PS-fil PDF-fil Acrobat Distiller Acrobat Exchange Acrobat Reader
PDF visad med Exchange
Exchange forts.
PDF i Navigator