Verschlungene Pfade

Der lange Weg der Druckdaten

01.10.2001
Welche Wege und Umwege nimmt eine Datei, bis ihr Inhalt farbig oder schwarz auf weiß zu Papier gelangt?

Programme, die unter Linux druckbaren Output erzeugen möchten, kommen um die von Adobe entwickelte Seitenbeschreibungssprache PostScript nicht herum. Ihre Spezialität ist es, in einer eigenen Syntax all das exakt zu beschreiben, was als Grafik-Objekt auf einem Blatt Papier Platz findet – Linien, Bögen, Flächen, Punkte, Füllungen, Buchstaben in allen denkbaren Variationen. Fonts, Strichstärken, Farbtöne und -verläufe, Anordnung, Rotation, Skalierung, Verzerrung und viele andere Manipulationen der Darstellung sind machbar. PostScript kann sogar noch mehr als das: Es ist eine vollständige Programmiersprache, mit der sich notfalls die Zahl Pi berechnen, eine Festplatte formatieren oder eine Datei erzeugen lassen. Die neueste Version, PostScript 3, kann sogar "fremde" Formate wie JPEG oder TIFF in ihre Dateien einbetten.

Vorzeiten

Als PostScript 1985 auf den Markt kam, war das eine große Erleichterung für Anwendungsprogrammierer. Denn zuvor mussten sie für jede ihrer Applikationen und für jedes darin unterstützte Drucker-Modell einen eigenen Geräte-Treiber schreiben. Mit der neuen, zwischen Applikationen und Druckern angesiedelten PDL ("Page Description Language") galt es nur noch, alles, was für die Darstellung auf Papier vorgesehen war, in dieser Sprache auszudrücken. Die Aufgabe, aus dem Format der Anwendung PostScript zu erzeugen, fiel einem "Treiberprogramm" zu. Die Druckerhersteller waren dafür verantwortlich, dass ihre Geräte die PostScript-Anweisungen richtig umsetzten.

Im Laufe der Zeit kamen weitere Grafik- oder Seitenbeschreibungssprachen als Konkurrenz dazu. Denn Adobe verlangte für PostScript-Interpreter in den Druckern Lizenzgebühren. Verschiedene Hersteller wollten diese einsparen und entwickelten eigene PDLs.

Die wichtigsten sind heute PCL ("Print Control Language") von Hewlett-Packard, ESC/P ("Epson Standard Code for Printers") und GDI ("Graphical Device Interface") von Microsoft. Diese unterscheiden sich erheblich voneinander und sind weitgehend inkompatibel.

In professionellen Umgebungen (Desktop Publishing, PrePress und Publishing) ist PostScript nach wie vor unangefochten die Nummer Eins – genauso wie auf Linux-Systemen (obwohl gerade hier längst nicht das gesamte Potential von PostScript ausgeschöpft wird).

PostScript kann selbstverständlich auch "von Hand" programmiert werden. Listing 1 zeigt ein einfaches Beispiel. Wer es als Text-Datei abspeichert, kann es direkt an einen PostScript-fähigen Drucker schicken und ausdrucken. Am Bildschirm lässt sich die Datei mit verschiedenen PostScript-Viewern anschauen. gimp, ghostview oder gv sind dafür gleichermaßen geeignet. Zu sehen bekommt man (auf Bildschirm oder Papier) die Darstellung aus Abbildung 1.

Abbildung 1: Listing 1, grafisch dargestellt

Listing 1

Ein Schnipsel PostScript-Code

%!PS            % Die ersten zwei Zeichen müssen immer '%!' sein.
 % zwei Vierecke % '%' leitet Kommentare ein. Der virtuelle
 100 100 moveto  % PS-Zeichenstift soll zur Koordinate (100,100)
 0 50 rlineto    % gehen, dann eine Linie 0 Einheiten nach rechts und
 50 0 rlineto    % 50 nach oben ziehen, weiter 50 nach rechts (0 nach
 0 -50 rlineto   % oben), zu guter Letzt 50 Einheiten senkrecht nach unten
 closepath       % und diesen "Pfad" schließen,
 .7 setgray      % als Farbton auf 70%-igen Grauwert schalten und
 fill            % das entstandene Viereck mit dieser Farbe füllen.
 %               % Das erstes Viereck ist fertig; die naechste Figur
 160 100 moveto  % wird auf analoge Weise konstruiert,
 0 60 rlineto    % allerdings mit z. T. "schiefen"
 45 10 rlineto   % Linien und mit einem dunkleren Grau gefüllt
 0 -40 rlineto   % (20% ist als PostScript-Farbwert
 closepath       % dunkler als 70%).
 .2 setgray      %
 fill            % Der abschließende Befehl "showpage" weist
 showpage        % den Drucker zum Seitenausstoß an.

