QPdfDocument 类

QPdfDocument 类加载 PDF 文档并从中渲染页面。更多信息...

头文件 #include <QPdfDocument>
继承 QObject

公共类型

枚举类错误 { None, Unknown, DataNotYetAvailable, FileNotFound, InvalidFileFormat, …, UnsupportedSecurityScheme }
枚举类元数据字段 { Title, Author, Subject, Keywords, Creator, …, ModificationDate }
枚举类页面模型角色 { Label, PointSize }
枚举类状态 { Null, Loading, Ready, Unloading, Error }

属性

公共函数

QPdfDocument(QObject *parent)
virtual~QPdfDocument() override
voidclose()
QPdfDocument::Errorerror() const
QPdfSelectiongetAllText(int page)
QPdfSelectiongetSelection(int page, QPointF start, QPointF end)
QPdfSelectiongetSelectionAtIndex(int page, int startIndex, int maxLength)
QPdfDocument::Errorload(const QString &fileName)
voidload(QIODevice *device)
QVariantmetaData(QPdfDocument::MetaDataField field) const
int页面总数() const
(since 6.6) intpageIndexForLabel(const QString &label)
QString页面标签(int page)
QAbstractListModel *pageModel()
QSizeF页面点大小(int page) const
QString密码() const
QImagerender(int page, QSize imageSize, QPdfDocumentRenderOptions renderOptions = QPdfDocumentRenderOptions())
voidsetPassword(const QString &password)
QPdfDocument::Status状态() const

信号

voidpageCountChanged(int pageCount)
voidpageModelChanged()
voidpasswordChanged()
voidstatusChanged(QPdfDocument::Status status)

详细描述

成员类型文档

枚举类 QPdfDocument::Error

此枚举描述了在尝试对文档进行最后操作时发生的错误。

常量描述
QPdfDocument::Error::None0未发生错误。
QPdfDocument::Error::Unknown1未知类型的错误。
QPdfDocument::Error::DataNotYetAvailable2文档仍在加载中,尝试操作还为时过早。
QPdfDocument::Error::FileNotFound3提供给load() 的文件未找到。
QPdfDocument::Error::InvalidFileFormat4提供给load() 的文件不是一个有效的PDF文件。
QPdfDocument::Error::IncorrectPassword5提供给setPassword() 的密码不适用于此文件。
QPdfDocument::Error::UnsupportedSecurityScheme6QPdfDocument 无法解除此类PDF文件的锁定。

另请参阅 QPdfDocument::error()。

枚举类 QPdfDocument::MetaDataField

此枚举描述了元数据的可用字段。

常量描述
QPdfDocument::MetaDataField::Title0文档标题,类型为 QString
QPdfDocument::MetaDataField::Author2创建文档的人的姓名,类型为 QString
QPdfDocument::MetaDataField::Subject1文档的主题,类型为 QString
QPdfDocument::MetaDataField::Keywords3与文档相关的关键字,类型为 QString
QPdfDocument::MetaDataField::Creator5如果文档是从其他格式转换为PDF的,则创建原始文档的符合产品名称,类型为 QString
QPdfDocument::MetaDataField::Producer4如果文档是从其他格式转换为PDF的,则将其转换为PDF的符合产品名称,类型为 QString
QPdfDocument::MetaDataField::CreationDate6文档创建的日期和时间,类型为 QDateTime
QPdfDocument::MetaDataField::ModificationDate7最近修改文档的日期和时间,类型为 QDateTime

另请参阅 QPdfDocument::metaData()。

枚举类 QPdfDocument::PageModelRole

pageModel 中的角色。

常量描述
QPdfDocument::PageModelRole::LabelQt::UserRole用于显示的页面编号(QString)。
QPdfDocument::PageModelRole::PointSize257以点为单位的页面大小(英寸的1/72)(QSizeF)。

枚举类 QPdfDocument::Status

此枚举描述了文档的当前状态。

常量描述
QPdfDocument::Status::Null0在创建文档或关闭文档后的初始状态。
QPdfDocument::Status::Loading1在调用 load() 之后,在完全加载文档之前的状态。
QPdfDocument::Status::Ready2在文档完全加载且其数据可访问时的状态。
QPdfDocument::Status::Unloading3在调用 close() 后的状态。在此点上,文档仍然有效,且其所有数据均可访问。
QPdfDocument::Status::Error4在加载后,如果加载失败的状态。

