openprinter操作网络打印机(操作网络打印机方法:openprinter新手教程)

  • openprinter操作网络打印机(操作网络打印机方法:openprinter新手教程)已关闭评论
  • A+
所属分类:打印机驱动安装
摘要

OpenPrinter操作网络打印机在网络环境下,打印机被共享出来后,可以通过OpenPrinter命令来操作远程打印机。OpenPrinter是Windows系统所提供的一个API函数,其主要的作用是打开并获得一个指向打印机的句柄,通过该句柄可以对打印机进行操作,例如:打印文件、获取打印

OpenPrinter操作网络打印机

在网络环境下,打印机被共享出来后,可以通过OpenPrinter命令来操作远程打印机。OpenPrinter是Windows系统所提供的一个API函数,其主要的作用是打开并获得一个指向打印机的句柄,通过该句柄可以对打印机进行操作,例如:打印文件、获取打印机状态等。

使用OpenPrinter命令需要传入的参数有两个,一个是指向打印机名字的指针,另一个是指向PRINTER_DEFAULTS的指针,PRINTER_DEFAULTS结构体是设置打印机参数的结构体。

示例:

HANDLE hPrinter;

PRINTER_DEFAULTS PrinterDefaults;

ZeroMemory(&PrinterDefaults, sizeof(PrinterDefaults));

PrinterDefaults.DesiredAccess = PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE;

OpenPrinter(&PrinterName[0], &hPrinter, &PrinterDefaults);

上述示例中,PrinterName是一个字符数组,存储的是打印机的名称。PrinterDefaults结构体中的参数具体含义如下:

DefaultDataType:设置打印数据类型,默认值为RAW;

DesiredAccess:指定打印器句柄所需的访问权限,例如:PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE表示管理员权限和普通用户权限;

pDevMode:如果不为NULL,则将其用于打开打印机。如果打印机模式不可接受,则函数将失败并返回错误。

调用OpenPrinter成功后,返回一个HANDLE类型的句柄,可以通过这个句柄操作打印机,例如:打印文件。

示例:

DWORD dwError;

HANDLE hPrinter;

PRINTER_DEFAULTS PrinterDefaults;

DOC_INFO_1 DocInfo;

ZeroMemory(&PrinterDefaults, sizeof(PrinterDefaults));

PrinterDefaults.DesiredAccess = PRINTER_ACCESS_ADMINISTER | PRINTER_ACCESS_USE;

OpenPrinter(&PrinterName[0], &hPrinter, &PrinterDefaults);

ZeroMemory(&DocInfo, sizeof(DocInfo));

DocInfo.pDocName = &DocName[0];

DocInfo.pOutputFile = NULL;

DocInfo.pDatatype = &DataType[0];

StartDocPrinter(hPrinter, 1, (LPBYTE)&DocInfo);

StartPagePrinter(hPrinter);

if (WritePrinter(hPrinter, pData, dwCount, &dwBytesWritten) == FALSE)

{

dwError = GetLastError();

EndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

return dwError;

}

EndPagePrinter(hPrinter);

EndDocPrinter(hPrinter);

ClosePrinter(hPrinter);

上述示例中,pData为指向要打印的数据的指针,dwCount为pData指向的数据的大小,dwBytesWritten为实际写入的数据的大小。

在操作完打印机后,需要调用EndPagePrinter、EndDocPrinter和ClosePrinter函数来结束打印作业,并释放打印机句柄。

总结

使用OpenPrinter命令可以方便地对网络打印机进行操作,可以很好地满足在网络环境下的打印需求。通过掌握OpenPrinter命令的使用方法,可以实现更多的打印功能。