2013了呀,挖个坟。
这个问题的解决方法是要先安装打印机驱动,然后调用WIN32API创建打印文档,打印指令写在文档中就可以了。
以下是示例代码:
- #include <windows.h>
- #include <strsafe.h>
- int irapiWritePrinter(QString printerName, QString text)
- {
- int ret = 1;
- int index = 0;
- HANDLE phandle;
- DWORD dwWritten;
- char *buff = text.toLatin1().data();
- index = 1;
- if (!OpenPrinterA(printerName.toLocal8Bit().data(), &phandle, NULL))
- {
- ret = 0;
- goto lb1;
- }
- index = 2;
- DOC_INFO_1A docInfo;
- memset(&docInfo, 0x0, sizeof(docInfo));
- docInfo.pDocName = "Zebra PrintJob";
- docInfo.pOutputFile = NULL;
- docInfo.pDatatype = "RAW";
- if (!StartDocPrinterA(phandle, 1, (LPBYTE)&docInfo))
- {
- ret = 0;
- goto lb1;
- }
- index = 3;
- StartPagePrinter(phandle);
- if (!WritePrinter(phandle, buff, strlen(buff), &dwWritten))
- {
- ret = 0;
- goto lb1;
- }
- EndPagePrinter(phandle);
- index = 4;
- if (!EndDocPrinter(phandle))
- ret = 0;
- lb1:
- if (!ret)
- sprintf_s(IRapi_ErrMsg, "%d、错误代码为:%d", index, GetLastError());
- ClosePrinter(phandle);
- return ret;
- }