十、Qt 操作PDF文件

这篇具有很好参考价值的文章主要介绍了十、Qt 操作PDF文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 《一、QT的前世今生》

《二、QT下载、安装及问题解决(windows系统)》
《三、Qt Creator使用》 ​​​

《四、Qt 的第一个demo-CSDN博客》

《五、带登录窗体的demo》

《六、新建窗体时,几种窗体的区别》 

《七、Qt 信号和槽》 
《八、Qt C++ 毕业设计》

《九、Qt C++ 数据库开发》

《十、Qt 操作PDF文件-CSDN博客》

一、下载Poppler开源库

使用Poppler第三方开源库,下载地址:Poppler,我下载的是最新版的poppler-24.01.0

poppler-24.01.0压缩包文件下载后需要自行编译,生成可用的类库。如果Poppler解析出来的PDF文件无法正常显示中文,需要将poppler-data-0.4.12包里的相关文件拷贝到指定目录下,才能正常显示中文。我的中文显示正常,所以我没有下载poppler-data-0.4.12包。

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

也可以下载从Poppler Win32 download | SourceForge.net 下载windows下直接可用的dll库,但是上边的poppler-24.01.0压缩包还是需要下载的,因为头文件在此包中。

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

二、搭建环境

在程序目录下新建poppler文件夹,我把公用的类库都放到了CommDEV文件夹下

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

将poppler-24.01.0压缩包中的 \qt5\src 文件夹下的所有文件拷贝到上边新建的poppler文件夹中。因为像poppler-qt5.h对应的是poppler-qt5.dll,在写程序时都要用到。

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

将poppler-0.39.0-win32包解压缩后的libpoppler.dll,libpoppler-qt5.dll和lib文件夹下的libpoppler.dll.a,libpoppler-qt5.dll.a

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

这4个dll拷贝到程序所在的目录下的poppler文件夹内。

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

以上步骤操作大家仔细看,别把文件放错了地方。

三、配置pro文件

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

以下标红的地方需要注意,我们是在windows系统下开发,没有用的咱们不选。

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

再按以上的步骤添加另一个dll

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

添加完的pro文件里多出了以下这些代码

表示添加成功。

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

四、开始写代码

引用头文件

#include "poppler-qt5.h"

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

编写代码

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

QString filename=QFileDialog::getOpenFileName(this,QString::fromUtf8("打开"),"","pdf file (*.pdf)");//获取pdf文件路径

if(filename.isEmpty()){

return;//如果文件路径为空则返回

}

Poppler::Document* document = Poppler::Document::load(filename);//加载pdf文件

if (!document || document->isLocked()) {

QMessageBox::information(this,"提示",QString::fromUtf8("无法打开文件:%1").arg(filename));//如果加载不成功,输出错误信息,并返回

delete document;

return;

}

//再次检查document是否可用

if (document == 0) {

// ui->label_message->setText(QString::fromUtf8("文件内无内容:%1").arg(filename));//不可用则输出错误信息,并返回

return;

}

//将PDF文档的每一页输出为QImage

// for(int pageNumber=0;pageNumbernumPages();pageNumber++){

//获取指定页码的页面,页码从0开始

Poppler::Page* pdfPage = document->page(0);

if (pdfPage == 0) {

qDebug()

return;

}

//将页面内容转换为QImage

QImage image = pdfPage->renderToImage();

// double xres=72.0, yres=72.0; int x=-1, y=-1, width=-1, height=-1;

// QImage image = pdfPage->renderToImage(xres, yres, x, y, width, height);

// if (image.isNull()) {

// qDebug()

// return;

// }

// 在QLabel中显示QImage

QLabel *label = new QLabel(this);

label->setPixmap(QPixmap::fromImage(image));

ui->horizontalLayout->addWidget(label);

//使用完后记得释放掉Poppler::Page* pdfPage

delete pdfPage;

// }

delete document;

如果在编译程序时出现错误,缺少poppler-export.h,可从以下连接下载

https://download.csdn.net/download/zhouhui1982/88747128

运行效果

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

十、Qt 操作PDF文件,QT C++,qt,pdf,开发语言,c++

目前只能显示第一页的pdf内容,在下一章节中,我们再来细化pdf的相关操作,比如滚动条,下一页,上一页按钮等。以前打包依赖库,支持可以单独运行的程序。文章来源地址https://www.toymoban.com/news/detail-798938.html