另请参阅 QPdfDocument::status().

属性文档

[只读] pageCount : const int

此属性存储加载文档的页面数量或 0,如果未加载文档。

访问函数

intpageCount() const

通知信号

voidpageCountChanged(int pageCount)

[只读] pageModel : QAbstractListModel* const

此属性持有一个 QAbstractListModel 实例,以提供指定页面的元数据,包含文档中每页一行。

访问函数

QAbstractListModel *pageModel()

通知信号

voidpageModelChanged()

另请参阅 QPdfDocument::PageModelRole.

password : QString

此属性存储文档密码。

如果文档受密码保护,则用户必须提供它,并且应用程序必须设置此属性。否则,不需要。

访问函数

QStringpassword() const
voidsetPassword(const QString &password)

通知信号

voidpasswordChanged()

[只读] status : const Status

此属性存储文档的当前状态。

访问函数

QPdfDocument::Statusstatus() const

通知信号

voidstatusChanged(QPdfDocument::Status status)

成员函数文档

[显式] QPdfDocument::QPdfDocument(QObject *parent)

使用父对象 parent 构建新的文档。

[覆盖虚函数 noexcept] QPdfDocument::~QPdfDocument()

销毁文档。

void QPdfDocument::close()

关闭文档。

QPdfDocument::Error QPdfDocument::error() const

如果 statusError,则返回错误类型,如果没有错误则返回 NoError

[可调用] QPdfSelection QPdfDocument::getAllText(int page)

返回给定 page 上的所有文本及其边界。

注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE

[可调用] QPdfSelection QPdfDocument::getSelection(int page, QPointF start, QPointF end)

如果有的话,返回有关给定 page 上在给定 startend 点之间可以找到的文本的信息。

注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE

[可调用] QPdfSelection QPdfDocument::getSelectionAtIndex(int page, int startIndex, int maxLength)

返回给定页面(从给定 startIndex 开始,最多包含 maxLength 个字符)上文本的信息。

注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE

QPdfDocument::Error QPdfDocument::load(const QString &fileName)

fileName 加载数据内容。

void QPdfDocument::load(QIODevice *device)

device 加载数据内容。

QVariant QPdfDocument::metaData(QPdfDocument::MetaDataField field) const

返回给定 field 的文档元数据。

[可调用, 自 6.6 版起] int QPdfDocument::pageIndexForLabel(const QString &label)

返回包含 label 的页面的索引,如果没有找到则返回 -1

注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE

此函数自 Qt 6.6 版本开始引入。

另请参阅pageLabel

[可调用] QString QPdfDocument::pageLabel(int page)

返回用于显示目的的 page 编号。

例如,一个文档可能有多个不同的编号部分。或许前言使用罗马数字,正文从第1页开始,附录从 A1 开始。当 PDF 阅读器显示页面编号时,为了避免混淆用户,应使用与打印在页面角落上的“数字”相同的“数字”,而不是我们在 API 中使用的基于零的页面索引(假设文档作者已经使页面标签与打印数字相匹配)。

如果文档没有自定义页面编号,此函数返回 page + 1

注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE

另请参阅pageIndexForLabel

[可调用] QSizeF QPdfDocument::pagePointSize(int page) const

以点为单位(1/72 英寸)返回 page 页的大小。

注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE

QImage QPdfDocument::render(int page, QSize imageSize, QPdfDocumentRenderOptions renderOptions = QPdfDocumentRenderOptions())

根据提供的 renderOptionspage 在大小为 imageSizeQImage 中进行渲染。

返回渲染的页面或在出错时返回空图像。

注意:如果 imageSize 与 PDF 文档中页面宽高比不匹配,页面将按比例缩放,以确保它覆盖完整的 imageSize

© 2024 The Qt Company Ltd. 此处包含的文档贡献是各自所有者的版权。此处提供的文档根据 GNU Free Documentation License version 1.3 的条款获得许可,由自由软件基金会发布。Qt 及其标志是 The Qt Company Ltd. 在芬兰及/或全球其他国家的商标。所有其他商标均为它们各自所有者的财产。