Ziele
Das META-Format wird für die Speicherung und den Transport von Raster- und Schneidedaten von der RIP-Komponente (Render) zur Druckkomponente (Spooler) verwendet. Das META-Format muss die folgenden Anforderungen erfüllen:
-
Streaming-Transportformat: Ermöglicht es der RIP-Komponente, die von ihr verarbeiteten Daten direkt an die Druckerkomponente zu senden, die sofort mit dem Druck beginnen kann, ohne dass der Datenstrom vollständig ist.
-
Speicherformat mit wahlfreiem Zugriff: Ermöglicht es der Komponente Drucker, mehrere Aufträge effizient zu verschachteln. Vor allem rotierende Dateien benötigen viele Zufallszugriffe
-
Komprimierung: Speichern und Streamen komprimierter Daten zur effizienten Nutzung von Netzwerk und Festplatte.
-
Offene Formate: Das Dateiformat für die Speicherung sollte so weit wie möglich offene Formate verwenden, um eine einfache Wiederverwendung in anderen Komponenten (einschließlich externer Komponenten) zu ermöglichen.
Format speichern
Die META-Daten werden in einem Ordner innerhalb des Auftragsordners namens META gespeichert. Der Ordner enthält die folgenden Dateien:
Info.xml |
Die Infodatei ist eine XML-Datei, die alle Eigenschaften zur Beschreibung der Auftragsdaten enthält. Sie enthält allgemeine Informationen zur Einrichtung. Definition der nachstehenden Schlüsselwörter im „META Job-Wörterbuch“ |
00001.xml |
Ein XML-Wörterbuch, das die Seiteninformationen für Seite 1 enthält. Definition der nachstehenden Schlüsselwörter im „META-Seiten-Wörterbuch“ |
00001.bmp |
Die Vorschau von Seite 1 im Windows BMP-Format. Die aktuelle Implementierung ist auf 24 Bit RGB beschränkt. |
00001.rtl |
Halbtondaten im HP/RTL-Format. Diese Datei ist nur für Drucker und nicht für Schneideplotter verfügbar. Die derzeitige Implementierung ist auf planare, verschachtelte RLE-komprimierte Zeilen beschränkt. Die Anzahl der Bits pro Pixel ist auf 1, 2, 4 und 8 beschränkt. Siehe Implementierungsgrenzen unten: HP-RTL-Implementierung. |
00001.idx |
Indexdatei, die die Offsets pro Zeile in der *.rtl-Datei enthält und angibt, wo der Befehl Esc *b der ersten Ebene/des ersten Kanals dieser Zeile beginnt. Diese Indexdatei enthält 64-Bit-Zeiger und wird von der Druckerkomponente verwendet, um einen schnellen Zufallszugriff auf die Rasterdaten für Verschachtelungszwecke zu erhalten. Diese Datei ist erforderlich, wenn Rasterdaten vorhanden sind. |
00001.plt |
Schnittbefehle im HPGL/2-Format. Die Datei ist nur für Schneidegeräte und Hybridgeräte verfügbar. Die derzeitige Implementierung unterstützt nur eine kleine Teilmenge des HPGL/2-Dokuments (siehe unten): HPGL/2-Implementierung. |
00002.* |
Jede Seite besteht mindestens aus der Seite XML mit der 5-stelligen Seitenzahl. Die anderen Dateien sind optional und werden nur benötigt, wenn sie innerhalb der Seiten-XML referenziert werden. |
META Job-Wörterbuch
Tag |
Tag |
Beschreibung |
Job |
Wörterbuch mit den folgenden Stichwörtern |
|
Name |
Anzeigename des Auftrags |
|
Warteschlangenname |
Name der Warteschlange |
|
Nutzername |
Name des Benutzers |
|
PrintMode |
Name des Druckmodus (informativ) |
|
Referenz |
Name des verwendeten Normalisierungsprofils (informativ) |
|
Kopien |
Anzahl der auszugebenden Kopien |
|
Seiten |
Anzahl der Seiten in diesem Auftrag, ist nur verfügbar, wenn der Auftrag vollständig gerendert ist |
|
Medienname |
Name des zu verwendenden Medientyps (informativ) |
|
MediaSize |
Definition der zu verwendenden Mediengröße. Attribute:
|
|
ContentRect |
Der vereinheitlichte Bereich, den das Bild auf allen in Einheit (1/18 Zoll) definierten Seiten einnimmt. Links, Oben, Rechts, Unten im Format %f,%%f,% |
|
Tablettname |
Name des zu verwendenden Fachs |
|
Sammeln Sie |
Boolescher Wert zur Angabe der Zusammenstellung der Kopien |
|
DeviceDriver |
Zu verwendender Treiber |
|
GeräteURL |
URL der Verbindung zum Gerät (Drucker/Schneidegerät), bezogen auf den Standort des Spoolers |
|
DriverSettings |
XML-Treibereinstellungen, die zur Erstellung der META-Daten verwendet werden |
|
Raster |
Boolescher Wert, der angibt, ob der Auftrag Rasterdaten enthält |
|
Vektor |
Boolescher Wert, der angibt, ob der Auftrag Vektordaten enthält |
|
Referenz |
Referenzprofil, das zur Erstellung dieses Auftrags verwendet wurde. Nur vorhanden, wenn ein Referenzprofil verwendet wurde |
|
Auflösung |
Auflösung der Bilddaten in diesem Auftrag in Einheiten von 1/18tel Zoll. Die Auflösung wird in den Attributen „X“ und „Y“ gespeichert. |
META-Seite Wörterbuch
Tag |
Tag |
Tag |
Tag |
Beschreibung |
Seite |
Wörterbuch mit den folgenden Stichwörtern |
|||
Name |
Optional Name der Seite oder Kachel |
|||
MediaSize |
Definition der zu verwendenden Mediengröße. Attribute:
|
|||
Tablettname |
Name des zu verwendenden Fachs |
|||
ContentRect |
Der vereinheitlichte Bereich, den das Bild auf allen in Einheit (1/18 Zoll) definierten Seiten einnimmt. Links, Oben, Rechts, Unten im Format %f,%%f,% |
|||
Futtermittel |
Nach Abschluss der Seite zu verwendende Vorschubmethode. Werte: |
|||
Schnitt |
Boolescher Wert, der angibt, ob das Gerät das Material nach dem Drucken/Schneiden schneiden muss |
|||
Raster |
Wörterbuch zur Beschreibung der Raster-/Halbtondaten dieser Seite. Das Attribut „Datei“ enthält den Namen der Datei, die die RTL-formatierten Rasterdaten enthält. |
|||
Größe |
Abmessungen der Raster-/Halbtondaten in Pixeln. Gespeichert in den Attributen „Breite“ und „Höhe“. |
|||
Position |
Position der Raster-/Halbtondaten in Pixeln relativ zum bebilderbaren Bereich der Seite. Gespeichert in den Attributen „X“ und „Y“. |
|||
Tinte |
Wörterbuch zur Beschreibung der Druckfarben pro Kanal/Ebene. Das Attribut „Count“ definiert die Anzahl der Tinten im Wörterbuch |
|||
Tinte |
Beschreibung des Tintenkanals. Das Attribut „Name“ definiert den Kanalnamen, das Attribut „Punktgröße“ die Punktgewichte im Format %f,%,…. |
|||
Vektor |
Das Attribut „Datei“ enthält den Namen der Datei, die die HPGL/2-Schnittdaten enthält. |
|||
Vorschau |
Das Attribut „Datei“ enthält den Namen der Datei, die die Vorschau der Seite enthält. |
Bei der derzeitigen Implementierung müssen referenzierte Dateien der oben beschriebenen Dokumentstruktur folgen. Daher wird davon ausgegangen, dass die Dateien denselben Basisnamen (Name ohne Erweiterung) wie die Seiten-XML haben und sich neben der Seiten-XML befinden.
HP-RTL-Implementierung
Die folgenden HP-RTL-Befehle werden beachtet und sind obligatorisch:
-
Esc %0A : HP/RTL an der aktuellen Position starten
-
Esc *p x X : Linke Position des Rasters in Pixeln festlegen
-
Esc *p y Y : Definiert die obere Position des Rasters in Pixeln
-
Esc *r width S : Definiert die Breite des Rasters in Pixeln
-
Esc *r height T : Definiert die Höhe des Rasters in Pixeln
-
Esc *r- Ebenenanzahl U : Anzahl der Ebenen / Farbkanäle festlegen
-
Esc *b2M : RLE-Kompression auswählen
-
Esc *r0A : Start Rasterdaten
-
Esc *b byte count V data : Datenzeile pro Ebene/Kanal RLE-komprimiert
-
Esc *b byte count W data : Letzte Ebene/Kanal der Daten der aktuellen Zeile
-
Esc *rC : Ende der Rasterdaten
-
Esc %0B : HP-RTL-Modus beenden HP-RTL-Befehle, die hier nicht aufgeführt sind, werden ignoriert.
HPGL/2-Implementierung
Es gibt zwei Arten von Schneidebefehlen. Die Sets schließen sich gegenseitig aus. Der erste Satz ist für die Ansteuerung von konventionellen Schneideplottern gedacht, die normalerweise mit Sprachen wie HPGL/2 gesteuert werden. Der zweite Satz dient der Definition von Konturinformationen für NC- und Konturschneidsysteme wie i-Cut.
Schneiden auf niedrigem Niveau
Die für X und Y verwendeten Koordinaten sind als absolute Positionen in ganzen Zahlen mit der Schrittauflösung des Schneideplotters definiert.
Befehl |
Parameter |
Beschreibung |
IN |
Initialisieren. Beginnt mit dem Schneiden von Daten |
|
QL |
0 |
Qualitätsniveau. Für das Schneiden auf niedriger Stufe auf 0 setzen |
SP |
Stift # |
Stift/Werkzeug auswählen. 1 = Messer. 2 = Bleistift. |
PU |
Heben Sie das Werkzeug |
|
PD |
Senken Sie das Werkzeug |
|
PA |
X, Y |
Linie auf absolute Position verschieben/zeichnen/ausschneiden |
BS |
Beginn einer Folge von Kurvensegmenten |
|
BE |
Ende einer Folge von Kurvensegmenten |
|
PG |
Seite vorwärts. Ende der Schnittdaten für diese Seite |
Schneiden auf hohem Niveau
Die für X und Y verwendeten Koordinaten sind als absolute Positionen in reellen Zahlen mit 18 Schritten pro Zoll (=Einheit) definiert.
Befehl |
Parameter |
Beschreibung |
IN |
Initialisieren. Beginnt mit dem Schneiden von Daten |
|
QL |
100 |
Qualitätsniveau. Einstellung auf 100 für hochgradiges Schneiden |
SP |
Stift # |
Stift/Werkzeug auswählen. 1 = Messer. 2 = Bleistift. |
PC |
Stiftnummer, Farbe |
Legt die Farbe des Werkzeugs fest. Werkzeug 1 = RGB, Werkzeug 2 = CMYK. Farbwerte im Bereich 0-255. |
PU |
Heben Sie das Werkzeug |
|
PD |
Senken Sie das Werkzeug |
|
PA |
X, Y |
Linie auf absolute Position verschieben/zeichnen/ausschneiden |
BZ |
X1, Y1, X2, Y2, X3, Y3 |
Zeichnen/Ausschneiden einer Bézierkurve |
CO |
ID, Wert |
Übermittelt private Informationen über den Fahrer. Sowohl ID als auch Value sind Ganzzahlen |
PG |
Seite vorwärts. Ende der Schnittdaten für diese Seite |
Streaming-Format
Das Streaming-Format ist ein TCP-Stream, der die Dateien nacheinander in der folgenden Reihenfolge verpackt:
-
Job XML
-
Seite XML von Seite 1
-
RTL-Daten (falls vorhanden)
-
Indexdaten (falls vorhanden)
-
HPGL/2-Daten (falls vorhanden)
-
Vorschau
-
-
Seite XML von Seite 2
-
usw.
-
Jede Datei wird als eine Folge von Chunks gesendet. Mit den Chunks kann der Absender mit dem Senden beginnen, ohne die endgültige Größe zu kennen. Der letzte Chunk einer Datei enthält eine EOF-Markierung. Jeder Chunk folgt dem folgenden Format im i386-Format (benötigt also Swaps auf PowerPC):
Magie |
Uint32 |
0x4D455441 (‚META‘) zur Überprüfung der Gültigkeit der Chunk-Struktur |
Seq. |
Uint32 |
Sequenznummer des Chunks. Beginnt mit 0. |
Typ |
Uint32 |
|
Größe |
Uint32 |
Größe der auf diesen Chunk folgenden Daten |
Daten |
Wenn der Typ 1 ist, dann der Name der Datei. Ein leerer Name bedeutet, dass die letzte Datei gesendet wurde. Wenn der Typ 2 oder 3 ist, wird die durch Größe angegebene Datenmenge gesendet. |