当前位置: 首页 > news >正文

聊天网站建设建筑工程信息价哪里可以查询

聊天网站建设,建筑工程信息价哪里可以查询,河南省建设厅网网站首页,长沙人才招聘网长沙58同城招聘网这里的打印机是条码打印机#xff0c;因为第一次接触这种设备#xff0c;所以买了斑马的GK888t型条码打印机#xff0c;据说ZPL语言就是斑马的杰作想必支持会好点。实际是#xff0c;除了ZPL本身外#xff0c;没有SDK#xff0c;也没有DDK#xff0c;所以#xff0c;一…这里的打印机是条码打印机因为第一次接触这种设备所以买了斑马的GK888t型条码打印机据说ZPL语言就是斑马的杰作想必支持会好点。实际是除了ZPL本身外没有SDK也没有DDK所以一切就只能靠搜索引擎帮忙了这里感谢百度和谷歌啦。 写在开头有些在网上找的内容忘了留网址写该文时搜索相关内容补的网址请原相关作者见谅。粗略总结了6种方法个人比较推荐第6第3种方法。如下 1、直接打印最简单。 条码打印机可以当做普通打印机使用。所以你用记事本、word等等只要有打印功能的都可以打印。所以该方法就是使用Qt绘制图片、path什么的然后打印即可。 2、把USB打印机映射到LPT端口。 参照http://blog.sina.com.cn/s/blog_6d4dcdba0100xowi.html 这里我在本机不需要安装“Microsoft Loopback Adapter”而是使用如下的方法gk888t是我共享的打印机名 net use LPT2 \\127.0.0.1\gk888t3、使用转意字符需要ZPL语言建议。 参照http://stackoverflow.com/questions/4442122/send-raw-zpl-to-zebra-printer-via-usb 一定要按上文方法设置转意字符。代码如下不再阐述。QPrinter printer(QPrinter::PrinterResolution); QPrintDialog *dlg new QPrintDialog(printer, this);if (dlg-exec() QDialog::Accepted) {QPainter p(printer);p.drawText(0,0,${^XA^FO10,100^BY3^BCN,100,Y,N,N^FDDC123456^FS^XZ}$);………… } 4、使用CUPs API未完成。 参照http://stackoverflow.com/questions/5558248/qt-print-raw-text 粗试文中的方法当时链接库没搞好所以放弃了。5、使用libusb-win32可以。 参照http://sourceforge.net/apps/trac/libusb-win32/wiki http://www.4ucode.com/Study/Topic/617136 特别声明如果你和我一样是菜鸟请注意最好在试验该方法时在虚拟机内进行不然系统USB设备可能会统统罢工的。 参照testlibusb.c例程这里贴一下打印的代码别忘了在.pro文件添加 LIBS ./libusb.a 这里我把libusb.a和源代码放在了一起还有lusb0_usb.h头文件不要忘了……udev usb_open(dev); if (udev) { char *sb ^XA^FO10,100^BY3^BCN,100,Y,N,N^FDDAe123456^FS^XZ; int ok usb_claim_interface(udev,0); printf(%d\n,ok); ok usb_bulk_write(udev,0x01,sb,50,1000); printf(%d\n,ok); …………但这里有个问题一直没有搞定使用libusb同时又使用系统的打印机驱动模式也就是说在该模式下无法使用打印服务访问打印机不再支持直接打印。 这个不知是我的设置问题还是什么。折腾的时候发现使用一种方法可以一起使用但一旦系统重启就不再可以同时打印服务以及rpc服务均不正常需要使用斑马自带的打印机安装程序重新安装系统才能回复正常但一重启依旧。6、使用Win32 API打印原始数据强烈建议。 这可是微软的方法啊不用在系统添加任何文件同时又能保证打印机的正常使用所以强烈建议。 参照http://support.microsoft.com/kb/138594 在.pro文件添加 LIBS D:\Qt\qtcreator-2.4.1\mingw\lib\libwinspool.a 注我的mingw安装路径 D:\Qt\qtcreator-2.4.1\mingw。贴一段我用来试验该方法的源代码 注意事项qt creater是UNICODE环境所以使用OpenPrinter等函数时会自动转为OpenPrinterW这样就需要进行char到wchar的转换或者使用宏定义请参看winspool.h的内容觉得比较烦所以就直接给它改成OpenPrinterA了其它同。#include “widget.h” #include “ui_widget.h” #include #include #include #include #include windows.h #include winspool.h #include BOOL RawDataToPrinter(LPSTR szPrinterName, LPBYTE lpData, DWORD dwCount); bool RawDataToPrinter(QString printerName,QStringList *barcode); Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui-setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { QPrinter printer(QPrinter::PrinterResolution); QPrintDialog *dlg new QPrintDialog(printer, this); if (dlg-exec() QDialog::Accepted) { QPainter p(printer); //p.drawText(0,0,“ X A F O 10 , 10 0 B Y 3 B C N , 100 , Y , N , N F D D C 12345 6 F S X Z {^XA^FO10,100^BY3^BCN,100,Y,N,N^FDDC123456^FS^XZ} XAFO10,100BY3BCN,100,Y,N,NFDDC123456FSXZ”); //p.drawText(0,0,“ X A F O 10 , 10 0 B Y 3 B C N , 100 , Y , N , N F D C D 12345 6 F S X Z {^XA^FO10,100^BY3^BCN,100,Y,N,N^FDCD123456^FS^XZ} XAFO10,100BY3BCN,100,Y,N,NFDCD123456FSXZ”); QString printerName printer.printerName(); QString lpData tr(“XAFO10,100BY3BCN,100,Y,N,NFDDD123456FS^XZ”); long dwCount lpData.length(); QStringList sl; sl.append(tr(“XAFO10,100BY3BCN,100,Y,N,NFDAB123456FS^XZ”)); sl.append(tr(“XAFO10,100BY3BCN,100,Y,N,NFDCD123456FS^XZ”)); sl.append(tr(“XAFO10,100BY3BCN,100,Y,N,NFDEF123456FS^XZ”)); if(RawDataToPrinter(printerName,sl)true) { qDebug() “OK”; }else { qDebug() “NO”; } /if(RawDataToPrinter((char)printerName.toLocal8Bit().data(),(unsigned char*)lpData.toLocal8Bit().data(),dwCount) true) { qDebug() “OK”; }else { qDebug() “NO”; }*/ } delete dlg; } BOOL RawDataToPrinter(LPSTR szPrinterName, LPBYTE lpData, DWORD dwCount) { HANDLE hPrinter; DOC_INFO_1A DocInfo; DWORD dwJob; DWORD dwBytesWritten; // Need a handle to the printer. if(!OpenPrinterA(szPrinterName,hPrinter,NULL)) { return FALSE; } // Fill in the structure with info about this “document.” DocInfo.pDocName “BarCode”; DocInfo.pOutputFile NULL; DocInfo.pDatatype “RAW”; // Inform the spooler the document is beginning. if((dwJob StartDocPrinterA(hPrinter,1,(PBYTE)DocInfo)) 0) { ClosePrinter(hPrinter); return FALSE; } // Start a page. if(!StartPagePrinter(hPrinter)) { EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return FALSE; } // Send the data to the printer. if(!WritePrinter(hPrinter,lpData,dwCount,dwBytesWritten)) { EndPagePrinter(hPrinter); EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return FALSE; } if(!WritePrinter(hPrinter,lpData,dwCount,dwBytesWritten)) { EndPagePrinter(hPrinter); EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return FALSE; } // End the page. if(!EndPagePrinter(hPrinter)) { EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return FALSE; } // Inform the spooler that the document is ending. if(!EndDocPrinter(hPrinter)) { ClosePrinter(hPrinter); return FALSE; } // Tidy up the printer handle. ClosePrinter(hPrinter); // Check to see if correct number of bytes were written. if(dwBytesWritten ! dwCount) { QMessageBox::warning(0,QObject::tr(“打印”),QObject::tr(“打印输出数据与输入数据大小不相符”),QObject::tr(“确定(E)”)); return FALSE; }else { return TRUE; } } bool RawDataToPrinter(QString printerName, QStringList *barcode) { HANDLE hPrinter; DOC_INFO_1A DocInfo; DWORD dwJob; DWORD dwBytesWritten; LPSTR szPrinterName; long dwCount; if(!(barcode-length() 0)) { return false; } szPrinterName (char*)printerName.toLocal8Bit().data(); //获取打印机的handle if(!OpenPrinterA(szPrinterName,hPrinter,NULL)) { return false; } //填充打印文档的DOC_INFO_1A DocInfo.pDocName “BarCode”; DocInfo.pOutputFile NULL; DocInfo.pDatatype “RAW”; //通知打印服务准备开始打印文档 if((dwJob StartDocPrinterA(hPrinter,1,(PBYTE)DocInfo)) 0) { ClosePrinter(hPrinter); return false; } //开始一页的打印 if(!StartPagePrinter(hPrinter)) { EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return false; } foreach(QString str,*barcode) { //发送数据到打印机 dwCount str.toLocal8Bit().length(); if(!WritePrinter(hPrinter,(unsigned char *)str.toLocal8Bit().data(),dwCount,dwBytesWritten)) { EndPagePrinter(hPrinter); EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return false; } //检查实际写入数据是否与原始数据大小相符 if(dwBytesWritten ! dwCount) { QMessageBox::warning(0,QObject::tr(“打印”),QObject::tr(“打印输出数据与输入数据大小不相符”),QObject::tr(“确定(E)”)); EndPagePrinter(hPrinter); EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return false; } } //结束一页的打印 if(!EndPagePrinter(hPrinter)) { EndDocPrinter(hPrinter); ClosePrinter(hPrinter); return FALSE; } //通知打印服务文档打印结束 if(!EndDocPrinter(hPrinter)) { ClosePrinter(hPrinter); return FALSE; } //收回handle ClosePrinter(hPrinter); return true; } 以上即我当前所能使用的方法希望能给大家带来帮助如有不到之处希望当家指正。
http://www.pierceye.com/news/561459/

