Treiber UI XML

Treibereinstellungen / Dynamische UI

Zielsetzung und Verwendung

Jeder Treiber und jede Workflow-Komponente enthält ein XML-Skript. Dies beschreibt die Benutzeroberfläche in der Dashboard- oder RIP-Anwendung (Front-End).

Das Front-End verwendet dieses XML, um eine Benutzeroberfläche (UI) zu erstellen, damit die Benutzer die Einstellungen ändern können. Diese Benutzeroberfläche besteht aus verschiedenen Elementen, wie z. B. Kontrollkästchen, Pop-ups, Gruppenfelder usw.

Natürlich müssen wir sicherstellen, dass wir:

  • Anzeigen der aktuellen Einstellungen in der Benutzeroberfläche
  • Ändern Sie die aktuellen Einstellungen entsprechend den Änderungen auf der Benutzeroberfläche

Aber darüber hinaus müssen wir das auch:

  • dem Frontend mitteilen, welche Standardwerte in der Benutzeroberfläche verwendet werden sollen
  • bestimmte Einstellungen zu deaktivieren, wenn sie durch das PrinterProfile vorgegeben sind
  • ungültige Kombinationen von Einstellungen mit einem Warnsymbol markieren
  • eine benutzerlesbare Zeichenkette erzeugen, die alle Einstellungen anzeigt (für Fly-by-Texte)

Die XML generiert UI-Elemente für den Benutzer, die es ihm ermöglichen, Einstellungen zu ändern. Wenn der Benutzer einen Dialog schließt, werden die Einstellungen in einer Ergebnis-XML gespeichert.

Mögliche UI-Elemente sind:

  • POPUP
    • ITEM
  • CHECK
  • RADIO
  • EDIT
  • LABEL
  • IMAGE
  • BUTTON
  • GRUPPE
  • TABGROUP
    • TAB

Alle UI-Elemente haben einige mögliche Attribute sowie einen Wert.

Mögliche Attribute:

  • ID (falls sie referenziert werden müssen)
  • Label (ihr Name in der Benutzeroberfläche)
  • selected ( die ID des ITEM, das gerade ausgewählt ist )

Rubriken

Die XML-Datei hat in der Regel die folgende Struktur:

  • UI
    • SEITE
      • Objekte
    • IMAGES
UI

Dieser Knoten kann 1 oder mehrere PAGE-Knoten und die globale IMAGES-Liste enthalten.

SEITE

Ein PAGE-Knoten enthält alle Elemente der Benutzeroberfläche von 1 Komponente. Ein Fahrer wird nur 1 Seite darstellen. Die PAGE-Knoten werden verwendet, um einen Einstellungsdialog mit einer Kopfleiste zu erstellen (siehe Voreinstellungen im Editor oder QueueManual? im RIP).

Attribut Beschreibung
*ID Seiten-ID
LABEL Titel der Seite
IMAGE Bild-ID
IMAGES

Die Bilderliste enthält die Liste der global verfügbaren Bilder, auf die über ihre ID verwiesen werden kann. Weitere Informationen zu IMAGE finden Sie in den Abschnitten OBJECTS.

Jedes IMAGE-Tag hat die folgenden obligatorischen Attribute:

Attribut Beschreibung
*ID Seiten-ID

Der Wert des Tags enthält die hexadezimal kodierten Daten des Bildes im PSD-Format.

Objekte

Alle Tags der Benutzeroberflächenobjekte haben keine XML-Werte. Das bedeutet, dass jedes Objekt Kinder haben kann, wie zum Beispiel UI-Aktionen.

Alle Benutzeroberflächen-IDs dürfen keine Leerzeichen in ihren Namen enthalten.

Allgemeine Attribute (optional):

Attribut Beschreibung
BREITE Die feste Breite des Objekts in Pixeln
HÖHE Die feste Höhe des Objekts in Pixeln
TAB Die Tabulatorreihenfolge für das Objekt
IMAGE Bild-ID, platzieren Sie ein Bild vor dem LABEL
POPUP

Dieses UI-Element bezeichnet eine Liste von Elementen, aus der eines ausgewählt wird. Seine Elemente sind vom Typ „ITEM“ und haben zwei Attribute (ID und Bezeichnung) und einen Wert. Die ID wird verwendet, um auf sie zu verweisen, die Bezeichnung ist der in der Benutzeroberfläche angezeigte Text, der Wert ist das, was in die Ergebnis-XML eingegeben wird.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel des Popup-Menüs
Wert ID des standardmäßig ausgewählten Elements
ITEM

