VLabel 1.2 FredFish 137 ---------- VLabel 1.20 Ein Programm zum Drucken kleiner Disk-Etiketten Copyright (C) 1987 by Stephen Vermeulen 3635 Utah Dr. N.W., Calgary, Alberta, CANADA, T2N 4A6 (403) 282-7900 ========================================================================= Dieses Programm darf nur unter der Bedingung weiterverbreitet werden, daß außer den Unkosten für das Kopieren keine Gegenleistung in Geld verlangt wird. Außerdem darf es ohne die schriftliche Erlaubnis des Autors nicht in Verbindung mit anderen Produkten in den Handel gebracht werden. ========================================================================= Einleitung: AMUC (die AMiga Users of Calgary) suchten nach einem Programm zum Herstellen netter kleiner Disk-Labels für ihre monatlich erscheinende `newsletter disk´ und ich riß natürlich mein großes Maul im falschen Moment auf. Das Ergebnis ist dieses kleine Stück Software. Das Programm bedruckt Etiketten (oder Kuverts) mit einer kleinen IFF-Grafik sowie einigen Zeilen Text (maximal 20). Der Text wird in die Grafik einge- bunden und kann in jedem beliebigen Font des Systems ausgegeben werden, wobei jede Zeile einzeln in der Grafik positioniert werden kann. VLabel holt sich den Text entweder aus einem File (SuperBase-ASCII-kompatibel) oder von der Tastatur. Erforderliche Files: Ist VLabel gestartet, so sucht es nach zwei Files im aktuellen Directory, nämlich nach "Label_data" und "Label_logo". Das File "Label_logo" ist eine IFF-Grafik (nur 2farbig) und sollte so groß wie die zu bedruckende Fläche des Etikettes sein. Für Etiketten der Größe 1+7/16 Zoll Höhe zu 2+3/4 Zoll Breite (ca. 3,7 x 6,9 cm) bei Ver- wendung eines EPSON-kompatiblen Druckers mit der Einstellung 120 dpi horizontal und 72 dpi vertikal ergibt sich für die Grafik eine Größe von 330 x 104 Pixel (Breite zu Höhe). Solch ein Bild kann leicht mit einem Malprogramm ( wie z.Bsp. EXPRESS PAINT) erzeugt werden, indem man es auf einer `page´ editiert, welche etwas größer als das entgültige Bild ist, und dann mit der Option `SAVE BOXED´ nur die Fläche von 330 x 104 ab- speichert. Die Grafik kann aber grundsätzlich jede Größe haben (solang diese wegen der Probleme mit dem Blitter unterhalb 1000 x 1000 Pixel liegt); die einzige Einschränkung ist die Zweifarbigkeit. Das "Label_data"-File ist ein reines ASCII-File und enthält die Para- meter für den Ausdruck des Textes innerhalb der Grafik. Das Format dieses Files ist: Ncom com1 com2 ... comN n x_1 y_1 fontname1.font font_size1 x_2 y_2 fontname2.font font_size2 x_3 y_3 fontname3.font font_size3 . . . x_n y_n fontnameN.font font_sizeN Ein Beispiel könnte so lauten: 3 27 74 12 3 200 20 topaz.font 11 200 40 diamond.font 20 100 90 emerald.font 18 Die erste Zeile bestimmt den Abstand zwischen zwei Ausdrucken und ist drucker-spezifisch (da meines Wissens COMMODORE kein `micro feed command´ in seine Druckertreibern implementiert hat). Die erste Zahl der Zeile gibt die Anzahl der Bytes des Befehlsstrings für den Abstand an. In unserem Beispiel haben wir für den EPSON-kompa- tiblen Drucker also 3 Bytes, nämlich 27 = ASCII-Wert für < ESC > 74 = ASCII-Wert für < "J" > = einmaliger Zeilenvorschub um n/216 Zoll 12 = n Dieser Befehlsstring kann jedoch bis zu 20 Bytes enthalten. Gibt man aber eine Länge von Null an, so wird kein Zeilenvorschub zwischen den einzelnen Ausdrucken durchgeführt. Die nächste Zeile enthält nur eine Zahl: sie gibt die Anzahl der Text- zeilen an, welche in die Grafik hineingedruckt werden sollen. Will man keinen Text ausdrucken, setzt man hier eine Null ein, womit das File auch schon beendet ist. Andernfalls folgen nun N Zeilen, beginnend mit zwei Zahlen. Diese beiden Werte stellen die x- und y-Koordinate des ersten Zeichens des Textstrings dar. Danach folgen jeweils der Fontname und die Fontgröße (Höhe in Pixel). Hierbei kann jeder Amiga-Font aus dem jeweiligen `fonts´-Directory ver- wendet werden. Ist ein Font einmal nicht verfügbar, so wird der Default- Font (meist wohl "topaz8") benutzt. Start von VLabel: VLabel kann mit den CLI-Befehlen `VLabel´ oder auch `VLabel filename´ gestartet werden. Wird VLabel ohne jeglichen Filenamen gestartet, so liest es die Files "Vlabel_logo" und "VLabel_data" ein und fragt anschließend nach der Anzahl N der Textzeilen. Sind diese alle eingegeben, so wird ersteinmal ein Etikett ausgedruckt, das Papier um einen eingestellten Abstand weiterbewegt und angehalten. Nun kann man den Ausdruck einschließlich des Abstandes begutachten und noch Änderungen vornehmen. In diesem Modus müssen die Textstrings nicht in Anführungszeichen gesetzt werden und können trotzdem beliebig viele Leerzeichen enthalten. Ist VLabel in Verbindung mit einem Filenamen gestartet worden, so liest es ebenso die Files "Label.logo" und "Label.data" ein und gibt das Inputfile auf dem Schirm aus. Anschließend druckt es die Grafik mit den Texten dieses Files aus. Da der AMUC sich ein Programm wünschte, welches problemlos mit SuperBase zusammenarbeitet, ergab sich notwen- digerweise folgendes Format für das Inputfile: string1,string2,string3,...,stringN string1,string2,string3,...,stringN . . . string1,string2,string3,...,stringN Jede Zeile dieses Files stellt ein Label dar. Sie muß soviele Strings enthalten, nämlich N an der Zahl, wie im File "Label.data" zuvor definiert wurden. Alle Strings dürfen Leerstellen enthalten und müssen nicht in Anführungszeichen gesetzt werden. dagegen sind Null Strings verboten, da sich VLabel sonst in einer Endlosschleife aufhängt. Fehler: Druckt man eine größere Anzahl von Etiketten mit Hilfe eines Inputfiles, so wird am Schluß oft ein fehlerhaftes Label (="extra garbage label") ausgedruckt. Null Strings sind wie schon erwähnt nicht erlaubt. Voreinstellungen in Preferences: Um "normale" Labels zu erhalten, d.h. solche mit schwarzer Schrift auf weißem Hintergrund, muß man in Preferences den IMAGE TYPE auf POSITIV sowie BLACK+White einstellen. Das gegenteilige Ergebnis erzielt man mit Negative und BLACK+WHITE. Ein Drucker-Spezifisches Problem: Da die Rastport-Dumping-Routine den Output in Chunks von 8 Pixeln Höhe aufteilt, sollte die Höhe der Grafik möglichst ein ganzes Vielfaches von 8 sein - ansonsten werden einige Leerzeilen ausgegeben. Das mag störend sein oder auch nicht: mit der integrierten Vorschub-Einstellung läßt sich der Ausdruck auch etwas weniger hoch gestalten und dafür der Abstand zwischen den Labels vergrößern. dtsch.v.K.-H.Hensel, 18.07.88