다음을 통해 공유


SNA 인쇄 서버 데이터 필터 API

인쇄 데이터 필터 DLL의 경로를 구성합니다. 이 DLL은 호스트 인쇄 서비스를 사용하여 모든 세션에서 적극적으로 사용됩니다. 그러나 인쇄 데이터 필터 DLL은 지정된 세션의 인쇄 데이터를 전달할지 여부를 지정할 수 있습니다.

이 DLL의 진입점은 다음과 같이 나열됩니다.

PrtFilterAlloc
인쇄 데이터를 전달할 데이터 버퍼를 가져옵니다.

PrtFilterFree
이전에 DLL에서 가져온 데이터 버퍼가 더 이상 필요하지 않으며 DLL이 이 리소스에 할당된 메모리를 해제할 수 있음을 나타냅니다.

PrtFilterJobData
DLL에서 인쇄 데이터를 조작할 수 있습니다.

PrtFilterJobEnd
인쇄 작업이 종료되었음을 DLL에 알릴 수 있습니다.

PrtFilterJobStart
새 인쇄 작업이 시작되었음을 DLL에 알리고 DLL이 작업 시작 시 인쇄 서버에 특수 데이터를 보낼 수 있도록 합니다.

이러한 함수가 일반적으로 사용되는 방법을 설명하기 위해 일반 인쇄 작업 중 호출의 예제 시퀀스에 대한 설명이 아래에 나열되어 있습니다.

  • PrtFilterStartJob 은 새 인쇄 작업이 시작될 때 호출됩니다. DLL은 데이터를 인쇄하기 전에 프린터로 전송되는 특수 데이터(예: 특수 배너 페이지 또는 특수 프린터 초기화 문자열)가 포함된 데이터 버퍼를 반환할 수 있습니다.

  • PrtFilterStartJob 함수에서 특수 데이터를 보낸 경우 PrtFilterFree 가 호출되고 특수 데이터를 전달하는 데 사용되는 데이터 버퍼가 해제될 수 있음을 나타냅니다.

    모든 인쇄 데이터가 전송될 때까지 함수 호출의 다음 시퀀스가 반복됩니다.

  • PrtFilterAllocPrtFilterJobData에 대한 후속 호출에서 인쇄 데이터를 전달하는 데 사용되는 데이터 버퍼를 할당하기 위해 호출됩니다.

  • PrtFilterJobData 는 가능한 수정을 위해 인쇄 데이터를 DLL에 전달하기 위해 호출됩니다. 이렇게 하면 사용자 DLL이 프린터로 전송되기 전에 프린터 데이터를 조작할 수 있습니다. 반환할 수정된 인쇄 데이터에 더 큰 데이터 버퍼가 필요하거나 DLL이 데이터를 반환하는 데 다른 데이터 버퍼를 사용해야 하는 경우 DLL은 이 데이터를 반환하기 위해 새 데이터 버퍼를 할당해야 할 수 있습니다. DLL은 수정된 인쇄 데이터를 반환하는 데 다른 데이터 버퍼를 사용하는 경우 들어오는 인쇄 데이터를 전달하는 데 사용되는 데이터 버퍼를 해제하도록 선택할 수도 있습니다. PrtFilterJobData에서 다른 데이터 버퍼를 반환하는 경우 PrtFilterFree 함수는 원래 데이터 버퍼에 대한 포인터로 호출되지 않습니다.

  • PrtFilterFreePrtFilterJobData 함수에 들어오는 데이터를 전달하기 위해 PrtFilterAlloc에 의해 할당된 데이터 버퍼를 해제할 수 있음을 나타내기 위해 호출됩니다. PrtFilterJobData에서 다른 데이터 버퍼를 반환한 경우 PrtFilterJobData 함수에서 수정된 인쇄 데이터를 반환하는 데 사용되는 DLL에 의해 할당된 데이터 버퍼를 해제할 수 있음을 나타내기 위해 PrtFilterFree가 호출됩니다.

    최종 시퀀스는 모든 인쇄 데이터가 처리될 때 발생합니다.

  • 인쇄 작업의 끝을 나타내기 위해 PrtFilterEndJob이 호출되고 DLL에서 프린터로 보내야 하는 특수 데이터(예: 트레일러 페이지)를 반환할 수 있습니다.

  • PrtFilterFreePrtFilterEndJob 함수에서 특수 데이터를 보낸 경우 호출되며 특수 데이터를 전달하는 데 사용되는 데이터 버퍼를 해제할 수 있음을 나타냅니다.