ITEM-Attribute (Menüpunkte des Popups):

Attribut Beschreibung
*ID Artikel-ID
*LABEL Titel des Artikels
*Wert Direkter Wert für den Artikel
CHECK

Dieses UI-Element stellt dem Benutzer ein Ankreuzfeld zur Verfügung.

Seine Elemente sind vom Typ „CHECK“ und haben zwei Attribute (ID und Bezeichnung) und einen Wert.

Die ID wird verwendet, um auf sie zu verweisen, das LABEL ist der Text, der in der Zusammenfassung der Einstellungen angezeigt wird, wenn auf eine Warteschlange gezeigt wird (FlyBy/Tooltip), der Wert ist das, was in die Ergebnis-XML eingegeben wird.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel des Kontrollkästchens
Wert ‚ON‘ oder ‚OFF‘, gibt an, dass das Kontrollkästchen/die Kontrollgruppe bei der Erstellung aktiviert oder deaktiviert ist. Wenn ein Kontrollkästchenknoten Kinder enthält, wird er zu einer Gruppe mit einer Kontrollbeschriftung.
RADIO

Dieses UI-Element bezeichnet eine Liste von Elementen (dies können Optionsschaltflächen sein, es kann aber auch ein Popup verwendet werden), aus denen eines ausgewählt wird. Die Elemente sind vom Typ „ITEM“ und haben zwei Attribute (ID und Bezeichnung) sowie einen Wert. Die ID wird verwendet, um auf sie zu verweisen, die Bezeichnung ist der in der Benutzeroberfläche angezeigte Text, der Wert ist das, was in die Ergebnis-XML eingegeben wird.

Attribut Beschreibung
*ID Artikel-ID
LABEL Funksteuerungstitel
Wert ‚ON‘ oder ‚OFF‘, gibt an, dass die Optionsschaltfläche/Funkgruppe bei der Erstellung aktiviert oder deaktiviert ist. Wenn ein Optionsfeld Kinder enthält, wird es zu einer Gruppe, die durch ein vorangestelltes Optionsfeld aktiviert oder deaktiviert wird.
SLIDER

Dem Benutzer wird ein UI-Element präsentiert (dies kann ein Schieberegler, aber auch ein Textfeld sein), das einen Mindest- und einen Höchstwert hat, zwischen denen der Benutzer wählen kann.

Das Attribut „ID“ wird verwendet, um sie zu referenzieren, das Attribut „label“ ist der Text, der in der Benutzeroberfläche angezeigt wird, der Wert ist das, was in die Ergebnis-XML eingefügt wird.

Attribut Beschreibung
*ID Artikel-ID
LABEL Schieberegler Titel
MIN Mindestwert für den Schieberegler. Wenn nicht angegeben, wird 0 verwendet.
MAX Höchstwert für den Schieberegler. Wenn nicht angegeben, wird 100 verwendet.
ARROWS EIN“ oder „AUS“, Pfeile nach oben/unten ein- oder ausblenden. Wenn nicht angegeben, wird „ON“ verwendet.
SLIDER ‚ON‘ oder ‚OFF‘, um den eigentlichen Schieberegler ein- oder auszublenden. Standard ist OFF
TYP INTEGER“, „UNITS“, „PERCENTAGE“ oder „ANGLE“. Dies stellt die Einheit des Wertes des Schiebers dar. Wenn nicht angegeben, wird ‚INTEGER‘ verwendet.
Wert Anfangswert des Schiebereglers. Wenn nicht angegeben, wird die Hälfte von MIN + MAX verwendet.
EINGABE

Dem Benutzer wird ein UI-Element (z. B. ein Eingabefeld oder ein Schieberegler) präsentiert, das einen Mindest- und einen Höchstwert hat. Wenn der Benutzer einen Wert außerhalb des Bereichs eingibt, sollte die Schaltfläche OK im Dialogfeld deaktiviert werden.