到了这里,关于十、Qt 操作PDF文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • QT生成Word PDF文档

    需求:将软件处理的结果保存为一个报告文档,文档中包含表格、图片、文字,格式为word的.doc和.pdf。生成word是为了便于用户编辑。 开发环境:qt4.8.4+vs2010 在qt的官网上对于pdf的操作介绍如下:http://qt-project.org/wiki/Handling_PDF 。即通过QPrinter类来创建pdf;还有通过第三方库Po

    2024年02月13日
    浏览(56)
  • QT技术实现Word模板编辑及转PDF

    本文详细介绍了如何使用QT技术进行Word模板的编辑,包括添加书签、替换文本和图片等操作,以及如何将Word文档转换为PDF格式。

    2024年02月12日
    浏览(44)
  • 使用 Qt 生成 Word 和 PDF 文档的详细教程

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。 Qt 是一个跨平台的应用程序开发框架,除了用于创建图形界面应用程序外,还可以用来生成 Word 和 PDF 文档。本文

    2024年02月12日
    浏览(49)
  • 07-3_Qt 5.9 C++开发指南_文件目录操作

    Qt 为文件和目录操作提供了一些类,利用这些类可以方便地实现一些操作。Qt 提供的与文件和目录操作相关的类包括以下几个。 QCoreApplication:用于提取应用程序路径、程序名等文件信息 QFile: 除了打开文件操作外,QFile 还有复制文件、删除文件等功能 QFileInfo:用于提取文件的信

    2024年02月13日
    浏览(53)
  • QT基础教程(QT中的文件操作)

    本篇文章我们来讲解QT中的文件操作,文件操作对于QT来说是非常重要的一个点,那么下面的话将给大家详细的讲解QT中的文件操作。 在QT中,文件操作是通过Qt的文件和目录处理类来完成的。以下是一些常用的文件操作功能: 1.打开和关闭文件: 使用QFile类可以在QT中打开和关

    2024年02月05日
    浏览(47)
  • 【Qt】Qt中的拖放操作实现——拖放文件以及自定义拖放操作

    文章参考《Qt Creator快速入门(第三版)》。 拖放操作分为拖动Drag和放下Drop,Qt提供了强大的拖放机制,可在帮助文档中通过Drag and Drop查看。 在Qt中,数据拖动时会被存储为MIME类型(Multipurpose Internet Mail Extensions)。Qt提供QMimeData类表示MIME类型的数据,并使用QDrag类完成数

    2023年04月19日
    浏览(57)
  • 「Qt」文件读写操作

            我们知道 C 和 C++ 都提供了文件读写的类库,不过 Qt 也有一套自己的文件读写操作;本文主要介绍 Qt 中进行文件读写操作的类 —— QFile 。         一般的桌面应用程序,当我们想要打开一个文件时,通常会弹出一个文件对话框。在 Qt 中,文件对话框使用 QFileDial

    2024年02月12日
    浏览(43)
  • Qt——文件的读写操作

    文件的读写是很多应用程序具有的功能,甚至某些应用程序就是围绕着某一种格式文件的处理而开发的,所以文件读写是应用程序开发的一个基本功能。 Qt 提供了两种读写纯文本文件的基本方法: 用 QFile 类 的 IODevice 读写功能直接进行读写 利用 QFile 和 QTextStream 结合起来,

    2024年02月13日
    浏览(47)
  • QT文件操作

    时间记录:2024/1/10 文件读写的一些注意点,读文件时文件名可以是相对路径,但是向文件写内容时文件名需要是绝对路径 1.文件对话框 QFileDialog 静态方法getOpenFileName弹出文件选择框,选择要打开的文件,返回打开文件的路径+文件名 2.文件操作 QFile类 常用属性: (1)setFil

    2024年02月03日
    浏览(38)
  • Qt--文件操作

    在Qt中对于文件操作,利用一个例子讲明白,就说通过按钮选择一个文件并将其内容打开到文本框中,注意:需要包含对应的头文件方可执行 读文件的方式: 首先要得到这个要打开的文件的路径,先默认打开的界面是桌面,选择路径时需要判断是否选中,这个通过isEmpty这个

    2024年02月12日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包