Wer suchet, der findet! Mit dem kleinen, aber nichtsdestoweniger genialen Programm "RGHDRUCK" (RGH-DRUCK) des PROFAN-Erfinders Roland G. Hülsmann, kann man jede ANSI- (Text-) Datei ganz einfach mit Tilden (z. B. ~N~=Seitenumbruch, ~F~=Fett, ~T~=Times New Roman etc.) formatieren und alsdann, ohne Umweg über ein Textverarbeitungsprogramm, ausdrucken, natürlich auch auf einem PDF-Drucker. Es lassen sich sogar Grafiken einfügen. Toll!
Ich hänge das ältere nette Programm mal an, bevor es im Internet nirgends mehr zu finden sein wird. Die gespoilerte Textdatei sieht dann so aus:
[spoiler]
$ANSI
~>008~
~S~~1~Roland G. Hülsmann - ~D.xx.xxx~ - ~Z:xx Uhr~ - ~#~ -
$DO LOADBMP KPROFAN.BMP,120,300
$DO LOADSIZEDBMP PROFAN.BMP, 520,10 ,120,49
$DO MOVETO 0,70
~G~DRUCK-SYSTEM FÜR ALLE PROGRAMME - 2.0
~H~~F~~U~Sinn und Zweck~f~~u~~T~
RGHDRUCK ermöglicht es, mit jedem Programm, das Textdateien erzeugen kann (ASCII- oder ANSI-
Text), formatierte Windowsausdrucke zu erzeugen, ohne daß eine Textverarbeitung bemüht werden
müßte oder man irgendetwas über den angeschlossenen Drucker wissen muß. Das wird durch die
spezielle Druckersprache ermöglicht.
Da RGH-DRUCK jedes Zeichen einzeln positioniert, sollten die Ausdrucke auf ALLEN Druckern
ziemlich gleich aussehen!
~H~~F~~U~Funktionsweise~f~~u~~T~
Das RGH-Druck-System besteht aus drei Programmen:
~E~ ~F~RGHDRUCK.EXE~f~ ~T~Über dieses Druckprogramm werden die Druckdateien ausgedruckt.
~E~ ~F~RGHLIST.EXE~f~ ~T~Mit diesem Programm kann man den AUsdruck zuvor ansehen.
~E~ ~F~RGHEINST.EXE~f~ ~T~Individuelle Einstellungen der Fonts (nur PROFI-Version).
~E~ ~F~DRWAHL.EXE~f~ ~T~Ruft den Druckereinstellungsdialog auf.
~C~~F~RGHDRUCK <Druckdatei>~f~~T~
Die als Parameter angegebene Datei wird auf den aktuellen Drucker ausgegeben. Soll dem Anwender
vorher die Möglichkeit gegeben werden, den Drucker auszuwählen und einzurichten, ist zuvor
DRWAHL.EXE aufzurufen.
An die Druckdatei sind folgende Bedingungen gestellt: Keine Zeile darf länger als 255 Zeichen
sein. Es muß ein reiner OEM- (= ASCII) bzw. ANSI-Text sein. Lediglich das "~~" wird als Einleitung
für Drucker-Steuerzeichen und -Befehle der RGH-Drickersprache verwandt. Soll es im Text vorkommen,
muß es doppelt eingegeben werden: "~~~~"
Während eine Datei gedruckt wird, erscheint ein Fenster auf dem Bildschirm, das den Namen der
Datei angibt.
Existiert die aufgerufene Datei nicht, geschieht gar nichts. Das sollte das aufrufende Programm
kontrollieren. Fehlt hingegen der Parameter, erfolgt eine Fehlermeldung.
Die RGH-Druckersprache wird in einem eigenen Kapitel beschrieben.
~C~~F~RGHLIST <Druckdatei>~f~~T~
Die als Parameter angegebene Datei wird auf den Bildschirm ausgegeben. Der Anwender kann das
zu druckende Dokument auf diese Weise vorher ansehen. Es wird so angezeigt, wie es gedruckt wird.
(Lediglich durch RGHEINST erzeugte Fontänderungen werden in dieser Version nochnicht berücksichtigt.)
An die Druckdatei sind folgende Bedingungen gestellt: Keine Zeile darf länger als 255 Zeichen
sein. Es muß ein reiner OEM- (= ASCII) bzw. ANSI-Text sein. Lediglich das "~~" wird als Einleitung
für Drucker-Steuerzeichen und -Befehle der RGH-Drickersprache verwandt. Soll es im Text vorkommen,
muß es doppelt eingegeben werden: "~~~~"
Es kann durch das Dokument vorwärts geblättert werden. Weiterblättern von der letzten Seite aus
beendet das Programm. Über einen Menüpunkt kann das Dokument auch gedruckt werden. Dazu wird
RGHDRUCK.EXE aufgerufen.
Existiert die aufgerufene Datei nicht, geschieht gar nichts. Das sollte das aufrufende Programm
kontrollieren. Fehlt hingegen der Parameter, erfolgt eine Fehlermeldung.
Die RGH-Druckersprache wird in einem eigenen Kapitel beschrieben.
~C~~F~DRWAHL~f~~T~
Für Programme in Programmiersprachen, die keinen eigenen Befehl zum Aufruf der Druckereinstellungen
kennen (wie z.B. PROFAN bis Version 7) ist hierfür DRWAHL.EXE zu verwenden.
~N~~S~Roland G. Hülsmann - ~D.xx.xxx~ - ~Z:xx Uhr~ - ~#~ -
$DO LOADBMP KPROFAN.BMP,120,300
$DO LOADSIZEDBMP PROFAN.BMP,520,10,120,49
$DO MOVETO 0,70
~G~DRUCK-SYSTEM FÜR ALLE PROGRAMME - 2.0
~C~~F~RGHEINST~f~~T~
Mit diesem Programm können die 7 Schriften von RGH-Druck individuell angepaßt werden. Jeder der
Schriften kann eine beliebige Schrift in beliebigem Stil zugewiesen werden. Die Größe ist natürlich
nicht veränderbar. Außerdem sollte man Schriften mit fester Laufweite (den obersten 5 in dem Dialog)
auch nur solche mit fester Laufweite zuordnen. Ansonsten sehen die Ausdrucke recht seltsam aus.
~H~~F~~U~RGH-Druckersprache 2.0~f~~u~~T~
Alle Druckerbefehle werden von einer Tilde ("~~") eingeleitet. Ohne Leerraum folgt darauf das Steuerzeichen.
Beendet wird der Druckerbefehl durch eine zweite Tilde (oder das Ende der Zeile). Alles, was zwischen
dem Seuerzeichen und der zweiten Tilde steht, wird ignoriert. Auf diese Weise kann man Platzhalter
oder Kommentare eingeben. Beispiel:
~E~ Nußloch, den ~~D.##.###~~ um ~~Z:## ##~~.~T~
Die Ausgabe wäre:
~E~ Nußloch, den ~D.##.###~ um ~Z:## Uh~.~T~
Hier wurden die Zeichen zwischen den Druckersteuerzeichen ("D", bzw. "Z") und der zweiten Tilde genutzt,
um den Druckerbefehl genausoviel Platz brauchen zu lassen, wie Datum und Zeit beim späteren Ausdruck.
Die Druckersteuerzeichen im Einzelnen:
~E~ N ~T~- Neue Seite
~E~ L ~T~- Landscape (Querformat)
~E~ P ~T~- Portrait (Hochformat)
~E~ = ~T~- minimaler Zeilenabstand (für Schrift M)
~E~ 0 ~T~- kleiner Zeilenabstand (speziell für Schrift S)
~E~ 1 ~T~- Zeilenabstand 1 Zeile
~E~ 2 ~T~- Zeilenabstand 1,5 Zeilen
~E~ 3 ~T~- Zeilenabstand 2 Zeilen
~E~ E ~T~- Elite (10 Punkt, 12 Zeichen/Zoll)
~E~ C ~T~- Courier (12 Punkt, 10 Zeichen/Zoll)
~E~ H ~T~- Helvetica (12 Punkt, 12 Zeichen/Zoll)
~E~ G ~T~- Große Schrift (14.4 Punkt, proportional)
~E~ S ~T~- Schmale Schrift (9 Punkt, 16.66 Zeichen/Zoll)
~E~ M ~T~- Mini-Schrift (6 Punkt, 22 Zeichen/Zoll) [für TimeSystem]
~E~ T ~T~- TmsRmn (10 Punkt, proportional)
~S~~0~Die hier genannten Schriftnamen sind historischer Natur. Die Schriften werden unter Windows durch folgende
True-Type-Schriften dargestellt: Elite und Courier durch "Courier New", Helvetica, Schmal und Mini durch
"Lucida Console" (Windows NT) bzw. "Courier New" (Windows 3.x/Windows 95) und TmsRmn und Groß durch
"Times New Roman".~1~
~E~ F ~T~- Fettdruck einschalten
~E~ f ~T~- Fettdruck ausschalten
~E~ B ~T~- Breitschrift einschalten
~E~ b ~T~- Breitschrift ausschalten
~E~ U ~T~- Unterstreichen einschalten
~E~ u ~T~- Unterstreichen ausschalten
~E~ K ~T~- Kursiv einschalten
~E~ k ~T~- Kursiv ausschalten
~S~~0~Breitschrift ist doppelt so breit, wie normale Schrift.~T~~1~
~N~~S~Roland G. Hülsmann - ~D.xx.xxx~ - ~Z:xx Uhr~ - ~#~ -
$DO LOADBMP KPROFAN.BMP,120,300
$DO LOADSIZEDBMP PROFAN.BMP,520,10,120,49
$DO MOVETO 0,70
~G~DRUCK-SYSTEM FÜR ALLE PROGRAMME - 2.0
~E~ D ~T~- aktuelles Datum in der Form 'TT.MM.JJJJ '
~E~ Z ~T~- aktuelle Zeit in der Form 'HH:MM Uhr'
~E~ # ~T~- aktuelle Seitenzahl im Dokument
~E~ ? ~T~- Ausgabe des Namens des Druckertreibers (für Wartungszwecke)
~E~ * ~T~- alles bis zum nächsten "~~" ist Kommentar
~E~ ^ ~T~- Die folgenden drei (!) Ziffern stellen den Code eines Zeichens dar (z.B. ~~^033~~)
~E~ { ~T~- Die folgenden drei (!) Ziffern stellen die Zeilen/Seite dar. 000 = kein Seitenumbruch.
~E~ > ~T~- Die folgenden drei (!) Ziffern geben den linken Rand (etwa in Zeichen) an.
~T~Um die Tilde selbst zu drucken, muß sie zweimal eingegeben werden. Folgt hinter der
Tilde ein "ungültiges" Zeichen, wird das Zeichen vor der Tilde doppelt ausgegeben.
(Letzteres Feature macht wenig Sinn, kann aber bei der Fehlersuche hilfreich sein.)
Es gibt zwei Direktiven, die jeweils ALLEINE in einer Zeile stehen müssen:
~E~ $ANSI ~T~- schaltet auf den Ansi-Zeichensatz um, wie er in allen Windowsversionen verwandt wird.
~E~ $OEM ~T~- schaltet auf den in DOS verwandten Zeichensatz um.
$ANSI ist voreingestellt.
Folgende Direktive leitet eine Befehlszeile ein. Sie muß ohne führeende Lehrzeichen am Beginn einer Zeile
stehen:
~E~ $DO ~T~- leitet eine Befehlszeile ein. Jeweils mit einem Leerzeichen Abstand folgen Befehl und die
~E~ ~T~ durch Kommata getrennten Parameter.
~H~~F~~U~Die Befehle~f~~u~~T~
Die Koordinaten gehen alle davon aus, daß die Druckseite eine Ausdehnung von 680 * 960 hat, wobei 0,0 die linke obere
Ecke ist.
~E~~F~LOADBMP <1>,<2>,<3>~f~
<1> Name der Bitmap
<2> x-Position
<3> y-Position~T~
Es wird die Bitmap <1> geladen und an Position <2>,<3> gedruckt. Das Programm überprüft nicht, ob die Bitmap auf die
Seite paßt. <2> + Breite darf 640 nicht überschreiten, <3> + Höhe nicht 960.
~E~~F~LOADSIZEDBMP <1>,<2>,<3>,<4>,<5>~f~
<1> Name der Bitmap
<2> x-Position
<3> y-Position
<4> horizontale Ausdehnung (Breite)
<5> verikale Ausdehnung (Höhe)~T~
Es wird die Bitmap <1> geladen und an Position <2>,<3> in der Größe <4>,<5> gedruckt. Das Programm überprüft nicht,
ob die Bitmap auf die Seite paßt. <2>+<4> darf 640 nicht überschreiten, <3>+<5> nicht 960.
Um z.B. für Logos eine gute Qualität zu erzielen, empfiehlt es sich, die Bitmap etwa in der fünffachen Größe des
Ausdrucks vorliegen zu haben. Für das RGH-Logo (s.o.) gilt z.B. folgende Zeile:
~E~$DO LOADSIZEDBMP PROFAN.BMP,520,10,120,49~T~
~N~~S~Roland G. Hülsmann - ~D.xx.xxx~ - ~Z:xx Uhr~ - ~#~ -
$DO LOADBMP KPROFAN.BMP,120,300
$DO LOADSIZEDBMP PROFAN.BMP,520,10,120,49
$DO MOVETO 0,70
~G~DRUCK-SYSTEM FÜR ALLE PROGRAMME - 2.0
~E~~F~MOVETO <1>,<2>~f~
<1> x-Position
<2> y-Position~T~
Es wird die Position für den nächsten Ausdruck auf <1>,<2> eingestellt.
~E~~F~USEPEN <1>,<2>,<3>~f~
<1> Linienart (0 .. 5)
<2> Linienstärke
<3> Farbe (0 .. 15)~T~
Die hier eingestellten Werte werden von den Zeichenbefehlen für die Rahmen bzw. Linien benutzt. Beispiel:
~E~$DO UsePen 1,5,4
~E~$DO Rectangle 10,10,150,100~T~
Linienart:
~E~ 0 - durchgezogen __________
1 - gestrichelt _ _ _ _ _ _
2 - gepunktet .............
3 - Strich-Punkt _._._._._.
4 - Strich-Punkt-Punkt _.._.._..
5 - keine Linie~T~
Die Werte 1 bis 5 sind nur bei einer Strichstärke von 1 sinnvoll.
~E~~F~USEBRUSH <1>,<2>~f~
<1> Art des Pinsels (0 ..
<2> Farbe des Pinsels (0 .. 15)~T~
Der Pinsel wird benutzt, um die Grafiken (RECTANGLE, ELLIPSE, etc.) auszufüllen. <2> ist die benutzte Farbe,
<1> bezeichnet die Art des Pinsels:
~E~ 0 : Transparent (nicht ausgefüllt)
1 : Solid (voll gefüllt)
2 .. 8 : verschiedene Schraffuren:
2 - waagrecht =====
3 - senkrecht |||||
4 - diagonal \\\\\
5 - diagonal /////
6 - kariert #####
7 - diag.kar. XXXXX~T~
Die Schraffur wird in der Farbe <2> ausgeführt.
~E~~F~TEXTCOLOR <1>,<2>~f~
<1> Vordergrundfarbe (0 .. 15)
<2> Hintergrundfarbe (-1, 0 .. 15)~T~
Die Farben für die Textausgabe werden festgelegt. Bei -1 als Hintergrundfarbe ist diese transparent,
d.h. der vorhandene Hintergrund wird genommen. Beispiel:
~E~$DO TextColor 7,-1
Hugo was here!
~T~Die Farben: Schwarz, Blau, Grün, Cyan, Rot, Violett, Braun, Hellgrau,
Dunkelgrau, Hellblau, Hellgrün, Hellcyan, Orange, Rosa, Gelb, Weiß
~E~~F~RECTANGLE <1>,<2>,<3>,<4>~f~
<1>,<2> Linke obere Ecke
<3>,<4> Rechte untere Ecke~T~
Es wird ein Rechteck innerhalb der angegebenen Koordinaten gezeichnet.
~N~~S~Roland G. Hülsmann - ~D.xx.xxx~ - ~Z:xx Uhr~ - ~#~ -
$DO LOADBMP KPROFAN.BMP,120,300
$DO LOADSIZEDBMP PROFAN.BMP,520,10,120,49
$DO MOVETO 0,70
~G~DRUCK-SYSTEM FÜR ALLE PROGRAMME - 2.0
~E~~F~ELLIPSE <1>,<2>,<3>,<4>~f~
<1>,<2> Linke obere Ecke
<3>,<4> Rechte untere Ecke~T~
Es wird eine Ellipse innerhalb des durch die Koordinaten angegebenen Rechteckes gezeichnet.
~E~~F~LINE <1>,<2>,<3>,<4>~f~
<1>,<2> Startkoordinaten
<3>,<4> Endkoordinaten~T~
Es wird eine Linie zwischen den angegebenen Punkten in der mit USEPEN eingestellten Linienart und Strichstärke gezeichnet.
~E~~F~LINETO <1>,<2>~f~
<1>,<2> Endkoordinaten~T~
Es wird eine Linie vom zuletzt gezeichneten (oder mit MOVETO gesetzten) Punkt zum angegebenen Punkt in der mit USEPEN eingestellten
Linienart und Strichstärke gezeichnet.
~E~~F~USEFONT <1>,<2>,<3>~f~
<1> Fontname
<2> Zeichenhöhe - steht hier 0, wird ein Defaultwert für Breite und Höhe genommen.
<3> Zeichenbreite - steht hier 0, wird ein Defaultwert genommen.~T~
Der Schrift für die Ausgabe von Text wird festgelegt. Die übrigen Schrift-Attribute werden über die üblichen
Steuerzeichen eingestellt. Hiermit lassen sich zusätzlich zu den Standard-Schriften alle Schriften einstellen,
die auf dem System vorhanden sind.
~E~~F~ORIENTATION <1>~f~
<1> Ausrichtung der Schrift (in Grad)~T~
Bestimmt den Winkel der Textausgabe. (Funktioniert nur bei True-Type-Fonsts.)
Beliebige Textausrichtungen auf dem Bildschirm und Drucker sind somit möglich!
~N~~S~Roland G. Hülsmann - ~D.xx.xxx~ - ~Z:xx Uhr~ - ~#~ -
$DO LOADBMP KPROFAN.BMP,120,300
$DO LOADSIZEDBMP PROFAN.BMP,520,10,120,49
$DO MOVETO 0,70
~G~DRUCK-SYSTEM FÜR ALLE PROGRAMME - 2.0
~H~~F~~U~Schriftprobe~f~~u~~T~
~2~~U~Die Schriften im 1½fachen Zeilenabstand:~u~
~E~Elite: ~E~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~
~E~Helvetica: ~H~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~
~E~Courier: ~C~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~
~E~Groß: ~G~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~
~E~Schmal: ~S~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~
~E~Mini: ~M~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~
~E~TmsRmn: ~T~~F~fett~f~, ~K~kursiv~k~, ~U~unterstrichen~u~, ~F~~K~~U~fett kursiv unterstr.~f~~k~~u~~1~
~U~Und so sieht der "Quelltext" aus:~u~~M~~=~
+-------------------------------------------------------------------------------------------------------------+
¦o| ~~H~~~~F~~~~U~~Schriftprobe~~f~~~~u~~~~T~~ |o¦
¦o| |o¦
¦o| ~~2~~~~U~~Die Schriften im 1½ Zeilenabstand:~~u~~ |o¦
¦o| ~~E~~Elite: ~~E~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| ~~E~~Helvetica: ~~H~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| ~~E~~Courier: ~~C~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| ~~E~~Groß: ~~G~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| ~~E~~Schmal: ~~S~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| ~~E~~Mini: ~~M~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| ~~E~~TmsRmn: ~~T~~~~F~~fett~~f~~, ~~K~~kursiv~~k~~, ~~U~~unterstrichen~~u~~, ~~F~~~~K~~~~U~~fett kursiv unterstr.~~f~~~~k~~~~u~~ |o¦
¦o| |o¦
~T~Heidelberg, den ~D~ um ~Z~.
~S~Dieses Dokument ist als reiner ANSI-Text erstellt worden. Ausdruck mittels: ~?~
[/spoiler]