• 4258阅读
  • 1回复

QT 如何使用EPL语言通过USB接口打印条码? [复制链接]

上一主题 下一主题
离线eryu
 
只看楼主 倒序阅读 楼主  发表于: 2012-07-13
QT如何给打印机发送命令,请各位给点建议,或个实例代码,小弟初学,非常感谢
离线rozendew

只看该作者 1楼 发表于: 2013-01-01
2013了呀,挖个坟。
这个问题的解决方法是要先安装打印机驱动,然后调用WIN32API创建打印文档,打印指令写在文档中就可以了。
以下是示例代码:
  1. #include <windows.h>
  2. #include <strsafe.h>
  3. int irapiWritePrinter(QString printerName, QString text)
  4. {
  5. int ret = 1;
  6. int index = 0;
  7. HANDLE phandle;
  8. DWORD dwWritten;
  9. char *buff = text.toLatin1().data();
  10. index = 1;
  11. if (!OpenPrinterA(printerName.toLocal8Bit().data(), &phandle, NULL))
  12. {
  13. ret = 0;
  14. goto lb1;
  15. }
  16. index = 2;
  17. DOC_INFO_1A docInfo;
  18. memset(&docInfo, 0x0, sizeof(docInfo));
  19. docInfo.pDocName = "Zebra PrintJob";
  20. docInfo.pOutputFile = NULL;
  21. docInfo.pDatatype = "RAW";
  22. if (!StartDocPrinterA(phandle, 1, (LPBYTE)&docInfo))
  23. {
  24. ret = 0;
  25. goto lb1;
  26. }
  27. index = 3;
  28. StartPagePrinter(phandle);
  29. if (!WritePrinter(phandle, buff, strlen(buff), &dwWritten))
  30. {
  31. ret = 0;
  32. goto lb1;
  33. }
  34. EndPagePrinter(phandle);
  35. index = 4;
  36. if (!EndDocPrinter(phandle))
  37. ret = 0;
  38. lb1:
  39. if (!ret)
  40. sprintf_s(IRapi_ErrMsg, "%d、错误代码为:%d", index, GetLastError());
  41. ClosePrinter(phandle);
  42. return ret;
  43. }


我只是知道我所知道的
快速回复
限100 字节
 
上一个 下一个