Qt5使用QPdfWriter方式写pdf文档
来源:互联网 发布:xin域名是什么意思 编辑:程序博客网 时间:2024/06/05 01:59
今日,项目中要使用保存pdf文件的功能,于是打算使用Qt完成此功能。
网上搜索了发下,网上大部分前辈使用QPrinter即打印机的方式答应pdf。
这种方式,在qt4成为唯一的选择,然而身为qt5的版本,qt提供了一个独立的pdf文件写入方式,那就是QPdfWriter。QPdfWriter写pdf的方式,网上很少东西,因此只能去研究文档,自己写了,以下是研究后使用的方案,写出来共大家参考一下。
QString fileName;QFile pdfFile(fileName);pdfFile.open(QIODevice::WriteOnly); // 打开要写入的pdf文件QPdfWriter* pPdfWriter = new QPdfWriter(&pdfFile); // 创建pdf写入器pPdfWriter->setPageSize(QPagedPaintDevice::A4); // 设置纸张为A4pPdfWriter->setResolution(300); // 设置纸张的分辨率为300,因此其像素为3508X2479int iMargin = 60; // 页边距pPdfWriter->setPageMargins(QMarginsF(iMargin, iMargin, iMargin, iMargin));QPainter* pPdfPainter = new QPainter(pPdfWriter); // qt绘制工具// 标题,居中QTextOption option(Qt::AlignHCenter | Qt::AlignVCenter);option.setWrapMode(QTextOption::WordWrap);// 标题上边留白int iTop = 100;// 文本宽度2100int iContentWidth = 2100;// 标题,22号字QFont font;font.setFamily("simhei.ttf");int fontSize = 22;font.setPointSize(fontSize);pPdfPainter->setFont(font); // 为绘制工具设置字体pPdfPainter->drawText(QRect(0, iTop, iContentWidth, 90), QString::fromLocal8Bit("我的标题我骄傲"), option);// 内容,16号字,左对齐fontSize = 16;font.setPointSize(fontSize);pPdfPainter->setFont(font); option.setAlignment(Qt::AlignLeft | Qt::AlignVCenter);iTop += 60;pPdfPainter->drawText(QRect(0, iTop, iContentWidth, 60), QString::fromLocal8Bit("1、目录一"));iTop += 60;// 左侧缩进2字符int iLeft = 120;pPdfPainter->drawText(QRect(iLeft, iTop, iContentWidth - iLeft, 60), QString::fromLocal8Bit("我的目录一的内容。"), option);iTop += 60;pPdfPainter->drawText(QRect(0, iTop, iContentWidth, 60), QString::fromLocal8Bit("2、目录二"));iTop += 60;pPdfPainter->drawText(QRect(iLeft, iTop, iContentWidth - iLeft, 60), QString::fromLocal8Bit("我的目录一的内容"), option);delete pPdfPainter;delete pPdfWriter;pdfFile.close();
运行效果如图:
我同写了Python版本的QPdfWrite使用,详见 PyQt5使用QPdfWriter方式写pdf文档
阅读全文
2 0
- Qt5使用QPdfWriter方式写pdf文档
- PyQt5使用QPdfWriter方式写pdf文档
- QT5帮助文档使用
- java使用iText生成pdf文档的对齐方式
- Qt下利用Qprinter或者QPdfWriter导出文件为PDF
- pdf文档操作--写操作 PdfUtils java
- ITEXT 用java写pdf文档
- 使用java生成pdf文档
- 使用Java生成Pdf文档
- 使用Java生成Pdf文档
- 使用Java生成Pdf文档
- 使用iText生成pdf文档
- 使用C#创建PDF文档
- 使用PDFBox解析PDF文档
- 使用PDFBox处理PDF文档
- 使用PDFBox处理PDF文档
- 使用PDFBox处理PDF文档
- 使用PDFBox处理PDF文档
- C语言实现数制转换
- NPM简单设置
- 【Effection C++】读书笔记 条款07~条款08
- 第一天笔记 微营销实战技巧之微信、微博、微电商
- Java计算FIFO的缓存未命中数
- Qt5使用QPdfWriter方式写pdf文档
- python2.7 在windows 7 64bit上 桌面右下角弹出气泡
- 技术就是一个积累的过程
- 利用hibernate实现多条件组合查询的两种方式(2017年5月18日22:45:09)
- c++第五次上机实验
- 效率篇-定时任务管理系统,替代crontab
- C++作业6
- 最大子列和问题
- 欧拉函数