我正在尝试将原始字节发送到打印机。我尝试过各种打印机,似乎没什么用。 OpenPrinter
返回有效句柄,StartDocPrinter
和StartPagePrinter
都成功。甚至WritePrinter
成功,写入的字节数与传入的字节数相同,并且假脱机程序窗口中会显示打印作业。一切看起来都很成功,但仍然无法打印出来。
我知道向打印机写入原始字节确实是特定于打印机的,因此我尝试打印到文件并将这些文件的内容发送到WritePrinter
。一切都很好,仍然没有打印输出。可能有什么不对?到目前为止我找到的所有示例代码都与我的100%相同。这是代码:
if (OpenPrinter(printerName, &printer, NULL))
{
DOC_INFO_1 docInfo = {L"Print Job", NULL, L"RAW"};
DWORD printJob = StartDocPrinter(printer, 1, (LPBYTE) &docInfo);
if (printJob != 0)
{
if (StartPagePrinter(printer))
{
DWORD written = 0;
if (WritePrinter(printer, (LPVOID) (LPCSTR) str, str.GetLength(), &written))
{
}
EndPagePrinter(printer);
}
EndDocPrinter(printer);
}
ClosePrinter(printer);
}
[编辑]打印机:佳能iP4200