相关文章:

  • 禅城网站制作网站推广优化技巧大全
  • xampp做的网站能搜索吗广州外贸公司集中地
  • 茶网站建设网站的基础建设
  • 大型机械网站建设公司免费的cms视频网站
  • 杭州做网站哪家好在线设计平台都有哪些比较好用的
  • 内外网网站栏目建设方案专门做电容的网站
  • 一般网站字体多大有没有做公司网站的
  • 做国外进口衣服的网站好怎么推广公众号
  • 安县建设局网站网站建设分金手指排名一
  • 社区网站制作教程社交媒体营销
  • 云南省建设工程质量监督管理站网站房产网站推广
  • 做网站挣钱吗营销导向的企业网站建设步骤
  • 优化网站 优帮云网站是意识形态建设
  • 网站内容建设运维服务wordpress envato主题
  • 响应式网站的几种尺寸推广网站的几种方法
  • php 打开网站东莞网站建设网页推广
  • 正品海外购网站有哪些公司网站开发费用兴田德润在哪儿
  • 怎样做编辑发到网站自由建网站的网络程序
  • 网站开发 卡片cms建站系统 下载
  • 新浪门户网站是谁做的科技网站建设
  • 免费网站建设合同书山西网站建设企业
  • 网站建设空间什么意思学做网站什么语言合适
  • 网站开发的形式有( )友情链接英文
  • 帝国网站管理系统前台免费photoshop下载
  • 深圳一百讯网站建设wordpress汉化包
  • 建设一个班级网站的具体步骤自己的网站源代码一片空白
  • 初创公司 建网站wordpress 模板获取数据库
  • 怎么在网站做推广不要钱六安网约车平台
  • 申晨推荐的营销网站做卖挖掘机的网站
  • 网站广告牌制作教程来几个好看的网站