Share via


Verarbeiten eines Druckauftrags

Wenn der Spooler bereit ist, einen Druckauftrag an einen Druckprozessor zu senden, ruft er die OpenPrintProcessor-Funktion des Druckprozessors auf. Diese Funktion führt Initialisierungsaktivitäten aus und gibt ein Handle zurück.

Der Spooler kann dann PrintDocumentOnPrintProcessor aufrufen. Dies ist die Druckprozessorfunktion, die den Datenstrom vom Eingabeformat in das Ausgabeformat konvertiert und den konvertierten Stream an den Spooler zurückgibt.

Wenn das Eingabeformat NT-basiertes Betriebssystem EMF ist, kann die PrintDocumentOnPrintProcessor-Funktion die Wiedergabe der EMF-Datensätze mithilfe der unter Verwenden von GDI-Funktionen in Druckprozessoren aufgeführten Funktionen steuern. Diese Funktionen stellen eine Schnittstelle zwischen dem Druckprozessor und dem Druckertreiber bereit. Diese Schnittstelle ermöglicht Druckprozessoren die Steuerung des physischen Layouts von Druckerseiten und erleichtert so die Implementierung von Features wie das Drucken mehrerer Dokumentseiten pro physischer Seite ("N-Up-Druck"), das Drucken von Seiten in umgekehrter Reihenfolge und das Drucken mehrerer Kopien jeder Seite.

Der Ausgabedatenstrom eines Druckprozessors muss an den Spooler zurückgegeben werden. Wenn die Datenkonvertierung eine Interaktion mit der Druckergrafik-DLL des Druckertreibers erfordert (wie bei EMF-Eingabedaten), gibt die Grafik-DLL in der Regel den Stream an den Spooler zurück, indem EngWritePrinter aufgerufen wird. Wenn die Konvertierung hingegen nicht die Druckergrafik-DLL aufruft (wie bei RAW-Eingabedaten), ruft der Druckprozessor WritePrinter auf.

Die PrintDocumentOnPrintProcessor-Funktion kann durch asynchrone Aufrufe des Spoolers an die ControlPrintProcessor-Funktion des Druckprozessors unterbrochen werden. Diese Funktion implementiert die Möglichkeit einer Anwendung, einen Druckauftrag anzuhalten, fortzusetzen oder abzubrechen.

Nachdem PrintDocumentOnPrintProcessor die Konvertierung des Datenstroms abgeschlossen hat und zurückgibt, ruft der Spooler die ClosePrintProcessor-Funktion des Druckprozessors auf.