/************************************************************************/
/* 预览按钮槽函数 */
/************************************************************************/
void EditReportView::on_m_PreviewPushButton_clicked()
{
/*xml转换成PDF*/
SaveXmlToPDF();
/*显示打印预览窗口*/
ShowPrintPreviewDialog();
}
/*显示打印预览窗口*/
void EditReportView::ShowPrintPreviewDialog()
{
QPrinter printer;
QPrintPreviewDialog previewDialog(&printer, this);
connect(&previewDialog, SIGNAL(paintRequested(QPrinter*)), this, SLOT(Preview(QPrinter*)));
/*获取屏幕分辨率*/
QDesktopWidget* desktopWidget = QApplication::desktop();
QRect screenRect = desktopWidget->screenGeometry();
int ActScreenW = screenRect.width();
int ActScreenH = screenRect.height();
previewDialog.setMinimumHeight(ActScreenH);
previewDialog.setMinimumWidth(ActScreenW);
previewDialog.exec(); //打印对话框显示,paintRequest触发
}
void EditReportView::Preview(QPrinter* printer)
{
ui.textEdit->print(printer);
}
/*XML生成PDF文件*/
void EditReportView::SaveXmlToPDF()
{
QString patient_path = DirectoryController::Instance().CreatePatientDirectory(this->m_ReportModel.GetPatientId());
QString case_path = DirectoryController::Instance().CreateCaseDirectory(patient_path, this->m_ReportModel.GetReportId());
QString report_file_name = case_path + "/report.pdf";
printf("report_file_name = %s\n", report_file_name.toLocal8Bit().data());
QDateTime current_date_time = QDateTime::currentDateTime();
QString current_date = current_date_time.toString("yyyy-MM-dd hh:mm:ss");

本文介绍了一个基于Qt的应用程序中实现的报告预览及PDF文件生成的功能。具体包括通过XML数据生成PDF文件的方法,以及如何设置PDF的内容、样式,并展示如何在应用程序中预览这些PDF文件。
最低0.47元/天 解锁文章
2020

被折叠的 条评论
为什么被折叠?



