// 打印故障报告
void QFaultReport::PrintReport()
{
#ifndef QT_NO_PRINTER
// 读取文件
if (!QFile::exists("report.html"))
{
return ;
}
QFile file("report.html");
if (!file.open(QFile::ReadOnly))
{
return ;
}
QByteArray data = file.readAll();
QTextCodec *codec = Qt::codecForHtml(data);
QString str = codec->toUnicode(data);
file.close();
QPrinter printer(QPrinter::HighResolution);
printer.setPaperSize(QPrinter::A4);
printer.setOutputFormat(QPrinter::NativeFormat);
printer.setFontEmbeddingEnabled(true);
doc.setHtml(str);
// 打印预览
//QPrintPreviewDialog dialog(&printer);
//connect(&dialog, SIGNAL(paintRequested(QPrinter*)),this, SLOT(Print(QPrinter*)));
//dialog.exec();
// 打印
//printer.setOutputFileName("report.pdf");
QPrintDialog dialog(&printer);
if (dialog.exec())
{
QPainter painter(&printer);
if (! painter.begin(&printer)) // 准备打印
{
return ;
}
doc.print(&printer); // 开始打印
painter.end(); //关闭打印
}
#endif
}
// 打印预览
void QFaultReport::Print(QPrinter *printer)
{
#ifdef QT_NO_PRINTER
Q_UNUSED(printer);
#else
doc.print(printer);
#endif
}
刚谢谢帮解决了 打印预览空白,但是现在打印还是空白呀?打印又要怎么改呢?一直没想明白