项目中需要从固定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);