Das Attribut „ID“ wird verwendet, um sie zu referenzieren, das Attribut „label“ ist der Text, der in der Benutzeroberfläche angezeigt wird, der Wert ist das, was in die Ergebnis-XML eingefügt wird.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel der Box bearbeiten
MIN Mindestwert für das Eingabefeld.
MAX Maximaler Wert für das Eingabefeld.
TYP TEXT“, „INTEGER“, „UNITS“, „PERCENTAGE“ oder „ANGLE“. Dies stellt die Bearbeitungseinheit des Wertes dar. Wenn nicht angegeben, wird ‚TEXT‘ verwendet.
READONLY ON“ oder „OFF“, Standardwert bei Nichtvorhandensein ist „OFF“, das Steuerelement ist editierbar
Wert Anfangswert oder -inhalt des Eingabefeldes.
TEXTAREA

Freier Bereich zur Eingabe von Text oder zur Anzeige von Text (schreibgeschützt). Dies kann ein mehrzeiliges Eingabefeld sein.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel der Box bearbeiten
READONLY ‚ON‘ oder ‚OFF‘, gibt an, ob der Textbereich als schreibgeschützt oder bearbeitbar festgelegt wird. Wenn nicht gesetzt, wird „editierbar“ angenommen.
Wert Anfangswert oder -inhalt des Eingabefeldes.
BUTTON

Das UI-Element Schaltfläche erzeugt eine Drucktaste.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel der Schaltfläche
FOLDERBTN

Stellt eine Schaltfläche zur Auswahl eines Ordners oder einer Datei dar. Mit dieser Schaltfläche wird ein Ordner- oder Dateiselektor angezeigt, der den vom Knoten angegebenen Computer ferngesteuert durchsucht. Dieser Typ kann daher nur mit computergebundenen Knoten verwendet werden.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel der Schaltfläche
TYP FILE“ oder „FOLDER“, gibt an, ob der Browser Dateien oder Ordner auswählt.
FILTER Optionaler Filter für den Browser
Wert Standard-Pfad
IMAGE

Dieses UI-Element wird verwendet, um ein Bild in die Benutzeroberfläche einzufügen.

Sein Attribut „LABEL“ bestimmt das zu verwendende Bild. Wenn der Wert leer ist, wird das Bild in der Liste IMAGES gesucht.

Attribut Beschreibung
*ID Artikel-ID
*LABEL Bildname, die ID aus der globalen Bildliste
GRUPPE

Dieses UI-Element stellt die Elemente der GRUPPE in einem Rahmen dar und zeigt, dass sie zusammengehören.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel des Gruppenrahmens
TABGROUP

Dieses Oberflächenelement ist eine Registerkartengruppe, die mehrere Registerkarten umfasst, die mehrere Oberflächenelemente enthalten können. Die TABGROUP muss mindestens 1 TAB-Element kapseln.

Attribut Beschreibung
*ID Artikel-ID
Wert Die ID der standardmäßig ausgewählten Registerkarte.
TAB

Das Tab-Element stellt die Registerkarte in einer TABGROUP dar und enthält mehrere andere UI-Elemente.

Attribut Beschreibung
*ID Artikel-ID
LABEL Titel der Registerkarte

LAYOUT

Layouts legen fest, wie ihre untergeordneten Elemente in der Benutzeroberfläche platziert werden. Es sind drei Arten von Layouts definiert: horizontale, vertikale und Rasterlayouts. Layouts haben keine ID, so dass sie in Bezug auf die Eigenschaften der Benutzeroberfläche transparent sind. Sie können an jeder beliebigen Stelle in der XML-Datei eingefügt werden und können andere Layouts als Kinder enthalten. Wenn kein Layout verwendet wird, verwendet das System standardmäßig vertikale Layouts. Die gebräuchlichste Art, komplexe Layouts zu definieren, ist die Verwendung von vertikalen und horizontalen Layouts wie im folgenden Beispiel, bei dem zwei Kontrollkästchen in der ersten Zeile, eines in einer einzigen Zeile und die anderen drei in einer weiteren Zeile platziert werden:

<UI>
   <PAGE ID="page1" LABEL="Page One">
      <VERTICAL>
            <HORIZONTAL>
               <CHECK ID="check1" LABEL="Check1"></CHECK>
               <CHECK ID="check2" LABEL="Check2"></CHECK>
            </HORIZONTAL>
            <CHECK ID="check3" LABEL="Check1"></CHECK>
            <HORIZONTAL>
               <CHECK ID="check4" LABEL="Check4"></CHECK>
               <CHECK ID="check5" LABEL="Check5"></CHECK>
               <CHECK ID="check6" LABEL="Check6"></CHECK>
            </HORIZONTAL>
      </VERTICAL>
   </PAGE>
