漂亮购物网站欣赏,网站301跳转代码,大型商城网站建站,企业网站建设的流程与原则文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget
姊妹篇:
Qt WORD/PDF#xff08;一#xff09;使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF#xff08;二#xff09;使用 QtPdfium库实现… 文章目录 一、简介二、下载 QtPdfium三、加载 QtPdfium 动态库四、Demo 使用 关于QT Widget 其它文章请点击这里: QT Widget
姊妹篇:
Qt WORD/PDF一使用 QtPdfium库实现 PDF 操作 Qt WORD/PDF二使用 QtPdfium库实现 PDF 预览、打印等 Qt WORD/PDF三使用 QAxObject 对 Word 替换QML Qt WORD/PDF四使用 QAxObject 对 Word 替换QWidget 一、简介
官方
Qt6 从版本 6.2 开始提供了对PDF的官方支持。这个模块基于 Pdfium为Qt应用提供了原生的PDF渲染功能使得开发者可以更方便地在Qt应用中集成PDF查看和处理功能。而我们为了更好的兼容性一般采用 Poppler 或 QtPdfium PDF渲染引擎。
Poppler
Poppler是一个开源的PDF渲染库基于xpdf项目提供了一个强大的API用于PDF文档的解析和渲染。它支持将PDF转换为图像、提取文本、查找内容、以及更多PDF操作。它的优势在于功能全面且经过了广泛的测试。
Poppler提供了对PDF文件的广泛支持包括不同的字体、图形和表单的渲染。
它支持多种语言包括C和Python并且有多个Qt绑定如poppler-qt5以便在Qt中使用。
QtPdfium
QtPdfium 是基于Pdfium库的一个Qt绑定。Pdfium是一个由Google开发并开源的PDF渲染引擎它被广泛应用于Chrome浏览器和其他一些Google产品中。QtPdfium则是一个专门将Pdfium引入Qt项目的封装使得Qt应用程序可以使用Pdfium的PDF渲染功能。
它的主要目标是高效的PDF文档渲染特别是在Web浏览器等高性能需求的应用场景中。相较于PopplerPdfium侧重于简洁、高效的渲染和性能优化。
本文主要介绍 QtPdfium 的使用。
环境
QT5.15.2 MSVC2019 Qwidget
二、下载 QtPdfium
方法一
GitHub 下载 QtPdfiumhttps://github.com/paulovap/qtpdfium
方法二
Gitee 上其它大佬编译的https://gitee.com/Qwyi/QtPdfium_Build_Source
qtpdfiumBuild: 为基于Qt 5.12.11 mingw 64位编译的 qt版本动态和静态库文件以及头文件可直接添加使用 - sourceZib: 为原始的可编译的qt-pdfium 源代码压缩包文件 - src: 为编译时需要的源码文件 - winLibs: 为编译时需要使用的windows 库文件包括x32和x64位库目前编译的采用x64位库
三、加载 QtPdfium 动态库
博主使用的 Qt 5.15.2 不能编译成功但是生成的dll、bin及include也能用 右键 “pdfium” 构建及 qmake
在“ build ” 文件夹下lib 文件有
取图中四个文件
再取 QtPdfium_Build_Source-master\qtpdfiumBuild 下的 include 将上述文件拷贝到工程文件下后目录结构
qpdfium ├── include │ ├── qpdfium.h │ ├── qpdfiumglobal.h │ ├── qpdfiumpage.h ├── libs │ ├── Qt5Pdfium.dll │ ├── Qt5Pdfium.lib │ ├── Qt5Pdfiumd.dll │ ├── Qt5Pdfiumd.lib
使用外部库添加 手动添加更加方便 注意 debug 与 release 的区别这个很重要
四、Demo 使用
参考https://github.com/paulovap/qtpdfium Readme
要加载PDF文件只需执行以下操作
#include QtPdfium/QPdfiumQPdfium pdf(mypdf.pdf);
qDebug() pdf.isValid(); //should return true使用 QPdfium::pageCount() 获得页面数。 通过索引访问页面 #include QtPdfium/QPdfiumQPdfium pdf(mypdf.pdf);
QPdfiumPage page pdf.page(0);
qDebug() page.width(); // should show something!生成图像
#include QtPdfium/QPdfiumQPdfium pdf(mypdf.pdf);
QPdfiumPage page pdf.page(0);
QImage image page.image(3); //renders it 3 times bigger//QPixmap 是 Qt 框架中的一个类用于处理图像的显示。它通常用于将图像显示在控件上如 QLabel、QPushButton 等
//我们可以利用QPixmap 将图像显示在 label上的。
label-setPixmap(QPixmap::fromImage(image)); 提取文本
#include QtPdfium/QPdfiumQPdfium pdf(mypdf.pdf);
QPdfiumPage page pdf.page(0);
QString pageText page.text();注意
使用 QtPdfium 偶尔无法读中文路径的PDF不知道是不是库本身的问题
参考
qt 使用qtpdfium实现读取pdf文件 商务合作请加我: 19976699725
关于QT Widget 其它文章请点击这里: QT Widget