Mit Zeilendruckern fing es an

Heutige Laserdrucker sind "Seitendrucker": Sie setzen das komplette Bild einer Seite zuerst pixelweise als Bitmap komplett in ihrem Arbeitspeicher zusammen, bevor dieses zu Papier gebracht wird. Ihre "Eigenintelligenz" lässt sie sogar als selbstständige Knoten in TCP/IP-Netzen fungieren.

Frühere Drucker waren "Zeilendrucker"; daher auch der Begriff "Line Printer". Grafik im heutigen Sinne war nicht druckbar, Drucker konnten nur Buchstaben und andere Zeichen wiedergeben und dabei maximal vier verschiedene Fonts benutzen. Seiten wurden Buchstabe für Buchstabe gedruckt (d. h., mechanisch auf das Medium gehämmert), wobei eine zickzackgefaltete Papierschlange aus einem Karton gezogen und durch den Drucker geführt wurde. Die Geräte waren direkt (meist über eine serielle Schnittstelle) am Host angeschlossen. "Netzwerk"-Drucken bedeutete, die Druckdatei von einem Host an einen anderen zu übertragen, damit dieser sie an einem bei ihm angeschlossenen Gerät ausgab.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Unter Druck
    Um unter Linux Drucker einzurichten, hilft es, ein paar Dinge über das Druckertreiber-System und seine Wurzeln zu wissen.
  • ESP Ghostscript 7.05.1-1 freigegeben
    Insider haben es lange erwartet -- seit gestern ist es da:das ESP Ghostscript 7.05.1-1
  • Zu Befehl: gs & psutils
    PostScript ist eine plattformunabhängige Programmiersprache, in der Texte und Grafiken an Drucker übermittelt werden. Neben den bekannten Viewern für diese Formate gibt es auch auf der Kommandozeile viele nützliche und schnelle Tools, die .ps-Dateien bearbeiten und anzeigen. Wir zeigen, wie Sie mit Ghostscript und den PSUtils "geistreich" arbeiten.
  • Drucker-Grundlagen
    Die Druckerverwaltung unter Linux ist ein komplexes System. Wer sich in die Details einarbeitet, stößt auf Queues, PostScript, Druckertreiber und Filter. Dank der automatischen Hardware-Erkennung in Yast bleibt der Anwender davon aber weitgehend verschont, ein neuer Drucker ist unter SuSE Linux flott eingerichtet.
  • 10 Laserdrucker im Test
    Schnell, gestochen scharf und billig sollen Ausdrucke sein - Attribute, die insbesondere Laserdruckern zugeschrieben werden. Zum perfekten Ausdruck gehört aber mehr, vom Drucksystem bis hin zum Filter muss alles optimal zusammenspielen.
Kommentare

Infos zur Publikation

LU 01/2015: E-Books im Griff

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

PCLinuxOS Version 2014.08 "FullMonty" Umstellung auf deutsch
Karl-Heinz Welz, 19.12.2014 09:55, 3 Antworten
Hallo, liebe Community, ich bin 63 Jahre alt und möchte jetzt nach Jahrzehnten Windows zu Linux...
ICEauthority
Thomas Mann, 17.12.2014 14:49, 2 Antworten
Fehlermeldung beim Start von Linux Mint: Could not update ICEauthority file / home/user/.ICEauth...
Linux einrichten
Sigrid Bölke, 10.12.2014 10:46, 5 Antworten
Hallo, liebe Community, bin hier ganz neu,also entschuldigt,wenn ich hier falsch bin. Mein Prob...
Externe USB-Festplatte mit Ext4 formatiert, USB-Stick wird nicht mehr eingebunden
Wimpy *, 02.12.2014 16:31, 0 Antworten
Hallo, ich habe die externe USB-FP, die nur für Daten-Backup benutzt wird, mit dem YaST-Partition...
Steuern mit Linux
Siegfried Markner, 01.12.2014 11:56, 2 Antworten
Welches Linux eignet sich am besten für Steuerungen.