다음을 통해 공유


인쇄 작업 처리

스풀러가 인쇄 프로세서에 인쇄 작업을 보낼 준비가 되면 인쇄 프로세서의 OpenPrintProcessor 함수를 호출합니다. 이 함수는 초기화 작업을 수행하고 핸들을 반환합니다.

그런 다음 스풀러는 입력 형식에서 출력 형식으로 데이터 스트림을 변환하고 변환된 스트림을 스풀러로 반환하는 인쇄 프로세서 함수인 PrintDocumentOnPrintProcessor를 호출할 수 있습니다.

입력 형식이 NT 기반 운영 체제 EMF인 경우 PrintDocumentOnPrintProcessor 함수는 인쇄 프로세서에서 GDI 함수 사용에 나열된 함수를 사용하여 EMF 레코드의 재생을 제어할 수 있습니다. 이러한 함수는 인쇄 프로세서와 프린터 드라이버 간의 인터페이스를 제공합니다. 이 인터페이스를 사용하면 인쇄 프로세서가 프린터 페이지의 실제 레이아웃을 제어할 수 있으므로 실제 페이지당 여러 문서 페이지 인쇄("N-up" 인쇄), 페이지를 역순으로 인쇄, 각 페이지의 여러 복사본 인쇄 등의 기능을 쉽게 구현할 수 있습니다.

인쇄 프로세서의 출력 데이터 스트림을 스풀러로 반환해야 합니다. 일반적으로 데이터 변환에 프린터 드라이버의 프린터 그래픽 DLL (EMF 입력 데이터의 경우와 같이)과의 상호 작용이 필요한 경우 그래픽 DLL은 EngWritePrinter를 호출하여 스트림을 스풀러로 반환합니다. 반면, 변환에서 RAW 입력 데이터의 경우처럼 프린터 그래픽 DLL을 호출하지 않으면 인쇄 프로세서는 WritePrinter를 호출합니다.

PrintDocumentOnPrintProcessor 함수는 스풀러에서 인쇄 프로세서의 ControlPrintProcessor 함수로의 비동기 호출에 의해 중단될 수 있습니다. 이 함수는 인쇄 작업을 일시 중지, 다시 시작 또는 취소하는 애플리케이션의 기능을 구현합니다.

PrintDocumentOnPrintProcessor가 데이터 스트림 변환을 완료하고 반환하면 스풀러는 인쇄 프로세서의 ClosePrintProcessor 함수를 호출합니다.