Sidst opdateret: 20 Feb, 2025

Titel - PostScript: En klar forklaring

Hvad er PostScript?

PostScript (PS) er et sidebeskrivelsessprog (PDL) udviklet af Adobe Systems i 1982. Det bruges primært i desktop publishing, udskrivning og grafisk design til at beskrive, hvordan tekst og billeder skal gengives på en side.

PostScript: Funktioner og anvendelser

Forklaring af PostScript (PS)

PostScript (PS) er både et sidebeskrivelsessprog (PDL) og et programmeringssprog, som er dynamisk typet og stakbaseret. Sådan betyder det:

1. Hvad er et sidebeskrivelsessprog (PDL)?

Et sidebeskrivelsessprog definerer, hvordan grafik og tekst vises på en udskrevet side eller skærm. PostScript bruges i printere, udgivelsessoftware og digital typesætning til præcist at gengive skrifttyper, billeder og layout.

2. Hvad er et stakbaseret programmeringssprog?

PostScript bruger en stak til at behandle kommandoer, hvilket betyder, at den følger en Last-In, First-Out (LIFO)-tilgang. For eksempel, for at lægge to tal sammen i PostScript, skubber du dem på stakken og kalder derefter en operator til at behandle dem:

10 20 add

Dette skubber 10 og 20 på stakken, derefter popper add-kommandoen dem af og skubber resultatet (30) tilbage på stakken.

3. Dynamisk typet

PostScript kræver ikke eksplicitte typedefinitioner. Variable kan indeholde forskellige typer (tal, strenge, arrays osv.) uden foruddefinerede typer.

4. Anvendelser af PostScript

PostScript bruges hovedsageligt til desktop publishing og elektronisk publishing, hvilket hjælper med at skabe og udskrive dokumenter i høj kvalitet med præcis kontrol over skrifttyper, layout og grafik.

5. Turing-komplet sprog

At være Turing-komplet betyder, at PostScript i teorien kan udføre enhver beregning, givet tilstrækkelig hukommelse og tid. Dette betyder, at det kan bruges til generelle programmeringsopgaver, ikke kun udskrivning.

6. Historie og udvikling

  • Udviklet af Adobe Systems mellem 1982 og 1984.
  • Skabt af John Warnock, Charles Geschke, Doug Brotz, Ed Taft og Bill Paxton.
  • Den seneste version, PostScript 3, blev udgivet i 1997 og tilføjede bedre ydeevne, farvehåndtering og billedkomprimering.

PostScript History

PostScripts oprindelse kan spores tilbage til 1976, da John Gaffney hos Evans & Sutherland udviklede koncepter til et sidebeskrivelsessprog, mens han arbejdede på en grafikdatabase. På samme tid udviklede Xerox PARC laserprintere og havde brug for en standard til at definere sidebilleder. De skabte først Press-formatet, som senere udviklede sig til Interpress i 1978, udviklet af John Gaffney og Martin Newell.

Udviklingen og indflydelsen af PostScript

I 1982 forlod John Warnock og Chuck Geschke Xerox PARC og medstiftede Adobe Systems, hvor de sammen med Doug Brotz, Ed Taft og Bill Paxton udviklede PostScript som et enklere alternativ til Interpress. Det blev kommercielt udgivet i 1984.

Apples rolle i PostScripts succes

I 1983Steve Jobs PostScripts potentiale for Macintosh og licenserede det fra Adobe for $1,5 millioner, plus $2,5 millioner for 20 % af Adobes aktier. Han forsøgte også, uden held, at købe Adobe. Apple og Adobe arbejdede derefter sammen om at optimere PostScript til Apples LaserWriter-printer—lanceret i 1985—hvilket spillede en afgørende rolle i desktop publishing-revolutionen.

Adobes gennembrud i font rendering og hinting gjorde PostScript anvendeligt selv på lavere opløsning 300‑dpi Canon laserprintere. Adobe patenterede ikke denne teknologi for at holde den som forretningshemmelighed.

PostScripts nedgang og arv

I løbet af 1980‑erne og 1990‑erne var PostScript udbredt i laserprintere, men dens høje behandlingskraft og hukommelseskrav gjorde den dyr. Da printere blev billigere og computere kraftigere, erstattede software‑baserede løsninger hardware‑PostScript‑behandling. I 2001 droppede de fleste lavpris‑printere PostScript‑support til fordel for inkjet‑teknologi og software‑rendering.

