在qt中通过打印机设备打印pdf文件

时间:2014-10-25 11:36:37

标签: c++ qt pdf printing network-printers

我是新的C ++ QT程序员,我想通过我的打印机设备(或网络打印机)打印多个pdf文件,我搜索并找到本教程: Qt Handling PDF file 但我无法编译MuPDF和Poppler并在我的应用程序中使用这些第三方库。我的pdf文件也加密了,必须从内存中打印文件。 是通过我的打印机设备打印pdf文件的方法吗?

1 个答案:

答案 0 :(得分:2)

你好,你可以使用这样的东西。

QPrinter printer(QPrinter::HighResolution);
printer.setOrientation(QPrinter::Portrait);
QPrintDialog dlg(&printer, this);
dlg.setWindowTitle("Print");

if (dlg.exec() == QDialog::Accepted)
{
    QWidget* widget = new QWidget(his); // this widget is your pdf widget
    QPixmap printPixmap(widget->width(),widget->height());
    widget->render(&printPixmap,QPoint(),QRegion(0,0,widget->width(),widget->height()));
    QPainter painterPixmap(&printer);
    painterPixmap.scale(4,4);
    painterPixmap.drawPixmap(printer.pageRect().topLeft(), printPixmap, printPixmap.rect());
}