我需要点击一个按钮,以硬件打印PDF文件(已存在的文件)。
这就像需要打印的文件已经确定并存在并在点击打印按钮QPushButton
本PDF文件应该没有弹出一个对话框prinitng发送到打印机队列。
这可能与QPrinter来或Qt的任何其他设备? (平台是Linux)。
我需要点击一个按钮,以硬件打印PDF文件(已存在的文件)。
这就像需要打印的文件已经确定并存在并在点击打印按钮QPushButton
本PDF文件应该没有弹出一个对话框prinitng发送到打印机队列。
这可能与QPrinter来或Qt的任何其他设备? (平台是Linux)。
在一般情况下,Qt拥有(据我所知)没有内置的方式做到这一点。 你需要了解如何PDF内容转换成(例如)后脚本转换为发送到打印机的程序。
快速谷歌搜索想出了一个名为“库poppler的 ”,能显示PDF内容上,比如说, QImage
实例,然后你可以打印这些。
这就是说,如果你限制你自己到Linux,你可以只创建一个QProcess
并调用是这样的:
lp document.pdf
在Qt 5.2,我可以使用这些功能来将HTML转换 - >的WebView - >打印()本来我想直接打印PDF的,但这并工作。 (和大多数这个代码是从其他网站或论坛云集)
void MainWindow::on_btnHtmltoWebView_clicked()
{
QString html = ui->txtHtml->toPlainText();
ui->webView->setHtml(html);
ui->tabWidget->setCurrentIndex(3);
}
void MainWindow::on_btnPrintWebView_clicked()
{
QPrinter p;
p.setPaperSize(QPrinter::A4);
p.setFullPage(false);
p.setResolution(100);
p.setFromTo(0,1); //only print 1 page
p.setOrientation(QPrinter::Portrait);
QString printerName = QPrinterInfo::defaultPrinter().printerName();
ui->webView->print(&p);
showTrayMessage("Printing" ,"Output format: "+ QString::number(p.outputFormat()) +
QString("Printer state: ") + QString::number(p.printerState())
);
}