</UI>
HORIZONTAL
Attribut Beschreibung
ALIGN (fakultativ) Legt fest, wie untergeordnete Elemente ausgerichtet werden. Mögliche Werte sind JUSTIFY, CENTER, LEFT, RIGHT

Bei einem horizontalen Layout werden alle untergeordneten Elemente in der Benutzeroberfläche in derselben Zeile platziert.

Ausrichten ( Standard ): Die Oberflächenelemente nehmen die gesamte Breite ein. Zentrieren: Links und rechts von den untergeordneten Elementen (die in der Mitte sitzen und bei Bedarf wachsen) wird ein leerer Bereich hinzugefügt. Links: leerer Raum auf der rechten Seite. Rechts: Leerraum auf der linken Seite hinzugefügt. Klingt selbstverständlich, ist aber erwähnenswert!

VERTICAL
Attribut Beschreibung
ALIGN (fakultativ) Legt fest, wie untergeordnete Elemente ausgerichtet werden. Mögliche Werte sind JUSTIFY, CENTER, LEFT, RIGHT

Bei einem vertikalen Layout werden alle untergeordneten Elemente untereinander angeordnet.

GRID

Ein Rasterlayout verwendet eine Tabelle, die einer HTML-Tabelle ähnlich ist, um Elemente zu platzieren. Das GRID-Tag teilt dem System mit, dass ein Rasterlayout beginnt. Die eigentliche Struktur wird durch zwei weitere Tags bestimmt: ROW und CELL. Das ROW-Tag zeigt an, dass eine neue Zeile von Elementen beginnt. Das CELL-Tag definiert den Inhalt einer Zelle in der Tabelle.

Attribut Beschreibung
colspan (Optional) Legt fest, wie viele Spalten die aktuelle Zelle umfassen soll.
Zeilenspanne (Optional) Legt fest, wie viele Zeilen die aktuelle Zelle umfassen soll.

Aktionen

In der XML können wir auch Aktionen definieren, die die UI-Elemente betreffen. Eine Aktion wird auf der Ebene eines Objekts definiert, das von dieser Aktion kontrolliert wird, indem ein CONDITION-Kinderknoten zu diesem hinzugefügt wird. Eine Bedingungsrichtlinie besteht aus drei Elementen, die die Aktion und die Bedingung, unter der diese Aktion ausgeführt wird, festlegen.

Tag CONDITION

Attribut Beschreibung
*Staat Gibt die Aktion an, die mit dem Objekt durchgeführt werden soll
*Eigenschaft Der Name der Eigenschaft, die ausgewertet werden soll
*Wert Der Wert der Immobilie

Die Benutzeroberfläche verfügt über ein Eigenschaftssystem. Dies gibt den Benutzern die Möglichkeit, den Wert eines beliebigen UI-Controls, das in derselben XML definiert ist, zu adressieren (auch auf verschiedenen Seiten, wenn die Komponente mehr als eine Seite hat). Ein Eigenschaftsname ist eine durch Punkte getrennte Zeichenfolge, die die Namen aller Elemente vom Seitenelement bis zum gewünschten Element enthält. Die letzte Zeichenfolge ist die eigentliche Eigenschaft dieses Steuerelements.

Es gibt mehrere Steuereigenschaften:

Wert Der tatsächliche Wert des Steuerelements, wie oben in den Definitionen angegeben
sichtbar EIN, wenn das Steuerelement sichtbar ist, sonst AUS
unsichtbar EIN, wenn das Steuerelement unsichtbar ist, sonst AUS
aktiviert EIN, wenn die Steuerung aktiviert ist, sonst AUS
deaktiviert EIN, wenn die Steuerung deaktiviert ist, sonst AUS
Auswahl Gibt die ID des ausgewählten ITEMs eines POPUPs anstelle des aktuellen Wertes zurück (für andere Arten von Steuerelementen wird der Wert zurückgegeben)

Der Zustand gibt an, welche Aktion ausgeführt werden soll, wenn der zur Laufzeit zurückgegebene Eigenschaftswert gleich dem in der Bedingung angegebenen Wert ist. Mögliche Maßnahmen:

