Partager via


API du filtre de données du serveur d’impression SNA

Vous configurez le chemin d’accès à la DLL de filtre de données d’impression. Cette DLL est utilisée par toutes les sessions qui utilisent activement le service d’impression hôte. Toutefois, la DLL de filtre de données d’impression peut spécifier si elle souhaite ou non que les données d’impression d’une session donnée lui soient transmises.

Les points d’entrée de cette DLL sont répertoriés comme suit :

PrtFilterAlloc
Obtient une mémoire tampon de données dans laquelle passer des données d’impression.

PrtFilterFree
Indique qu’une mémoire tampon de données obtenue précédemment à partir de la DLL n’est plus nécessaire et que la DLL peut libérer la mémoire allouée pour cette ressource.

PrtFilterJobData
Permet à la DLL de manipuler les données d’impression.

PrtFilterJobEnd
Informe la DLL qu’un travail d’impression s’est terminé.

PrtFilterJobStart
Informe la DLL qu’une nouvelle tâche d’impression a démarré et permet à la DLL d’envoyer des données spéciales au serveur d’impression au début d’un travail.

Une description de l’exemple de séquence d’appels au cours d’un travail d’impression ordinaire est répertoriée ci-dessous pour illustrer la façon dont ces fonctions sont normalement utilisées :

  • PrtFilterStartJob est appelé lorsqu’un nouveau travail d’impression est démarré. La DLL peut retourner une mémoire tampon de données avec des données spéciales qui seront envoyées à l’imprimante (une page de bannière spéciale ou des chaînes d’initialisation d’imprimante spéciales, par exemple) avant l’impression des données.

  • PrtFilterFree est appelé si des données spéciales ont été envoyées dans la fonction PrtFilterStartJob et indique que la mémoire tampon de données utilisée pour passer des données spéciales peut être libérée.

    La séquence suivante d’appels de fonction est répétée jusqu’à ce que toutes les données d’impression soient envoyées :

  • PrtFilterAlloc est appelé pour allouer une mémoire tampon de données utilisée pour passer des données d’impression lors de l’appel suivant à PrtFilterJobData.

  • PrtFilterJobData est appelé pour passer des données d’impression à la DLL en vue d’une modification possible. Cela permet à la DLL utilisateur de manipuler les données d’imprimante avant d’être envoyées à l’imprimante. Si les données d’impression modifiées à retourner nécessitent une mémoire tampon de données plus grande ou si la DLL doit utiliser une mémoire tampon de données différente pour retourner des données, la DLL peut avoir besoin d’allouer une nouvelle mémoire tampon de données pour retourner ces données. La DLL peut également choisir de libérer la mémoire tampon de données utilisée pour transmettre les données d’impression entrantes si une mémoire tampon de données différente est utilisée pour retourner des données d’impression modifiées. La fonction PrtFilterFree n’est pas appelée avec le pointeur vers la mémoire tampon de données d’origine si une mémoire tampon de données différente est retournée par PrtFilterJobData.

  • PrtFilterFree est appelé pour indiquer que la mémoire tampon de données allouée par PrtFilterAlloc pour transmettre les données entrantes à la fonction PrtFilterJobData peut être libérée. Si une mémoire tampon de données différente a été retournée par PrtFilterJobData, PrtFilterFree est appelé pour indiquer qu’une mémoire tampon de données allouée par la DLL utilisée pour retourner des données d’impression modifiées dans la fonction PrtFilterJobData peut être libérée.

    La séquence finale se produit lorsque toutes les données d’impression ont été traitées :

  • PrtFilterEndJob est appelé pour indiquer la fin du travail d’impression et permet à la DLL de retourner des données spéciales (une page de bande-annonce, par exemple) qui doivent être envoyées à l’imprimante.

  • PrtFilterFree est appelé si des données spéciales ont été envoyées dans la fonction PrtFilterEndJob et indique que la mémoire tampon de données utilisée pour passer des données spéciales peut être libérée.