Condividi tramite


API filtro di dati del server di stampa SNA

Si configura il percorso della DLL del filtro dati di stampa. Questa DLL viene usata da tutte le sessioni che usano attivamente il servizio Di stampa host. Tuttavia, la DLL del filtro dati di stampa può specificare se desidera o meno i dati di stampa di una determinata sessione passati.

I punti di ingresso a questa DLL sono elencati come segue:

PrtFilterAlloc
Ottiene un buffer di dati in cui passare i dati di stampa.

PrtFilterFree
Indica che un buffer di dati ottenuto in precedenza dalla DLL non è più necessario e la DLL può liberare la memoria allocata per questa risorsa.

PrtFilterJobData
Consente alla DLL di modificare i dati di stampa.

PrtFilterJobEnd
Indica alla DLL che un processo di stampa è terminato.

PrtFilterJobStart
Informa la DLL che è stato avviato un nuovo processo di stampa e consente alla DLL di inviare dati speciali al server di stampa all'inizio di un processo.

Di seguito è riportata una descrizione della sequenza di chiamate di esempio durante un normale processo di stampa per illustrare il modo in cui queste funzioni vengono usate normalmente:

  • PrtFilterStartJob viene chiamato all'avvio di un nuovo processo di stampa. La DLL può restituire un buffer di dati con dati speciali che verranno inviati alla stampante (una pagina banner speciale o stringhe di inizializzazione della stampante speciali, ad esempio) prima di stampare i dati.

  • PrtFilterFree viene chiamato se i dati speciali sono stati inviati nella funzione PrtFilterStartJob e indicano che il buffer di dati usato per passare dati speciali può essere liberato.

    La sequenza successiva di chiamate di funzione viene ripetuta fino a quando non vengono inviati tutti i dati di stampa:

  • PrtFilterAlloc viene chiamato per allocare un buffer di dati usato per passare i dati di stampa nella chiamata successiva a PrtFilterJobData.

  • PrtFilterJobData viene chiamato per passare i dati di stampa alla DLL per possibili modifiche. In questo modo, la DLL dell'utente può modificare i dati della stampante prima che vengano inviati alla stampante. Se i dati di stampa modificati da restituire richiedono un buffer di dati più grande o la DLL deve usare un buffer di dati diverso per la restituzione dei dati, la DLL potrebbe dover allocare un nuovo buffer di dati per restituire questi dati. La DLL può anche scegliere di liberare il buffer di dati usato per passare i dati di stampa in ingresso se viene usato un buffer di dati diverso per restituire i dati di stampa modificati. La funzione PrtFilterFree non verrà chiamata con il puntatore al buffer di dati originale se viene restituito un buffer di dati diverso da PrtFilterJobData.

  • PrtFilterFree viene chiamato per indicare che il buffer di dati allocato da PrtFilterAlloc per il passaggio dei dati in ingresso alla funzione PrtFilterJobData può essere liberato. Se un buffer di dati diverso è stato restituito da PrtFilterJobData, prtFilterFree verrà chiamato per indicare che un buffer di dati allocato dalla DLL usato per restituire i dati di stampa modificati nella funzione PrtFilterJobData può essere liberato.

    La sequenza finale si verifica quando tutti i dati di stampa sono stati elaborati:

  • PrtFilterEndJob viene chiamato per indicare la fine del processo di stampa e consente alla DLL di restituire dati speciali (ad esempio una pagina trailer) che devono essere inviati alla stampante.

  • PrtFilterFree viene chiamato se i dati speciali sono stati inviati nella funzione PrtFilterEndJob e indicano che il buffer di dati usato per passare dati speciali può essere liberato.