找回密码
 立即注册
收起左侧

Linux系统下打印相关的两个问题,期望大家帮忙看看,谢谢

4
回复
8180
查看
[复制链接]
累计签到:3 天
连续签到:1 天
来源: 2016-5-23 22:18:28 显示全部楼层 |阅读模式
1Qter豆
1、linux系统下面执行以下代码,只能获取到实际的打印机,而获取不到PDF等虚拟打印机;windows系统下实际打印机和虚拟打印机都可以获取到;
      QList< QPrinterInfo > printList=QPrinterInfo::availablePrinters();
    for(int i=0;i<printList.size();i++)    {        ui->comboBox_PrintList->addItem(printList.at(i).printerName());        qDebug()<<printList.at(i).printerName()<<"\n\t";    } 2、linux系统下,用以下代码实现对当前屏幕截屏,并将所得图片进行打印,发现如果选pdf虚拟打印机可以正常打印,但是如果选一个实际的打印机却打不出来,而且没有任何异常提示;windows系统下不存在这样的问题//拷屏    QPixmap pic=QPixmap::grabWindow(QApplication::desktop()->winId());    bool bOK=  pic.save("D:/hyz/pic.JPG","JPG");    if(!bOK)    {        qDebug()<<"ScreenShot Faild!";    }    QImage *screenImage=new QImage("D:/hyz/pic.JPG");    //打印图片    QPrinter printer;    QPrintDialog printDialog(&printer,this);    if (printDialog.exec() == QDialog::Accepted) {        printer.setOrientation(QPrinter:andscape );        QPainter painter(&printer);        QRect rect = painter.viewport();        QSize size = screenImage->size();        size.scale(rect.size(), Qt::KeepAspectRatio);        painter.setViewport(rect.x(), rect.y(),size.width(), size.height());        painter.setWindow(screenImage->rect());        painter.drawImage(0, 0, *screenImage);        qDebug()<<"ScreenShot Sucessed!";    }

回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-5-24 09:13:52 显示全部楼层
我是新人,没有币,不好意思
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-5-24 14:10:17 显示全部楼层
各位刚刚姐姐,技术大牛们,怎么没人回答我的问题啊?
回复

使用道具 举报

尚未签到

2016-5-25 22:26:19 显示全部楼层
打印机都没用过的路过。。。。。。。。。。
回复

使用道具 举报

累计签到:3 天
连续签到:1 天
2016-5-25 23:49:38 显示全部楼层
Joey_Chan 发表于 2016-5-25 22:26
打印机都没用过的路过。。。。。。。。。。

谢谢朋友,期待有相关经验的大牛指点一二
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了