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 |
void | close() |
QPdfDocument::Error | error() const |
QPdfSelection | getAllText(int page) |
QPdfSelection | getSelection(int page, QPointF start, QPointF end) |
QPdfSelection | getSelectionAtIndex(int page, int startIndex, int maxLength) |
QPdfDocument::Error | load(const QString &fileName) |
void | load(QIODevice *device) |
QVariant | metaData(QPdfDocument::MetaDataField field) const |
int | 页面总数() const |
(since 6.6) int | pageIndexForLabel(const QString &label) |
QString | 页面标签(int page) |
QAbstractListModel * | pageModel() |
QSizeF | 页面点大小(int page) const |
QString | 密码() const |
QImage | render(int page, QSize imageSize, QPdfDocumentRenderOptions renderOptions = QPdfDocumentRenderOptions()) |
void | setPassword(const QString &password) |
QPdfDocument::Status | 状态() const |
信号
void | pageCountChanged(int pageCount) |
void | pageModelChanged() |
void | passwordChanged() |
void | statusChanged(QPdfDocument::Status status) |
成员类型文档
枚举类 QPdfDocument::Error
此枚举描述了在尝试对文档进行最后操作时发生的错误。
常量 | 值 | 描述 |
---|---|---|
QPdfDocument::Error::None | 0 | 未发生错误。 |
QPdfDocument::Error::Unknown | 1 | 未知类型的错误。 |
QPdfDocument::Error::DataNotYetAvailable | 2 | 文档仍在加载中,尝试操作还为时过早。 |
QPdfDocument::Error::FileNotFound | 3 | 提供给load() 的文件未找到。 |
QPdfDocument::Error::InvalidFileFormat | 4 | 提供给load() 的文件不是一个有效的PDF文件。 |
QPdfDocument::Error::IncorrectPassword | 5 | 提供给setPassword() 的密码不适用于此文件。 |
QPdfDocument::Error::UnsupportedSecurityScheme | 6 | QPdfDocument 无法解除此类PDF文件的锁定。 |
另请参阅 QPdfDocument::error()。
枚举类 QPdfDocument::MetaDataField
此枚举描述了元数据的可用字段。
常量 | 值 | 描述 |
---|---|---|
QPdfDocument::MetaDataField::Title | 0 | 文档标题,类型为 QString。 |
QPdfDocument::MetaDataField::Author | 2 | 创建文档的人的姓名,类型为 QString。 |
QPdfDocument::MetaDataField::Subject | 1 | 文档的主题,类型为 QString。 |
QPdfDocument::MetaDataField::Keywords | 3 | 与文档相关的关键字,类型为 QString。 |
QPdfDocument::MetaDataField::Creator | 5 | 如果文档是从其他格式转换为PDF的,则创建原始文档的符合产品名称,类型为 QString。 |
QPdfDocument::MetaDataField::Producer | 4 | 如果文档是从其他格式转换为PDF的,则将其转换为PDF的符合产品名称,类型为 QString。 |
QPdfDocument::MetaDataField::CreationDate | 6 | 文档创建的日期和时间,类型为 QDateTime。 |
QPdfDocument::MetaDataField::ModificationDate | 7 | 最近修改文档的日期和时间,类型为 QDateTime。 |
另请参阅 QPdfDocument::metaData()。
枚举类 QPdfDocument::PageModelRole
在pageModel 中的角色。
常量 | 值 | 描述 |
---|---|---|
QPdfDocument::PageModelRole::Label | Qt::UserRole | 用于显示的页面编号(QString)。 |
QPdfDocument::PageModelRole::PointSize | 257 | 以点为单位的页面大小(英寸的1/72)(QSizeF)。 |
枚举类 QPdfDocument::Status
此枚举描述了文档的当前状态。
常量 | 值 | 描述 |
---|---|---|
QPdfDocument::Status::Null | 0 | 在创建文档或关闭文档后的初始状态。 |
QPdfDocument::Status::Loading | 1 | 在调用 load() 之后,在完全加载文档之前的状态。 |
QPdfDocument::Status::Ready | 2 | 在文档完全加载且其数据可访问时的状态。 |
QPdfDocument::Status::Unloading | 3 | 在调用 close() 后的状态。在此点上,文档仍然有效,且其所有数据均可访问。 |
QPdfDocument::Status::Error | 4 | 在加载后,如果加载失败的状态。 |
另请参阅 QPdfDocument::status().
属性文档
[只读]
pageCount : const int
此属性存储加载文档的页面数量或 0
,如果未加载文档。
访问函数
int | pageCount() const |
通知信号
void | pageCountChanged(int pageCount) |
[只读]
pageModel : QAbstractListModel* const
此属性持有一个 QAbstractListModel 实例,以提供指定页面的元数据,包含文档中每页一行。
访问函数
QAbstractListModel * | pageModel() |
通知信号
void | pageModelChanged() |
另请参阅 QPdfDocument::PageModelRole.
password : QString
此属性存储文档密码。
如果文档受密码保护,则用户必须提供它,并且应用程序必须设置此属性。否则,不需要。
访问函数
QString | password() const |
void | setPassword(const QString &password) |
通知信号
void | passwordChanged() |
[只读]
status : const Status
此属性存储文档的当前状态。
访问函数
QPdfDocument::Status | status() const |
通知信号
void | statusChanged(QPdfDocument::Status status) |
成员函数文档
[显式]
QPdfDocument::QPdfDocument(QObject *parent)
使用父对象 parent 构建新的文档。
[覆盖虚函数 noexcept]
QPdfDocument::~QPdfDocument()
销毁文档。
void QPdfDocument::close()
关闭文档。
QPdfDocument::Error QPdfDocument::error() const
如果 status 是 Error
,则返回错误类型,如果没有错误则返回 NoError
。
[可调用]
QPdfSelection QPdfDocument::getAllText(int page)
返回给定 page 上的所有文本及其边界。
注意: 此函数可以通过元对象系统从 QML 调用。请参阅 Q_INVOKABLE。
[可调用]
QPdfSelection QPdfDocument::getSelection(int page, QPointF start, QPointF end)
如果有的话,返回有关给定 page 上在给定 start 和 end 点之间可以找到的文本的信息。
注意: 此函数可以通过元对象系统从 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())
根据提供的 renderOptions 将 page 在大小为 imageSize 的 QImage 中进行渲染。
返回渲染的页面或在出错时返回空图像。
注意:如果 imageSize 与 PDF 文档中页面宽高比不匹配,页面将按比例缩放,以确保它覆盖完整的 imageSize。
© 2024 The Qt Company Ltd. 此处包含的文档贡献是各自所有者的版权。此处提供的文档根据 GNU Free Documentation License version 1.3 的条款获得许可,由自由软件基金会发布。Qt 及其标志是 The Qt Company Ltd. 在芬兰及/或全球其他国家的商标。所有其他商标均为它们各自所有者的财产。