我在Windows服务上打印Microsoft XPS Document Writer。打印完成得很好(没有任何错误)。如果我再次打印它(甚至不是服务)它不打印。在打印队列中,我可以看到我的第一个打印作业(系统)状态为错误,其他作业阻塞购买它。如何正确打印服务? 我使用CreateDC,StartDoc等。
修改
void Print(const std::wstring& path)
{
...
HDC hdcMXDW = CreateDC(L"WINSPOOL", printerName.c_str(), NULL, NULL);
if (!hdcMXDW)
{
return;
}
DOCINFO docInfo = {
sizeof(DOCINFO),
L"emf_to_xps",
xpsName.c_str(),
NULL,
0
};
if (StartDoc(hdcMXDW, &docInfo) > 0)
{
if (StartPage(hdcMXDW) > 0)
{
...
EndPage(hdcMXDW);
}
EndDoc(hdcMXDW);
}
DeleteDC(hdcMXDW);
}
所有打印Api功能都会返回良好的效果。
答案 0 :(得分:0)
I fixed this using SetJob with parameter command JOB_CONTROL_DELETE after printing.