描述
WritePrinter功能通知打印后台处理程序应将数据写入指定的打印机。
C++ 语法
BOOL WritePrinter( __in HANDLE hPrinter, __in LPVOID pBuf, __in DWORD cbBuf, __out LPDWORD pcWritten ); |
PowerBASIC 语法
FUNCTION WritePrinter ( _ BYVAL hPrinter AS DWORD, _ BYREF pBuf AS ANY, _ BYVAL cbBuf AS DWORD, _ BYREF pcWritten AS DWORD _ ) AS LONG |
参数
hPrinter
[in]处理打印机。使用OpenPrinter或AddPrinter功能来检索打印机句柄。
pBuf
[in]指向包含应写入打印机的数据的字节数组的指针。
cbBuf
[in]指定数组的大小(以字节为单位)。
pcWritten
[out]指向接收写入打印机的数据字节数的值的指针。
返回值
如果函数成功,则返回值为非零值。
如果函数失败,返回值为零。
备注
打印作业的顺序如下:
1. | 要开始打印作业,请调用StartDocPrinter. |
2. | 要开始每个页面,请调用StartPagePrinter. |
3. | 要将数据写入页面,请调用WritePrinter. |
4. | 要结束每一页,请调用EndPagePrinter. |
5. | 根据需要重复2次,3次和4次多页。 |
6. | 要结束打印作业,请调用EndDocPrinter. |
当高级文档(如Adobe PDF或Microsoft Word文件)或其他打印机数据(如PCL,PS或HPGL)直接发送到打印机时,文档中定义的打印设置取决于Windows打印设置。以“RAW”的StartPrintDocpDocInfo参数pDatatype输出的文档必须以硬件所理解的语言完全描述DEVMODE样式的打印作业设置。
Windows 2000 / XP / Vista / Windows 7:假脱机文件中的页面超过350 MB时,可能无法打印而不发送错误消息。例如,打印大型EMF文件时可能会发生这种情况。页面大小限制取决于许多因素,包括可用的虚拟内存量,调用进程分配的内存量以及进程堆中的碎片数量。
引用文件 #INCLUDE Once
WinSpool.inc