如何在C++中使用Poppler库读取PDF文件(二)

PDF目录

书籍一般都有目录,电子书也不例外。使用Poppler::Document加载PDF文件以后,就可以通过outline()方法,取得PDF文件的目录。

outline()方法的定义如下:

QVector<OutlineItem> outline() const;

我们看到,Poppler的目录是一个目录项(Poppler::OutlineItem)的列表(QVector)。

Popper::OutlineItem的默认构造函数会初始化一个空的目录项,其中不含任何跟PDF文件相关的信息。

Poppler::OutlineItem支持如下方法:

判断是否为空。上文提到,默认构造以后就是空的。

bool isNull() const;

目录项名称,即显示出来的目录项名字。

QString name() const;

目录项是否是展开状态。

bool isOpen() const;

目录项指向的页数等信息,是一个智能指针,根据这个指针,就可以取得目录具体指向什么位置。

QSharedPointer destination() const;

目录项指向的外部文件。

QString externalFileName() const;

目录项指向的URI。

QString uri() const;

目录项是否含有子项。

bool hasChildren() const;

目录项的子项列表。

QVector children() const;

所以综上,根据Poppler::Document的outline()方法,可以取得目录项的列表,再根据列表中每个目录项是否有子项,就可以完成一个目录项的遍历。

PDF链接目标

PDF文件中,除了目录以外,在正文中也会有超链接。无论是链接的视频、音频还是其它外部网址,这些都是通过LinkDestination表示的。

LinkDestination的定义为:

class POPPLER_QT6_EXPORT
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值