sichtbar das Steuerelement wird nur angezeigt, wenn die Bedingung erfüllt ist
unsichtbar das Steuerelement wird ausgeblendet, wenn die Bedingung erfüllt ist
aktiviert die Kontrolle wird nur aktiviert, wenn die Bedingung erfüllt ist
deaktiviert die Steuerung wird deaktiviert, wenn die Bedingung erfüllt ist
Wert erhält der Wert des Steuerelements den Wert der Eigenschaft. Nützlich, um etwas in einem Edit Control anzuzeigen. Der Wert CONDITION wird ignoriert.
Auswahl für POPUPs verwendet: das POPUP wählt das Element aus, das dem Laufzeitwert der Eigenschaft entspricht. Der Wert CONDITION wird ignoriert.

Im folgenden Beispiel wird das Text-Editier-Steuerelement mit dem Namen „Edit1“ nur aktiviert, wenn das Kontrollkästchen „check1“ markiert ist, während das Editier-Steuerelement „Edit1“ aus „Group2“ (beachten Sie, dass wir dieselbe ID verwenden können, solange sie unterschiedliche Eltern haben) den Wert der Ordner-Schaltfläche „Folder1“ (den ausgewählten Pfad) anzeigt.

<PAGE ID="Page">
<GROUP ID="Group" LABEL="Group">
     <CHECK ID="check1" LABEL="Check"></CHECK>
     <INPUT ID="Edit1">
          <CONDITION state="enabled" property="Page.Group.check1.value" value="ON">
     </INPUT>
     <FOLDERBTN ID="Folder1" value="C:\"></FOLDERBTN>
</GROUP>
<GROUP ID="Group2" LABEL="Group">
     <INPUT ID="Edit1">
          <CONDITION state="value" property="Page.Group2.Folder1.value" value="">
     </INPUT>
</GROUP>

</PAGE>
System der Einstellungen

Das UI-Host-System bietet die Möglichkeit, Einstellungen für die Schnittstelle zu laden und zu speichern. Wenn die UI-Objekte bereits angezeigt werden (beim Laden von Einstellungen), dann zeigen sie automatisch die neu geladenen Einstellungen an.

Die Einstellungen werden in einer XML-Datei gespeichert. Ziel ist es, diese Einstellungsdateien sauber, klein und für den Menschen leicht lesbar zu halten, daher gelten die folgenden Regeln:

  • Objekte, die keine Werte speichern, wie z. B. ein STATIC, werden nicht in der Einstellungsdatei gespeichert.
  • Ein Objekt speichert seinen Wert als den Wert eines Tags, das mit der ID des Objekts benannt ist.
<PAGE> 
<GROUP ID="Group1"> 
    <INPUT ID="TextEdit1" value="test text"></INPUT>
</GROUP>
<GROUP ID="Group2">
     <STATIC ID="static1" LABEL="Text"></STATIC>
</GROUP>
<CHECK ID="check" value="OFF">

    <INPUT ID="TextEdit2" value="test text"></INPUT>
</CHECK>
<CHECK ID="check2" value="OFF">
<RADIO ID="r1" value="OFF">
<RADIO ID="r2" value="ON">
</PAGE>

generiert die Einstellungen:

<Group1> 
    <TextEdit>test text</TextEdit>
</Group1>
<check2>OFF</check2>
<r2>ON</r2>
  • Die Baumstruktur der Benutzeroberfläche wird beibehalten.
  • Gruppen, die keine Objekte haben, die Einstellungen erzeugen können, werden überhaupt nicht gespeichert. ( Gruppe2 oben )
  • Kontrollgruppen werden nur gespeichert, wenn sie markiert sind. Wenn in dem obigen Beispiel die Kontrollgruppe „check“ den Wert ON hätte, würden die Einstellungen enthalten:
<check>
   <TextEdit2>test text</TextEdit2>
</check>
  • Optionsfelder speichern nur das aktive Objekt, in unserem Fall r2.
Beispiel

Ein Beispiel xml: MARKER 1

Diese XML-Datei führt zu dieser Benutzeroberfläche:

ui_example_1

Die Standardwerte werden ausgefüllt.

ui_example_2

Wenn das Medien-Popup angeklickt wird, werden seine ITEMS sichtbar. Im Beispiel setzt die Implementierung der Benutzeroberfläche “ (!)“ hinter alle Auswahlmöglichkeiten, was zu ungültigen Treibereinstellungen führt. Wenn der Benutzer in diesem Popup „Normalpapier“ auswählt, werden die Einstellungen ungültig (und die Schaltfläche OK wird ausgeblendet).

