Traiter un travail d’impression
Lorsque le spouleur est prêt à envoyer un travail d’impression à un processeur d’impression, il appelle la fonction OpenPrintProcessor du processeur d’impression. Cette fonction effectue des activités d’initialisation et retourne un handle.
Le spouleur peut ensuite appeler PrintDocumentOnPrintProcessor, qui est la fonction du processeur d’impression qui convertit le flux de données du format d’entrée au format de sortie et retourne le flux converti au spouleur.
Si le format d’entrée est EMF du système d’exploitation basé sur NT, la fonction PrintDocumentOnPrintProcessor peut contrôler la lecture des enregistrements EMF à l’aide des fonctions répertoriées dans Utilisation des fonctions GDI dans les processeurs d’impression. Ces fonctions fournissent une interface entre le processeur d’impression et le pilote d’imprimante. Cette interface permet aux processeurs d’impression de contrôler la disposition physique des pages de l’imprimante et facilite ainsi l’implémentation de fonctionnalités telles que l’impression de plusieurs pages de documents par page physique (« N-up »), l’impression de pages dans l’ordre inverse et l’impression de plusieurs copies de chaque page.
Le flux de données de sortie d’un processeur d’impression doit être retourné au spouleur. En règle générale, si la conversion de données nécessite une interaction avec la DLL graphique d’imprimante du pilote d’imprimante (comme c’est le cas pour les données d’entrée EMF), la DLL graphique retourne le flux au spouleur en appelant EngWritePrinter. En revanche, si la conversion n’appelle pas la DLL de graphisme d’imprimante (comme c’est le cas pour les données d’entrée RAW), le processeur d’impression appelle WritePrinter.
La fonction PrintDocumentOnPrintProcessor peut être interrompue par des appels asynchrones du spouleur à la fonction ControlPrintProcessor du processeur d’impression. Cette fonction implémente la capacité d’une application à suspendre, reprendre ou annuler un travail d’impression.
Une fois que PrintDocumentOnPrintProcessor a terminé la conversion du flux de données et retourne, le spouleur appelle la fonction ClosePrintProcessor du processeur d’impression.