怎么用QPrinter连接USB打印机打印图片

未狂 2015-09-28 05:02:48
急求,弄了一天了,找不到方法
...全文
588 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
未狂 2015-10-04
  • 打赏
  • 举报
回复
引用 7 楼 Jonix 的回复:
[quote=引用 6 楼 shihoongbo 的回复:] [quote=引用 5 楼 Jonix 的回复:] [quote=引用 3 楼 shihoongbo 的回复:] [quote=引用 1 楼 u013466477 的回复:] 一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机 二、自己实现 你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。 打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的 setPrinterName(printerName); 打印:printer打印机变量 QPainter p; p.begin(printer); 然后p.draw你想要的东西 p.end();
这个对于普通打印机是没有问题的 但是我这个USB打印机是默认驱动,系统没有把它归类到打印机设备里,所以QPrinterInfo获取不到设备名称[/quote] 那用 Office Word 之类的,能正常打印吗?? [/quote] 因为系统没有把USB打印机归类到打印机设备里,所以其他的打印也都不会找到USB打印设备 估计还是要用windows api做USB通信[/quote] 感觉你需要做一个驱动[/quote] 感觉好像确实是这样……
Jonix 2015-09-30
  • 打赏
  • 举报
回复
引用 6 楼 shihoongbo 的回复:
[quote=引用 5 楼 Jonix 的回复:] [quote=引用 3 楼 shihoongbo 的回复:] [quote=引用 1 楼 u013466477 的回复:] 一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机 二、自己实现 你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。 打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的 setPrinterName(printerName); 打印:printer打印机变量 QPainter p; p.begin(printer); 然后p.draw你想要的东西 p.end();
这个对于普通打印机是没有问题的 但是我这个USB打印机是默认驱动,系统没有把它归类到打印机设备里,所以QPrinterInfo获取不到设备名称[/quote] 那用 Office Word 之类的,能正常打印吗?? [/quote] 因为系统没有把USB打印机归类到打印机设备里,所以其他的打印也都不会找到USB打印设备 估计还是要用windows api做USB通信[/quote] 感觉你需要做一个驱动
Jonix 2015-09-29
  • 打赏
  • 举报
回复
引用 3 楼 shihoongbo 的回复:
[quote=引用 1 楼 u013466477 的回复:] 一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机 二、自己实现 你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。 打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的 setPrinterName(printerName); 打印:printer打印机变量 QPainter p; p.begin(printer); 然后p.draw你想要的东西 p.end();
这个对于普通打印机是没有问题的 但是我这个USB打印机是默认驱动,系统没有把它归类到打印机设备里,所以QPrinterInfo获取不到设备名称[/quote] 那用 Office Word 之类的,能正常打印吗??
冷静忍耐 2015-09-29
  • 打赏
  • 举报
回复
没做过usb打印,下面几个你参考下,看有啥可用的 http://download.csdn.net/detail/pea6nut/8492335 http://blog.sina.com.cn/s/blog_6d4dcdba0100xowi.html http://blog.chinaunix.net/uid-23065002-id-4460969.html
未狂 2015-09-29
  • 打赏
  • 举报
回复
引用 1 楼 u013466477 的回复:
一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机 二、自己实现 你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。 打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的 setPrinterName(printerName); 打印:printer打印机变量 QPainter p; p.begin(printer); 然后p.draw你想要的东西 p.end();
这个对于普通打印机是没有问题的 但是我这个USB打印机是默认驱动,系统没有把它归类到打印机设备里,所以QPrinterInfo获取不到设备名称
画茧自缚 2015-09-29
  • 打赏
  • 举报
回复
void MainWindow::ShowPrintImage() { QPrinter printer; QPrintDialog printDialog(&printer,this); if(printDialog.exec()) //判断用户是否点击了"打印“按钮 { QPainter painter(&printer); QRect rect =painter.viewport(); //获取QPianter对象的视口矩形区域 QSize size = img.size(); //获取图像的大小 size.scale(rect.size(),Qt::KeepAspectRatio); painter.setViewport(rect.x(),rect.y(),size.width(),size.height()); //按照图形的比例大小重新设置视口矩形区域 painter.setWindow(img.rect()); //设置QPainter窗口大小为图像的大小 painter.drawImage(0,0,img); //打印图像 } }
未狂 2015-09-29
  • 打赏
  • 举报
回复
引用 5 楼 Jonix 的回复:
[quote=引用 3 楼 shihoongbo 的回复:] [quote=引用 1 楼 u013466477 的回复:] 一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机 二、自己实现 你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。 打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的 setPrinterName(printerName); 打印:printer打印机变量 QPainter p; p.begin(printer); 然后p.draw你想要的东西 p.end();
这个对于普通打印机是没有问题的 但是我这个USB打印机是默认驱动,系统没有把它归类到打印机设备里,所以QPrinterInfo获取不到设备名称[/quote] 那用 Office Word 之类的,能正常打印吗?? [/quote] 因为系统没有把USB打印机归类到打印机设备里,所以其他的打印也都不会找到USB打印设备 估计还是要用windows api做USB通信
冷静忍耐 2015-09-28
  • 打赏
  • 举报
回复
一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机 二、自己实现 你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。 打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的 setPrinterName(printerName); 打印:printer打印机变量 QPainter p; p.begin(printer); 然后p.draw你想要的东西 p.end();

16,216

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