GNU a2ps ist ein Tool, um aus einfachen ASCII-Vorlagen (eigentlich "anything 2 postscript") Postscript-Output zu generieren.
Homepage: http://www.inf.enst.fr/~demaille/a2ps
Lizenz: GPL
Beispiel aus der Praxis
Ich habe damit viele Papierausdrucke, die normalerweise auf einem Lineprinter gedruckt wurden, nach postscript gewandelt, um dann per EMail-Anhang zu verschicken. Quelle ist eine Anwendung auf einem UNISYS Server. Deshalb war es auch nötig ein neues encoding bauen, welches die EBCDIC Kodierung umwandelt. Um ein neues encoding verwenden zu können muss dieses in der Datei "encoding.map" (normalerweise unter /usr/share/a2ps/) angemeldet werden:
# Unisys (EBCDIC) unisys unisys
Das encoding selber sieht so aus:
Name: UNISYS Documentation bla bla EndDocumentation # If there is an unknown font requested, use Courier Default: Courier # Automatic spell checking :) Substitute: Times Times-Roman Substitute: Helvetica-Italic Helvetica-Oblique Substitute: Helvetica-BoldItalic Helvetica-BoldOblique Vector: .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclam quotedbl numbersign dollar percent ampersand quoteright parenleft parenright asterisk plus comma minus period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Adieresis Odieresis Udieresis asciicircum underscore quoteleft a b c d e f g h i j k l m n o p q r s t u v w x y z adieresis odieresis udieresis germandbls .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef .notdef space exclamdown cent sterling currency yen brokenbar section dieresis copyright ordfeminine guillemotleft logicalnot hyphen registered macron degree plusminus twosuperior threesuperior acute mu paragraph bullet cedilla onesuperior ordmasculine guillemotright onequarter onehalf threequarters questiondown Agrave Aacute Acircumflex Atilde Adieresis Aring AE Ccedilla Egrave Eacute Ecircumflex Edieresis Igrave Iacute Icircumflex Idieresis Eth Ntilde Ograve Oacute Ocircumflex Otilde Odieresis multiply Oslash Ugrave Uacute Ucircumflex Udieresis Yacute Thorn germandbls agrave aacute acircumflex atilde adieresis aring ae ccedilla egrave eacute ecircumflex edieresis igrave iacute icircumflex idieresis eth ntilde ograve oacute ocircumflex otilde odieresis divide oslash ugrave uacute ucircumflex udieresis yacute thorn ydieresis
Im Wesentlichen sind hier die Umlaute "äöüÄÖÜ" und die Sonderzeichen "{[]}\|" ersetzt.
Zum eigentlichen Ausdruck kommt dann unter LPRng ein input-Filter zum Einsatz:
tr --delete '\032\00'| a2ps -q --encoding=unisys -l 132 -R -c -B --rows=1 --columns=1 --borders=no --prologue=drako_list --margin=10 --statusdict=setpapertray:1 -o - | recode lat1..ibmpc | lpr -Pbuchfs3800 >> ./log 2>&1
Die prologue-Datei macht in diesem Fall abwechselnd eine graue und eine neutrale Linie ~ eben eine typisches lineprinter Design.
Ein Nachteil gegenüber enscript ist, dass das Verhältnis zwischen Zeichenhöhe zur Zeichenbreite nicht variable ist; A4 "seitenfüllende" Ausdrucke sind kaum zu realieren. Dafür läßt sich mit den prologue-Dateien Einiges formatieren.
Fragen
Siehe auch enscript.