QT开发:
我调用打印机失败,控制台输出如下:
是在
这一行代码上出错的,程序根本没有进入if判断。
我该怎么办?
QT开发:
我调用打印机失败,控制台输出如下:
是在
在Qt中,如果你在非本机打印机上使用QPrintDialog,就会出现 "QPrintDialog: Cannot be used on non-native printers " 的错误。这是因为QPrintDialog只能用于本机打印机,无法与远程打印机进行通信。
要解决这个问题,你可以通过手动创建QPagedPaintDevice类并将其与远程打印机关联,然后使用该对象来进行打印操作。具体步骤如下:
1.创建一个QPrinter对象,并设置其输出格式为QPrinter::PdfFormat(或其他格式)。
QPrinter printer(QPrinter::HighResolution);
printer.setOutputFormat(QPrinter::PdfFormat);
QPagedPaintDevice *paintDevice = printer.paintEngine()->paintDevice();
QPrinter *remotePrinter = qobject_cast<QPrinter*>(paintDevice);
remotePrinter->setOutputFormat(QPrinter::NativeFormat);
remotePrinter->setPrinterName("Remote Printer Name");
QPrintDialog printDialog(remotePrinter);
if (printDialog.exec() == QDialog::Accepted) {
// 打印操作
}
这样就可以在Qt中连接到远程打印机了,上面只是一个大概的demo,我自己也没进行过测试,实际的话,还得需要你进行修改适配