QT实现导出PDF、打印预览

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

/************************************************************************/
/* 预览按钮槽函数                                               */
/************************************************************************/
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");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值