通过网盘分享的文件:QtPDF 链接: https://pan.baidu.com/s/1_q_y3-rVSqLOrJtTdE5f7Q 提取码: mfhs --来自百度网盘超级会员v1的分享 | 通过网盘分享的文件:QtPDF 链接: https://pan.baidu.com/s/1_q_y3-rVSqLOrJtTdE5f7Q 提取码: mfhs --来自百度网盘超级会员v1的分享 | 基于 Qt 框架的 PDF 生成库,提供简单易用的 API 用于生成 PDF 文档,支持文本、图片和表格输出。文本输出:支持将文本内容保存为 PDF,可设置字体、对齐方式、换行模式等表格生成:支持生成格式化的 PDF 表格,包含标题、副标题、列名等灵活配置:支持纸张大小、方向(横向/纵向)、页边距等设置样式定制:支持字体样式设置(粗体、斜体、下划线)和特殊标记(如历史记录红色显示)单例模式:PdfAPI 类采用单例模式,方便全局调用在您的 Qt 项目文件(.pro)中添加以下内容:include(path/to/QtPDF/QtPDF.pri) QT += printsupport HEADERS += \ path/to/outputpdf.h SOURCES += \ path/to/outputpdf.cpp
#include "outputpdf.h"// 创建 PDF 文档OutputPDF pdf("output.pdf");// 设置字体样式pdf.SetTextFont("Microsoft YaHei", 16, true, false, false);// 设置文本对齐和换行pdf.SetTextOption(Qt::AlignLeft, QTextOption::WordWrap);// 设置行高pdf.SetRowHeight(300);// 写入文本内容pdf.SaveDataToPDF("这是第一行文本");pdf.SaveDataToPDF("这是第二行文本");// 添加新页面pdf.SetNewPage();// 结束绘制pdf.SetPDFEnd(); 2. 使用 OutputPDF 类保存图片到 PDF#include"outputpdf.h"// 创建 PDF 文档(指定图片 PDF 路径)OutputPDF pdf("text.pdf", "images.pdf");// 准备图片列表QVector<QPixmap> pixmaps;pixmaps.append(QPixmap("image1.png"));pixmaps.append(QPixmap("image2.png"));// 保存图片到 PDFpdf.SavePixmapToPDF(pixmaps, 0, 0);// 结束绘制pdf.SetPDFEndPixmap();
#include"outputpdf.h"// 获取 PdfAPI 单例PdfAPI *pdfApi = PdfAPI::Instance();// 准备数据QString fileName = "table.pdf";QString title = "数据统计表";QString subTitle = "生成日期:2024-01-01";QList<QString> columnNames;columnNames << "编号" << "名称" << "数量" << "备注";QList<int> columnWidths;columnWidths << 80 << 150 << 80 << 150;QStringList content;content << "001;产品A;100;正常";content << "002;产品B;200;正常";content << "003;产品C;150;历史记录";// 生成 PDF 表格(纵向打印,检查历史记录标记)pdfApi->SavePdf(fileName, title, subTitle, columnNames, columnWidths, content, false, true, QPrinter::A4); 4. 使用 PdfAPI 类生成复杂表格(双标题)#include"outputpdf.h"PdfAPI *pdfApi = PdfAPI::Instance();QString fileName = "complex_table.pdf";QString title = "多级数据统计表";QList<QString> columnNames;columnNames << "项目" << "数值" << "状态";QList<int> columnWidths;columnWidths << 100 << 100 << 100;QStringList subTitle1;subTitle1 << "第一季度数据" << "第二季度数据";QStringList subTitle2;subTitle2 << "2024-Q1" << "2024-Q2";QStringList content;content << "销售额|1000|正常|0;利润|200|正常|0";content << "销售额|1200|正常|0;利润|250|历史记录|1";// 生成复杂表格(横向打印)pdfApi->SavePdf(fileName, title, columnNames, columnWidths, subTitle1, subTitle2, content, true, true, QPrinter::A4);
|