如何提供XPS文件路径作为本地端口?

时间:2016-08-26 10:16:48

标签: c++ windows winapi printers

下面是我尝试的代码片段:

PRINTER_INFO_2 pi;
BOOL Result = FALSE;
HANDLE pHd; 

memset(&pi, 0, sizeof(PRINTER_INFO_2));
pi.pPrinterName = L"RxXPSDrv";  
pi.pDriverName = L"XPSDrv Sample Driver";
// Select Share Name
pi.pShareName = L"MyPrinter";
// Select Server Name
pi.pServerName = NULL;

// Select Port Name
pi.pPortName = L"COM3:";
//pi.pPortName = L"C:\\Users\\admin\\Desktop\\a1.xps";

pi.pSecurityDescriptor = NULL;
// Select Print Processor
pi.pPrintProcessor = L"winprint";
// Select Attributes
pi.Attributes = PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST | PRINTER_ATTRIBUTE_LOCAL;
// Set Priority
pi.Priority = 1;
// Call the function AddPrinter
pHd = AddPrinter(NULL, 2, (LPBYTE)&pi);

此处@ pi.pPortName 我需要提供 C:\ Users \ admin \ Desktop \ a1.xps ,但它无法正常工作且打印机未添加。使用 COM3 ,它可以正常工作。 谁能告诉我怎么能这样做?如何提供 XPS pi.pPortName 的完整路径?

1 个答案:

答案 0 :(得分:1)

您必须先添加“本地端口”“C:\ Users \ admin \ Desktop \ a1.xps”。我只是尝试了它的工作原理。添加端口的一些代码:Adding-a-Local-Port-through-XcvData-and-C