PostScript forbliver dog dominerende i high‑end professionelle printere, hvor den offloader rendering fra computeren til printeren, hvilket forbedrer ydeevnen. Derudover har PDF (Portable Document Format)—en direkte efterkommer af PostScript—blivet standarden for elektronisk dokumentdistribution.

PostScript Levels

PostScript har udviklet sig gennem forskellige niveauer, som hver forbedrer funktionalitet, ydeevne og effektivitet. Der er tre hovedniveauer:

Udviklingen af PostScript-niveauer

1. PostScript Level 1 (1984)

Den originale PostScript (Level 1, udgivet i 1984) gav brugerne præcis kontrol over sideopsætning med tekst, grafik og billeder, og blev brugt i tidlige laserprintere. Den var dog begrænset til gråtoner, behandlede kompleks grafik langsomt og producerede store filer på grund af manglende billedkomprimering.

  • Den originale version, udgivet af Adobe i 1984.
  • Leverede enheds‑uafhængige sidebeskrivelser for tekst, grafik og billeder.
  • Tillod præcis kontrol over typografi og layout.
  • Brugt i de første PostScript‑printere, inklusive Apple LaserWriter.
  • Begrænsninger:
    • Manglede farvestøtte (kun gråtoner).
    • Langsom behandling af kompleks grafik.
    • Ingen indbygget billedkomprimering, hvilket førte til store filstørrelser.

2. PostScript Level 2 (1991)

PostScript Level 2 (1991) forbedrede ydeevnen, tilføjede farveudskrivning, komprimerede filer, forbedrede skrifthåndtering og accelererede behandling af kompleks grafik.

  • Forbedret ydeevne og hukommelseseffektivitet.
  • Tilføjet understøttelse af farveudskrivning (CMYK og spotfarver).
  • Introduceret datakomprimering for at reducere filstørrelser.
  • Muliggjort forbedret skrifthåndtering (Type 1 og Type 3 skrifttyper).
  • Introduceret Pattern, Forms og Composite Fonts for bedre tekstgengivelse.
  • Hurtigere behandling af kompleks grafik sammenlignet med Niveau 1.

3. PostScript 3 (1997)

PostScript 3 (1997) var en større opdatering med hurtigere rendering, bedre farve, understøttelse af meget højopløsningsudskrivning, forbedrede skrifttyper og udvidede grafikeffekter. Selvom den i dag er mindre udbredt, bruges den stadig i visse high‑end printere.

  • Større opgradering med mere effektiv rendering.
  • Forbedret farvehåndtering med ICC-profiler.
  • Forbedret understøttelse af højopløsningsudskrivning (over 2400 dpi).
  • Bedre skrifthåndtering, inklusiv understøttelse af Multiple Master skrifttyper.
  • Mere gennemsigtighed og skyggeeffekter (bedre grafikrendering).
  • Erstattet af PDF‑baserede arbejdsgange i moderne udgivelse men stadig brugt i high‑end printere.

PostScript in Printing

Before PostScript:

  • Tidlige printere udskrev kun teksttegn, normalt i ASCII, med faste glyffer (f.eks. skrivemaskinetaster, metalbånd eller optiske plader).
  • Dot matrix‑printere introducerede valgfrie skrifttyper og brugerdefinerede glyf‑upload, sammen med grundlæggende rastergrafik via escape‑sekvenser, men krævede specifikke drivere for hver printermodel.
  • Vektorgrafik blev håndteret af plottere (f.eks. HPGL‑baseret), men disse var langsomme, dyre og begrænsede til grafik.

PostScript Printing:

  • Laserprintere kombinerede styrkerne fra dot matrix‑printere og plottere, hvilket muliggør højkvalitets tekst og grafik på samme side.
  • PostScript forenede udskrivningskontrol med et enkelt, enheds‑uafhængigt sprog, der fungerede på tværs af forskellige printere og software.
  • I modsætning til traditionelle printerkontrol‑sprog er PostScript et fuldt programmeringssprog, der tillader præcis dokumentgengivelse.
  • On-the-fly rasterisering: PostScript definerer alt (inklusive tekst) ved hjælp af rette linjer og Bézier‑kurver, hvilket muliggør glat skalering, rotation og transformationer.
  • PostScript‑interpretere, kaldet Raster Image Processors (RIPs), konverterer instruktioner til de nødvendige prikker for det endelige output.

