Qt:QPdfDocument渲染PDF文件时的信息丢失问题

背景

Qt自带了QPdfDocument可以用来打开并渲染PDF文件,同时Qt也提供了qtpdf multipage example,可以浏览多页PDF文件,如下图:

问题

但在使用过程中发现,对于某些PDF文件,QPdfDocument在渲染时会丢失部分信息。

多次尝试后总结出规律:QPdfDocument渲染时会丢失通过编辑工具添加的内容 ,以下图中的PDF文件为例:

黑字是利用Word生成的PDF内容,红字是用Windows自带浏览器Edge中的编辑工具添加的内容。

这个PDF文件在诸如Adobe的PDF viewer和Chrome中都能正常显示:

但是在Qt的qtpdf multipage example中却会丢失红色部分的内容,内容就是在QPdfDocument渲染时丢失的:

结论

显然QPdfDocument渲染PDF文件时会丢失编辑工具添加的内容,如果比较在意这一点,就得考虑其他方案了。

经过测试,使用poppler将PDF转化为图片就不会丢失内容,poppler的具体使用可以参考poppler官网

相关推荐
mmz120719 小时前
前缀和问题(c++)
c++·算法·图论
ULTRA??19 小时前
初学protobuf,C++应用例子(AI辅助)
c++·python
旖旎夜光19 小时前
list实现(7)(上)
c++
不会c嘎嘎19 小时前
深入理解 C++ 异常机制:从原理到工程实践
开发语言·c++
崇山峻岭之间20 小时前
C++ Prime Plus 学习笔记026
c++·笔记·学习
赖small强21 小时前
【Linux C/C++开发】Linux 平台 Stack Protector 机制深度解析
linux·c语言·c++·stack protector·stack-protector·金丝雀机制
Wild_Pointer.21 小时前
环境配置指南:全景目录
c++
疋瓞21 小时前
C++_win_QT6学习《3》_结合qt项目开发学习git仓库相关知识
c++·qt·学习
minji...1 天前
Linux 基础IO(一) (C语言文件接口、系统调用文件调用接口open,write,close、文件fd)
linux·运维·服务器·网络·数据结构·c++
第二只羽毛1 天前
C++ 高性能编程要点
大数据·开发语言·c++·算法