Bootstrap

qt 生成PDF文件

项目中需要从固定url下载pdf文件,并进行显示

pro文件中增加

QT       += core gui  printsupport

头文件需要添加

#include <QFileDialog>
#include <QPrinter>
#include <QTextDocument>

        QString pdfName = "E://"+QDateTime::currentDateTime().toString("yyyy-MM-dd-HH-mm-ss")+".pdf";
        QString pdfPath = QFileDialog::getSaveFileName(this,"QPdfWriter方式导出PDF",pdfName,"*.pdf");
        if(pdfPath.isEmpty())
            return;

        QPrinter printer;
        printer.setOutputFormat(QPrinter::PdfFormat);
        printer.setResolution(440);
        printer.setPageSize(QPagedPaintDevice::A4);
        printer.setOutputFileName(pdfPath);//使用的是绝对路径   加文件名
        printer.setOrientation(QPrinter::Portrait); // 默认页面方向
        printer.setPageMargins(5, 5, 5, 5, QPrinter::Millimeter); // 设置边距


        // 绘制的内容
        QString html = QString("<table width='600' border='1' align='center' frame='border' cellspacing='0' cellpadding='3px' rules='all'>");
        html += "<tr>";

        // 表头
        QStringList headers;
        headers<<"标题1"<<"标题2"<<"标题3"<<"标题4"<<"标题5";
        for (QString ti: headers) {
            html += QString("<th>%1</th>").arg(ti);
        }
        html += "</tr>";


        // 单元格内容
        for (int i = 0; i < 10; i++) {
            html += "<tr>";
            for (int j = 0; j < headers.count(); j++) {
                html += QString("<td>内容%1</td>").arg(j+1);
            }
            html += "</tr>";
        }
        html += "</table>";

        QTextDocument textDoc;
        textDoc.setHtml(html);
        textDoc.print(&printer);

;