PostScript Font Handling

PostScripts font‑system bruger grundlæggende grafiske former til at skabe skalerbare glyffer, så skrifttyper kan ændres i størrelse uden at miste kvalitet. Font hinting bruges til at sikre, at skrifttyper forbliver klare og læselige selv i små størrelser eller ved lave opløsninger. PostScript‑fonte gemmes i forskellige specialiserede “Type”-formater, som hver tilbyder forskellige muligheder.

PostScript skrifttypeudvikling

PostScript Font System

  • Bruger grafikprimitive til at definere skalerbare glyffer.
  • Font hinting sikrer høj kvalitet rendering, selv ved lave opløsninger.
  • Skrifttyper blev gemt i specialiserede Type‑formater med forskellige muligheder.

PostScript Font Types

PostScript tilbød forskellige font‑formater. Adobes højkvalitets Type 1‑fonte blev oprindeligt licenseret, mens Type 3‑fonte, uden standard‑hinting, blev brugt af andre. Type 2‑ og CFF‑formater reducerede filstørrelser og banede vejen for OpenType. CID‑Keyed‑fonte understøttede store asiatiske tegnsæt og kunne bruge enten Type 1 eller Type 2 strukturer.

  • Type 1 Font (T1):

    • Proprietært komprimeret & krypteret font‑format fra Adobe.
    • Bruges til højkvalitets, hinted fonde.
    • Adobe licenserede oprindeligt Type 1‑teknologien mod betaling.
  • Type 3 Font (T3):

    • Tillod fulde PostScript‑funktioner, men manglede standardiseret hinting.
    • Brugtes af dem, der ikke kunne licensere Type 1‑teknologien.
  • Type 2 Font (T2) & Compact Font Format (CFF):

    • Reducerede fontfilstørrelse for effektivitet.
    • Blev grundlaget for OpenType‑fonte.
  • CID‑Keyed Fonts:

    • Designet til asiatiske (CJK) tegnsæt med store kodningsrum.
    • Kunne bruge Type 1 eller Type 2 for forskellige fontstrukturer.

Font Format Evolution

Apple skabte TrueType‑fonte for at konkurrere med Adobes skrifttyper. Dette fik Adobe til at offentliggøre Type 1‑specifikationen. Senere gik Adobe og Microsoft sammen om at lave OpenType‑fonte, som kombinerede det bedste fra begge og blev den standardfont‑format, vi bruger i dag.

  • TrueType (1991):

    • Udviklet af Apple som en konkurrent til Adobes system.
    • Tvang Adobe til at publicere Type 1‑specen for offentlig brug.
  • OpenType (Late 1990s):

    • Sammen udviklet af Adobe & Microsoft.
    • Forenede Type 1 og TrueType funktionalitet.
    • Blev industriens standard for moderne fonde.

Afslutning af Type 1-support

  • Adobe officielt stoppede support for Type 1‑fonte i januar 2023 til fordel for OpenType.

Portable Document Format (PDF) and PostScript

PDF vs. PostScript

PDF og PostScript er to dokumentformater, der producerer identisk udskrift, fordi de bruger det samme underliggende grafiske system. Den væsentlige forskel ligger i deres struktur: PostScript er et fuldt programmeringssprog, der tillader dynamiske operationer, mens PDF er et mere strømlinet, statisk format designet til effektiv visning og navigation. På trods af disse forskelle er det muligt at konvertere filer mellem de to formater.

Forståelse af PostScript og PDF
  • Lignende billedmodel – Både PDF og PostScript bruger det samme grafiske system, hvilket sikrer identisk udskrift.
  • Hvad er forskellen?
    • PostScript er et Turing-komplet programmeringssprog i stand til dynamiske operationer.
    • PDF er en statisk datastruktur, optimeret for effektiv adgang og navigation, hvilket gør den bedre til interaktiv visning.
  • Gensidig konvertibilitet – PDF’er kan konverteres til PostScript, og omvendt.

The PostScript Language

