我正在尝试使用QWebview在打印机上打印图像文件,但不打印图像空白页.请找到以下代码.
void ChartViewer::onprintBtnClicked()
{
QString fileName = QFileDialog::getOpenFileName(this,"Open File",QString(),"Pdf File(*.png)");
qDebug()<<"Print file name is "<<fileName;
if(fileName.endsWith(".png"))
{
QPrinter printer;
QWebView *view = new QWebView;
QPrintDialog *dlg = new QPrintDialog(&printer,this);
printer.setOutputFileName(fileName);
if(dlg->exec() != QDialog::Accepted)
return;
view->load(fileName);
view->print(&printer);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用view-> show(),那么它已正确显示图像,但打印页面空白.请你查看上面的代码并纠正我在哪里做错了.
此致Lekhraj
您将一些png文件加载到fileName中.然后你设置QPrinter打印到那个png文件printer.setOutputFileName(fileName);.I假设它是错误的,它应该是一些不同的pdf文件.
我不确定我是否理解你想做什么?如何使用QPrinter打印图像文件?进入pdf文件?为什么要尝试使用QWebView?您可以使用QImage加载图像文件,然后在QPrinter上使用QPainter进行绘制.
#include <QtGui>
#include <QtCore>
int main(int argc, char** argv) {
QApplication app(argc, argv);
QString fileName = QFileDialog::getOpenFileName(0,"Open File",QString(),"PNG File(*.png)");
QPrinter printer;
QPrintDialog *dlg = new QPrintDialog(&printer,0);
if(dlg->exec() == QDialog::Accepted) {
QImage img(fileName);
QPainter painter(&printer);
painter.drawImage(QPoint(0,0),img);
painter.end();
}
delete dlg;
QTimer::singleShot(1, &app, SLOT(quit()));
app.exec();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
您的一些问题可能与您的其他问题重叠 /sf/ask/580806761/