Freigeben über


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. Dabei handelt es sich um die Druckprozessorfunktion, die den Datenstrom aus dem Eingabeformat in das Ausgabeformat konvertiert und den konvertierten Datenstrom 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 in GDI-Funktionen in Druckprozessoren aufgeführten Funktionen steuern. Diese Funktionen stellen eine Schnittstelle zwischen dem Druckprozessor und dem Druckertreiber bereit. Diese Schnittstelle ermöglicht Es Druckprozessoren, das physische Layout von Druckerseiten zu steuern und 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 zu erleichtern.

Der Ausgabedatenstrom eines Druckprozessors muss an den Spooler zurückgegeben werden. Wenn für die Datenkonvertierung eine Interaktion mit der Druckergrafik-DLL des Druckertreibers erforderlich ist (wie bei EMF-Eingabedaten), gibt die Grafik-DLL den Datenstrom durch Aufrufen von EngWritePrinter an den Spooler zurück. Wenn die Konvertierung jedoch nicht die Druckergrafik-DLL aufruft (wie bei RAW-Eingabedaten der Fall), 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 und zurückgegeben hat, ruft der Spooler die ClosePrintProcessor-Funktion des Druckprozessors auf.