PostScript er et stak‑baseret programmeringssprog med dynamisk typning, lignende Forth men med Lisp‑lignende datastrukturer. Det bruger Reverse Polish Notation, hvilket kræver omhyggelig hukommelsesstyring. PostScript bruger arrays og dictionaries, håndterer typning ved kørselstid og inkluderer garbage collection. Kommentarer starter med “%”, og programmer begynder typisk med “%!PS”.

  • Turing-komplet & stakbaseret – Ligner Forth, men med dynamisk typning og Lisp‑lignende datastrukturer.
  • Reverse Polish Notation (RPN) – Operatører virker på en stak, hvilket kræver omhyggelig håndtering.
  • Memory Management
    • Bruger scoped memory.
    • Introduceret garbage collection i PostScript Level 2.
  • Data Structures
    • Bruger arrays & dictionaries.
    • Ingen formelle type‑deklarationer—typning håndteres ved kørselstid.
  • Comments & Program Structure
    • % indleder kommentarer.
    • Programmer starter typisk med "%!PS" for at angive PostScript‑format.

How PostScript is Used

  • Primært genereret af software, ikke manuelt skrevet.
  • Kan bruges som et fuldt programmeringssprog til automatisering.
  • Fortolket af printere (RIPs) eller skærmvisere.

Example of a Simple PostScript File

Her er et enkelt eksempel på en PostScript (.ps) fil, der udskriver “Hello, World!” på en side:

%!PS
/Times-Roman findfont 24 scalefont setfont
100 700 moveto
(Hello, World!) show
showpage

Explanation:

  1. %!PS → Identificerer filen som et PostScript-dokument.
  2. /Times-Roman findfont 24 scalefont setfont → Vælger Times‑Roman‑skrifttypen i størrelse 24.
  3. 100 700 moveto → Flytter markøren til koordinaterne (100, 700) på siden.
  4. (Hello, World!) show → Udskriver “Hello, World!” på den angivne position.
  5. showpage → Befaler printeren at udskrive siden.

Du kan gemme dette som hello.ps og åbne det med en PostScript‑viewer (f.eks. GSview, Ghostscript) eller sende det til en PostScript‑printer.

Titel - Hello.ps efter rendering

List of Software to Render PostScript

PostScript Viewers & Interpreters

  1. Ghostscript (Open-source) – Populær interpreter for PostScript og PDF.
  2. GSview – GUI‑frontend for Ghostscript.
  3. MuPDF – Letvægtsviser, der understøtter PostScript og PDF’er.
  4. Xpdf – Open-source PDF‑viser med noget PostScript‑understøttelse.
  5. Evince – GNOME‑dokumentviser, der kan håndtere PostScript‑filer.
  6. Okular – KDE‑dokumentviser med PostScript‑understøttelse.
  7. Apple Preview – Indbygget macOS‑viser, der understøtter PostScript & PDF.

PostScript Printers & Rasterizers

  1. Adobe Acrobat Distiller – Konverterer PostScript til PDF’er i høj kvalitet.
  2. CUPS (Common Unix Printing System) – Håndterer PostScript‑udskrivning på Unix/Linux.
  3. PPR (Printer Production Release) – PostScript‑spooler & renderer.

Vector Graphics & DTP Software

  1. Adobe Illustrator – Kan åbne & redigere PostScript‑filer.
  2. CorelDRAW – Understøtter PostScript til vektorgrafik.
  3. Scribus – Open-source desktop publishing‑software med PostScript‑understøttelse.
  4. Inkscape – Kan importere/eksportere PostScript (via Ghostscript).

Command-Line & Conversion Tools

  1. ps2pdf (del af Ghostscript) – Konverterer PostScript til PDF.
  2. pstopdf (macOS kommandolinjeværktøj) – Konverterer PostScript til PDF.
  3. ImageMagick – Kan gengive PostScript‑filer som billeder.

FAQs

Q1 - Hvad er PS‑filer, og hvordan åbner man dem?

Answer:

PS står for PostScript — en sidebeskrivelsessprog‑fil, der primært bruges til udskrivningsformål. PS‑filer er designet til at forberede digitale grafik‑ og tekstdata til udskrivning i høj kvalitet. Du kan sende en PS‑fil direkte til en printer uden at åbne den i et specifikt program. PS‑filer er dog ikke de mest alsidige, da kun få programmer kan åbne dem direkte.

Da PS er et ældre format, vælger mange at konvertere PS‑filer til PDF‑filer, som er lettere at vise og dele på tværs af forskellige enheder.