当前位置: 代码迷 >> QT开发 >> 如何用QPrinter连接USB打印机打印图片
  详细解决方案

如何用QPrinter连接USB打印机打印图片

热度:479   发布时间:2016-04-25 02:52:30.0
怎么用QPrinter连接USB打印机打印图片
急求,弄了一天了,找不到方法
------解决思路----------------------
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);                      //打印图像  
    }  
}  
------解决思路----------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

一、你要是直接调用Qt的打印对话框,那直接就可以打印了,Qt自己帮你找打印机

二、自己实现
你只要连上打印机QPrinter会自己找,你直接QPrinterInfo获取就好了。
打印的时候选择打印机,就是设置打印机名字从QPrinterInfo获取的
setPrinterName(printerName);

打印:printer打印机变量
QPainter p;
p.begin(printer);
然后p.draw你想要的东西
p.end();

这个对于普通打印机是没有问题的
但是我这个USB打印机是默认驱动,系统没有把它归类到打印机设备里,所以QPrinterInfo获取不到设备名称


那用 Office Word 之类的,能正常打印吗??

因为系统没有把USB打印机归类到打印机设备里,所以其他的打印也都不会找到USB打印设备
估计还是要用windows api做USB通信


感觉你需要做一个驱动
  相关解决方案