Treiber-API

Mit dem PrintFactory Driver SDK können Sie Ihre eigenen Treiber für PrintFactory erstellen. Nach ihrer Validierung können wir sie auf breiterer Basis verbreiten.

Ein Treiber ist eine DLL (Windows) oder Dylib (macOS), die eine vordefinierte API für PrintFactory bereitstellt. Diese API versorgt PrintFactory mit Daten über die Fähigkeiten des Druckers oder Schneidegeräts und legt fest, wie Informationen an den Drucker usw. gesendet werden sollen. Für die validierten Versionen wird auch der Lizenzschlüssel bereitgestellt.

DLL-Ausfuhr

Der Treiber exportiert auf drei Arten;

  • ListModels : Diese Funktion wird verwendet, wenn der Ordner der Treiber für jeden Treiber durchlaufen wird. Diese Methode liefert eine Liste von Drucker-/Schneidegerätenamen für den Treiber, die im Dialogfeld Ausgabegerät hinzufügen aufgelistet werden.
  • PrinterInitialize: Mit dieser Funktion wird eine Instanz eines Druckers oder Schneidegeräts erstellt. Sie bleibt so lange aktiv, wie die RIP-Komponente oder die PrintStation läuft. Die Instanz gibt eine Reihe von Methoden zurück, die PrintFactory verwenden kann.
  • PrinterTerminate : Diese Funktion wird verwendet, um eine Instanz zu löschen, wenn die PrintStation zu diesem Zeitpunkt nicht mehr benötigt wird.

Instanzmethoden

Die Liste der von PrinterInitialize zurückgegebenen Methoden umfasst:

  • Info: Damit können wir die Fähigkeiten des Geräts abfragen, ein UI-Skript, einen Tintensatz, Fächer usw. abrufen. Ohne ein Konfigurations-XML erhalten Sie die Standardeinstellungen; mit einem Konfigurations-XML (das aus dem UI-Skript extrahiert wird) erhalten Sie druckmodusspezifische Details.
  • DisposeInfo : Wird verwendet, um die aus dem Info-Aufruf resultierenden Daten zu löschen.
  • CreateSession : PrintFactory ruft dies zu Beginn eines Auftrags auf. Die Methode CreateSession gibt eine Liste von Methoden zurück, die das System verwenden kann, um die Druck- und/oder Schneidedaten an den Treiber zu übergeben.
  • DisposeSession : Damit löschen wir die durch CreateSession erstellte Sitzung, nachdem ein Auftrag beendet oder abgebrochen wurde.
  • PrinterStatus : Optionale Methode, die in regelmäßigen Abständen aufgerufen wird, um Tintenstände, Fehlerstatus oder andere Statusinformationen des Geräts abzufragen. Diese Informationen sind sowohl im RIP als auch in der Cloud-Schnittstelle sichtbar.
  • JobStatus : Optionale Methode zur Bereitstellung von Tintenverbrauchs- und anderen Statusinformationen des Druckers über den verarbeiteten Auftrag. Steht diese Methode nicht zur Verfügung, synthetisiert das System die Verbrauchsinformationen auf der Grundlage der durch den Info-Aufruf übermittelten Angaben.
  • PrinterQuery : Optionale Allzweck-API, um neben dem Drucken oder Schneiden auch auf andere Teile des Geräts zugreifen zu können, wie Fotospektrometer, Hefter, Ordner usw.
  • GetPrivateCacheData : Optionale Methode zum Abrufen dauerhafter Zustandsinformationen (die vom Treiber gespeichert werden, um beispielsweise Informationen über die auf dem angeschlossenen Gerät verfügbaren Modi aufzubewahren) und zum Speichern dieser Informationen in der Konfigurationsdatei, die in der Cloud und in Backups gespeichert wird.
  • SetPrivateCacheData : Optionale Methode zum Zurückschreiben persistenter Statusinformationen aus der Cloud oder einem Backup.

Benutzeroberfläche

Die Benutzeroberfläche wird dynamisch aus dem XML-basierten UI-Skript erstellt. Das Skript gibt vor, welche Elemente dem Benutzer präsentiert werden müssen, um einen Druckmodus zu erstellen, und welche dieser Elemente später von einem Bediener geändert werden können, ohne die Farbe (oder andere Qualitätsaspekte des Auftrags) zu beeinflussen.

Nach der Darstellung der Benutzeroberfläche werden die gewählten Einstellungen extrahiert und in einer Einstellungs-XML gespeichert, die an den Info-Aufruf übergeben wird. Im Gegenzug erstellen wir die Liste der Druckfarben, der Auflösung, der Bittiefe und anderer Parameter, die für das RIP eines Auftrags in dem vom Treiber benötigten Format benötigt werden.

Einzelheiten über das Format und die Struktur des UI-XML sind in der Dokumentation Driver UI XML dokumentiert.

Sitzungsmethoden

Die CreateSession-Methode gibt eine Liste von Methoden zurück, mit denen PrintFactory die Druck- oder Schneidedaten an den Treiber übergeben kann (die alle optional sind). Die einzelnen Methoden sind in der Dokumentation der Treiber-API dokumentiert.

Der RIP, Spooler oder die PrintStation führen die folgende Aufrufsequenz aus, um einen Auftrag an den Treiber zu übergeben:

Drucken

  • Initialisieren
  • JobStart
  • for( jede Ebene auf jeder Seite )
    • PageStart
    • RasterStart
    • for( jede Ebene in jeder Zeile )
      • ProcessRawBuffer
    • RasterEnd
    • PageEnd
  • JobEnd
  • Beenden Sie

Schneiden

  • Initialisieren
  • JobStart
  • for( jede Seite )
    • RegistrationMarks (falls vorhanden)
    • PageStart
    • VectorStart
    • Mix aus folgenden Aufrufen zur Erstellung von Konturen
      • SetTool
      • Verschieben
      • Leitung
      • Vertex
      • PenUp
      • PenDown
      • CurveStart
      • CurveEnd
    • VectorEnd
    • PageEnd
    • Transport
  • JobEnd
  • Beenden Sie

Drucken und Schneiden

  • Initialisieren
  • JobStart
  • for( jede Ebene auf jeder Seite )
    • RegistrationMarks (falls vorhanden)
    • PageStart
    • RasterStart
    • for( jede Ebene in jeder Zeile )
      • ProcessRawBuffer
    • RasterEnd
    • VectorStart
    • Mix aus folgenden Aufrufen zur Erstellung von Konturen
      • SetTool
      • Verschieben
      • Leitung
      • Vertex
      • PenUp
      • PenDown
      • CurveStart
      • CurveEnd
    • VectorEnd
    • PageEnd
    • Transport
  • JobEnd
  • Beenden Sie

Beispiel

Das folgende Beispiel zeigt, wie man einen Treiber erstellt, der TIFF-Dateien als Ausgabe erzeugt. Das Beispiel kann von GIT geklont werden: https: //bitbucket.org/aurelon/ada.git und enthält sowohl den Beispieltreiber als auch einen Bare-Bones-Host, der anstelle von PrintFactory RIP für die ersten Schritte verwendet werden kann.