WritePrinter 함수
WritePrinter 함수는 인쇄 스풀러에 지정된 프린터에 데이터를 기록해야 한다는 것을 알 수 있습니다.
참고
WritePrinter 는 GDI 인쇄만 지원하며 XPS 인쇄에 사용하면 안 됩니다. 인쇄 작업에서 XPS 또는 OpenXPS 인쇄 경로를 사용하는 경우 XPS 인쇄 API를 사용합니다. WritePrinter를 사용하여 XPS 또는 OpenXPS 인쇄 작업을 스풀러로 보내는 것은 지원되지 않으며 결정되지 않은 결과가 발생할 수 있습니다.
구문
BOOL WritePrinter(
_In_ HANDLE hPrinter,
_In_ LPVOID pBuf,
_In_ DWORD cbBuf,
_Out_ LPDWORD pcWritten
);
매개 변수
-
hPrinter [in]
-
프린터에 대한 핸들입니다. OpenPrinter 또는 AddPrinter 함수를 사용하여 프린터 핸들을 검색합니다.
-
pBuf [in]
-
프린터에 기록해야 하는 데이터가 포함된 바이트 배열에 대한 포인터입니다.
-
cbBuf [in]
-
배열의 크기(바이트)입니다.
-
pcWritten [out]
-
프린터에 기록된 데이터 바이트 수를 받는 값에 대한 포인터입니다.
반환 값
함수가 성공하면 반환 값은 0이 아닌 값입니다.
함수가 실패하면 반환 값은 0입니다.
설명
참고
이는 차단 또는 동기 함수이며 즉시 반환되지 않을 수 있습니다. 이 함수가 얼마나 빨리 반환되는지는 네트워크 상태, 인쇄 서버 구성 및 애플리케이션을 작성할 때 예측하기 어려운 프린터 드라이버 구현 요소와 같은 런타임 요인에 따라 달라집니다. 사용자 인터페이스와의 상호 작용을 관리하는 스레드에서 이 함수를 호출하면 애플리케이션이 응답하지 않는 것처럼 보일 수 있습니다.
인쇄 작업의 시퀀스는 다음과 같습니다.
- 인쇄 작업을 시작하려면 StartDocPrinter를 호출합니다.
- 각 페이지를 시작하려면 StartPagePrinter를 호출합니다.
- 페이지에 데이터를 쓰려면 WritePrinter를 호출합니다.
- 각 페이지를 종료하려면 EndPagePrinter를 호출합니다.
- 필요한 만큼 페이지에 대해 2, 3 및 4를 반복합니다.
- 인쇄 작업을 종료하려면 EndDocPrinter를 호출합니다.
고급 문서(예: Adobe PDF 또는 Microsoft Word 파일) 또는 기타 프린터 데이터(예: PCL, PS 또는 HPGL)가 프린터로 직접 전송되는 경우 문서에 정의된 인쇄 설정은 Windows 인쇄 설정보다 선례가 됩니다. StartDocPrinter 호출의 pDocInfo 매개 변수에 전달된 DOC_INFO_1 구조체의 pDatatype 멤버 값이 "RAW"인 경우 문서 출력은 하드웨어에서 이해하는 언어로 DEVMODE 스타일 인쇄 작업 설정을 완전히 설명해야 합니다.
Windows XP 이전 버전의 Windows에서는 스풀된 파일의 페이지가 약 350MB를 초과하는 경우 인쇄에 실패하고 오류 메시지를 보내지 못할 수 있습니다. 예를 들어 대용량 EMF 파일을 인쇄할 때 발생할 수 있습니다. Windows XP 이전 버전의 Windows의 페이지 크기 제한은 사용 가능한 가상 메모리 양, 호출 프로세스에 의해 할당된 메모리 양 및 프로세스 힙의 조각화 양을 비롯한 여러 요인에 따라 달라집니다. Windows XP 이상 버전의 Windows에서는 EMF 파일의 크기가 2GB 이하여야 합니다. WritePrinter를 사용하여 프린터 준비 PDL과 같은 비 EMF 데이터를 작성하는 경우 파일 크기는 사용 가능한 디스크 공간에 의해서만 제한됩니다.
예제
이 함수를 사용하는 샘플 프로그램은 방법: GDI 인쇄 API를 사용하여 인쇄를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|
라이브러리 |
|
DLL |
|