Bei dieser Implementierung werden die widersprüchlichen Einstellungen durch die vorangestellten Symbole gekennzeichnet:

ui_example_3

Der Benutzer kann diese fehlerhafte Einstellung korrigieren, indem er entweder die DPI- oder die Medieneinstellung ändert.

Um zu wissen, welche Einstellungen in Konflikt stehen, enthält die XML CONSTRAINS.

EINSCHRÄNKUNGEN

Die Elemente in einer CONSTRAINS-Tabelle werden als „CONSTRAIN“ bezeichnet und haben Attribute, die paarweise auftreten:

IDx und SEL_ID_x, wobei das x eine Zahl ist.

Wenn die aktuelle Auswahl mit einem CONSTRAIN übereinstimmt (alle Elemente haben die Werte eines CONSTRAIN), dann ist die Kombination ungültig. In dem Beispiel ist die Zeile mit:

ID1=“DPI“ SEL_ID_1=“DPI_720″ ID2=“Media“ SEL_ID_2=“Media_Plain“

bedeutet, dass die Einstellungen ungültig sind, wenn das Element „DPI“ auf =“DPI_720″ und das Element =“Media“ auf =“Media_Plain“ gesetzt ist. ( diese Kombination von DPI und MEDIA )

containerString

Wenn ein UI-Element das Attribut containerString hat, sollte der Eintrag in der Ergebnis-XML für dieses Element nicht direkt der ITEM-Wert sein. Stattdessen sollten die „$#“-Sequenzen des containerString durch den Wert des gewählten ITEM ersetzt und die resultierende Zeichenkette in die Ergebnis-XML eingetragen werden.

Beispiel:

containerString=“HEATERS=$# $#“

ITEM-Wert = „123“, dann sollte die Ergebnis-XML „HEATERS=123 123“ enthalten.

Ergebnis XML

Die Ergebnis-XML (die Kurzversion der aktuellen Einstellungen) besteht aus den Elementen ID und dem Wert des ausgewählten ITEM. Wenn das Attribut containerString vorhanden ist, wird diese Zeichenkette verwendet, wobei die $#s durch den Wert des ausgewählten ITEM ersetzt werden. Anstelle von „DynamicUI“ wird die Bezeichnung „DS“ verwendet. MARKIERUNG 2

XML-Schema

Das XML-Schema, an das die XML angepasst werden kann, befindet sich unter http://www.aurelon.com/XML/Driver_Settings.xsd.

Das XDS kann auch von hier heruntergeladen werden: Driver_Settings.xsd.

Beispiel

Treibereinstellungen (vom Treiber)
<?xml version="1.0" encoding="UTF-8" ?>
<DriverSettings>
   <POPUP ID="DPI" label="DPI:" selected="DPI_720">
      <ITEM ID="DPI_360" label="360x360">360</ITEM>
      <ITEM ID="DPI_360_720" label="360x720">slightly better</ITEM>
      <ITEM ID="DPI_720" label="Higest possible">720</ITEM>
   </POPUP>
   <POPUP ID="Media" label="Media:" selected="Media_Canvas">
      <ITEM ID="Media_Plain" label="Plain paper">1010</ITEM>
      <ITEM ID="Media_Canvas" label="Canvas">4000</ITEM>
      <ITEM ID="Media_Coated" label="Coated Paper">1100</ITEM>
   </POPUP>
   <CHECKBOX ID="Cutter" label="Cutter" selected="Cutter_On" changable="true">
      <CHECK ID="Cutter_Off" label="Off">NOCUT</CHECK>
      <CHECK ID="Cutter_On" label="On">CUT</CHECK>
   </CHECKBOX>
   <CONSTRAINS>
      <CONSTRAIN ID1="DPI" SEL_ID_1="DPI_720" ID2="Media" SEL_ID_2="Media_Plain"/>
      <CONSTRAIN ID1="DPI" SEL_ID_1="DPI_360_720" ID2="Media" SEL_ID_2="Media_Plain" ID3="Cutter" SEL_ID_3="Cutter_On"/>
   </CONSTRAINS>
</DriverSettings>
Ergebnis der Treibereinstellungen (zum Treiber)
<?xml version="1.0" encoding="UTF-8" ?>
<DS>
    <DPI>slightly better</DPI>
    <Media>4000</Media>
    <Cutter>CUT</Cutter>
</DS>