Qt PDF C++ Classes

这是对 Qt PDF C++ 类的介绍,这些类可以用于处理 PDF 文档的加载、渲染和导航等操作。该模块在 Qt 5.14 中被引入。

命名空间

  • QPdf:包含 QtPdf 模块中使用的各种标识符。

  • QPdfDestination:定义了 PDF 文档中的页面位置和建议的查看缩放级别。
  • QPdfDocument:负责加载 PDF 文档并从中渲染页面。
  • QPdfDocumentRenderOptions:包含从 PDF 文档渲染页面的选项。
  • QPdfPageNavigation:负责处理 PDF 文档的导航。
  • QPdfPageRenderer:封装了 PDF 文档的页面渲染。
  • QPdfSelection:定义了在 PDF 文档的一页中被选中的文本范围及其几何边界。

详细描述
Qt PDF 模块包含了用于渲染 PDF 文档的类和函数。

如果要包含模块类的定义,需要使用以下指令:

#include <QtPdf>

如果要链接模块,需要在 qmake 项目文件中添加以下行:

QT += pdf

QPdf Namespace

QPdf 命名空间

QPdf 命名空间包含了在整个 QtPdf 模块中使用的各种标识符。

头文件:

#include <QPdf>

类型

  • 枚举:RenderFlag
  • 标志:RenderFlags
  • 枚举:Rotation

详细描述

  • enum QPdf::RenderFlag 和 flags QPdf::RenderFlags

    这个枚举用于描述页面应如何渲染。

常量 描述
QPdf::NoRenderFlags 0x000 默认值,表示没有标志。
QPdf::RenderAnnotations 0x001 页面将渲染注解。
QPdf::RenderOptimizedForLcd 0x002 页面的文本将为LCD显示优化渲染。
QPdf::RenderGrayscale 0x004 页面将以灰度渲染。
QPdf::RenderForceHalftone 0x008 如果输出图像被拉伸,则始终使用半调渲染。
QPdf::RenderTextAliased 0x010 渲染文本时禁用抗锯齿。
QPdf::RenderImageAliased 0x020 渲染图像时禁用抗锯齿。
QPdf::RenderPathAliased 0x040 渲染路径时禁用抗锯齿。

RenderFlags 类型是 QFlags<RenderFlag> 的类型定义。它存储了 RenderFlag 值的 OR 组合。

  • enum QPdf::Rotation

    这个枚举描述了页面的旋转方向。

常量 描述
QPdf::Rotate0 0 不旋转(默认)
QPdf::Rotate90 1 顺时针旋转90度
QPdf::Rotate180 2 旋转180度
QPdf::Rotate270 3 顺时针旋转270度

QPdfDestination Class

QPdfDestination 类

QPdfDestination 类定义了 PDF 文档中页面上的位置,以及建议的查看缩放级别。

头文件:

#include <QPdfDestination>

此类在 Qt 5.15 中引入。

所有成员列表,包括继承的成员

属性

属性 类型 描述
location const QPointF 页面上的位置,单位为点。
page const int 页面号。
valid const bool 目标是否有效。
zoom const qreal 建议的放大级别,其中 1.0 表示默认比例(1 像素 = 1 点)。

公共函数

函数 返回值 描述
isValid() bool 检查目标是否有效。
location() QPointF 获取页面上的位置。
page() int 获取页面号。
zoom() qreal 获取建议的放大级别。

保护函数

函数 描述
QPdfDestination() 构造一个无效的目标。

详细描述

属性文档

  • location:const QPointF

    这个属性表示页面上的位置,单位是点。

    访问函数:

    QPointF location() const
    
  • page:const int

    这个属性表示页面号。

    访问函数:

    int page() const
    
  • valid:const bool

    这个属性表示目标是否有效。

    访问函数:

    bool isValid() const
    
  • zoom:const qreal

    这个属性表示建议的放大级别,其中 1.0 表示默认比例(1 像素 = 1 点)。

    访问函数:

    qreal zoom() const
    

成员函数文档

  • [protected] QPdfDestination::QPdfDestination()

    构造一个无效的目标。

    参见 valid。

QPdfDocument Class

QPdfDocument 类

QPdfDocument 类加载 PDF 文档并从中渲染页面。

头文件:

#include <QPdfDocument>

自:Qt 5.10
继承自:QObject
此类在 Qt 5.10 中引入。

公共类型

  • 枚举:MetaDataField
  • 枚举:Status

公共函数

详情见下表。

信号

详情见下表。

详细描述

  • enum QPdfDocument::MetaDataField

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

常量 描述
QPdfDocument::Title 文档的标题
QPdfDocument::Author 创建文档的人的名字
QPdfDocument::Subject 文档的主题
QPdfDocument::Keywords 与文档相关的关键字
QPdfDocument::Creator 如果文档是从其他格式转换为 PDF,那么这个值为创建原始文档的产品的名称
QPdfDocument::Producer 如果文档是从其他格式转换为 PDF,那么这个值为进行转换的产品的名称
QPdfDocument::CreationDate 文档创建的日期和时间
QPdfDocument::ModificationDate 文档最近修改的日期和时间
  • enum QPdfDocument::Status

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

常量 描述
QPdfDocument::Null 文档被创建或关闭后的初始状态
QPdfDocument::Loading 调用 load() 后,文档完全加载前的状态
QPdfDocument::Ready 文档完全加载,数据可以被访问的状态
QPdfDocument::Unloading 在打开的文档上调用 close() 后的状态。此时文档仍有效,所有数据都可以被访问
QPdfDocument::Error 在 Loading 状态后,如果加载失败的状态

成员函数

函数 描述
QPdfDocument(QObject *parent = nullptr) 构造一个新的文档,其父对象为 parent
~QPdfDocument() 销毁文档
close() 关闭文档
getAllText(int page) 返回给定页面上的所有文本及其边界
getSelection(int page, QPointF start, QPointF end) 返回给定页面上在给定开始和结束点之间的文本信息(如果有)
getSelectionAtIndex(int page, int startIndex, int maxLength) 返回在给定页面上从给定的 startIndex 开始,最多包含 maxLength 个字符的文本信息
metaData(QPdfDocument::MetaDataField field) 返回给定字段的文档元数据
pageCount() 如果文档已加载,返回页面数量;如果未加载任何文档,返回 0
render(int page, QSize imageSize, QPdfDocumentRenderOptions renderOptions = QPdfDocumentRenderOptions()) 根据提供的 renderOptions,将页面渲染为 imageSize 大小的

QImage |
| status() | 返回文档的当前状态 |

信号

信号 描述
pageCountChanged(int pageCount) 页面数量改变时发出
passwordChanged() 密码更改时发出
statusChanged(QPdfDocument::Status status) 状态改变时发出

QPdfDocumentRenderOptions Class

QPdfDocumentRenderOptions 类

QPdfDocumentRenderOptions 类包含了从 PDF 文档渲染页面所需的选项。

头文件:

#include <QPdfDocumentRenderOptions>

此类在 Qt 5.10 中被引入。

所有成员列表,包括继承的成员。

公共函数

成员函数 描述
QPdfDocumentRenderOptions() 构造一个 QPdfDocumentRenderOptions 对象。
QPdf::RenderFlags renderFlags() const 返回用于从 PDF 文档渲染页面的特殊标志。
QPdf::Rotation rotation() const 返回用于从 PDF 文档渲染页面的旋转。
QRect scaledClipRect() const 返回页面被缩放到 scaledSize() 后要被剪裁的矩形区域。
QSize scaledSize() const 返回以像素为单位的要渲染的页面的大小。
void setRenderFlags(QPdf::RenderFlags flags) 设置用于从 PDF 文档渲染页面的特殊标志。
void setRotation(QPdf::Rotation rotation) 设置用于从 PDF 文档渲染页面的旋转。

相关的非成员函数

非成员函数 描述
bool operator!=(QPdfDocumentRenderOptions lhs, QPdfDocumentRenderOptions rhs) 如果选项 lhs 和 rhs 不同,则返回 true,否则返回 false。
bool operator==(QPdfDocumentRenderOptions lhs, QPdfDocumentRenderOptions rhs) 如果选项 lhs 和 rhs 相等,则返回 true,否则返回 false。

QPdfPageNavigation Class

QPdfPageNavigation 类

QPdfPageNavigation 类处理 PDF 文档的导航。

头文件:

#include <QPdfPageNavigation>

引入版本:Qt 5.10

继承自:QObject

属性

属性 类型 描述
canGoToNextPage const bool 表示是否可以导航至下一页
canGoToPreviousPage const bool 表示是否可以导航至上一页
currentPage int 当前文档的页面编号
document QPdfDocument* 该对象导航的文档实例
pageCount const int 文档的页数

公共函数

函数 描述
QPdfPageNavigation(QObject *parent = nullptr) 构造一个具有父对象 parent 的页面导航对象
virtual ~QPdfPageNavigation() 销毁页面导航对象
bool canGoToNextPage() const 返回是否有下一页
bool canGoToPreviousPage() const 返回是否有上一页
int currentPage() const 返回当前页面号或0(如果没有设置文档)
QPdfDocument * document() const 返回此对象导航的文档,如果之前没有设置,则返回 nullptr
int pageCount() const 返回文档中的页面数或0(如果没有设置文档)
void setCurrentPage(int page) 设置当前页面号
void setDocument(QPdfDocument *document) 设置此对象导航的文档

公共槽函数

函数 描述
void goToNextPage() 将当前页改为下一页
void goToPreviousPage() 将当前页改为上一页

信号

信号 描述
void canGoToNextPageChanged(bool canGo) 当可以导航到下一页的状态变化时发出
void canGoToPreviousPageChanged(bool canGo) 当可以导航到上一页的状态变化时发出
void currentPageChanged(int currentPage) 当前页改变时发出
void documentChanged(QPdfDocument *document) 当导航的文档改变时发出
void pageCountChanged(int pageCount) 当文档的页数改变时发出

QPdfPageRenderer Class

QPdfPageRenderer 类

QPdfPageRenderer 类封装了 PDF 文档的页面渲染。

头文件:

#include <QPdfPageRenderer>

起始版本:Qt 5.11

继承自:QObject

公共类型

类型 描述
枚举类 RenderMode 用于描述页面如何被渲染,包括 MultiThreaded(在单独的工作线程中渲染所有页面)和 SingleThreaded(在主 UI 线程中渲染所有页面,默认值)。

属性

属性 类型 描述
document QPdfDocument* 当前对象从中渲染页面的文档实例,默认为 nullptr。
renderMode RenderMode 渲染器用来渲染页面的模式,默认为 RenderMode::SingleThreaded。

公共函数

函数 描述
QPdfPageRenderer(QObject *parent = nullptr) 构造函数,创建一个带有父对象 parent 的页面渲染器对象。
~QPdfPageRenderer() 析构函数,销毁页面渲染器对象。
QPdfDocument* document() const 返回当前对象从中渲染页面的文档,如果之前未设置,则返回 nullptr。
RenderMode renderMode() const 返回页面渲染的模式。
quint64 requestPage(int pageNumber, QSize imageSize, QPdfDocumentRenderOptions options = QPdfDocumentRenderOptions()) 请求渲染器按照提供的选项将页面 pageNumber 渲染为 QImage 大小的 imageSize。
void setDocument(QPdfDocument *document) 设置当前对象从中渲染页面的文档。
void setRenderMode(RenderMode mode) 设置页面渲染的模式。

信号

信号 描述
void documentChanged(QPdfDocument *document) 当文档属性发生更改时发出的信号。
void renderModeChanged(RenderMode renderMode) 当渲染模式属性发生更改时发出的信号。

QPdfSelection Class

QPdfSelection 类

QPdfSelection 类定义了在 PDF 文档的一页中被选中的文本范围及其几何边界。

头文件:

#include <QPdfSelection>

该类在 Qt 5.15 中被引入。

所有成员列表,包括继承的成员

属性

  • bounds:const QVector
  • text:const QString
  • valid:const bool

公共函数

  • QRectF boundingRectangle() const
  • QVector<QPolygonF> bounds() const
  • void copyToClipboard(QClipboard::Mode mode = QClipboard::Clipboard) const
  • int endIndex() const
  • bool isValid() const
  • int startIndex() const
  • QString text() const

详细描述

参见 QPdfDocument::getSelection()。

属性文档

  • bounds:const QVector

    这个属性保存了选中文本在页面上占据的一组区域,表示为多边形。多边形的坐标系以页面左上角为原点,单位为点。

    注意:现在,从 QPdfDocument::getSelection() 返回的多边形始终是矩形;但在未来可能可以表示更复杂的区域。

    访问函数:QVector<QPolygonF> bounds() const

  • text:const QString

    这个属性保存了选中的文本。

    访问函数:QString text() const

  • valid:const bool

    这个属性保存了选择是否有效。

    访问函数:bool isValid() const

成员函数文档

  • void QPdfSelection::copyToClipboard(QClipboard::Mode mode = QClipboard::Clipboard) const

    将文本复制到系统剪贴板。

Qt 中文文档 Qt5.15 PDF Class (从官网Qt 5.15 翻译)相关推荐

  1. Qt中文文档-QFile

    公众号:Qt那些事儿 QFile Class QFile 类提供读写文件的接口. 属性 方法 Header: #include qmake: QT += core Inherits: QFileDev ...

  2. Tomcat7中文文档

    2019独角兽企业重金招聘Python工程师标准>>>   Tomcat7中文文档   注:本文根据tomcat官网(tomcat.apache.org)tomcat7.0官方文档整 ...

  3. Android2.2 r1 API 中文文档系列(10) —— CheckBox

    前言 从本章开始,将直接翻译最新的Android 2.2 r1 版本的API,而之前的文章以后更新.补充.完善至新版.本章android.widget.CheckBox内容不多,目前翻译的选择策略是先 ...

  4. 用Sandcastle生成CHM1.x中文文档

    前一篇文章<用Sandcastle生成CHM1.x中文文档>发布了之后,有些朋友希望获得我翻译的中文模版. 现共享如下: /Files/didasoft/Docs.zip 先说明一下,这些 ...

  5. beego 例子_Beego中文文档PDF

    [实例简介] Beego中文文档PDF版,便于平板上阅读查看....... 快速入门」 快速入门 安装 brego包含一些示例应用程序以帮您学习并使用 brego应用框架 您需要安装Go1.1+以确保 ...

  6. python3.8图片_python3.8.3官方中文文档[PDF][CHM][31.14MB]

    内容简介 Python 3.8.3 文档是一套整理的Python 3.8.3 的官方中文文档,包含chm和官方pdf完整版,需要的朋友可下载试试! Python 是一种易于学习又功能强大的编程语言.它 ...

  7. Spring Boot中文文档

    1.5.2.RELEASE Part I. Spring Boot 文档 本节简要介绍了Spring Boot文档,是整个文档的参考指南. 您可以完整阅读本参考指南,或者如果您不感兴趣的话可以跳过该部 ...

  8. PlantCV中文文档

    PlantCV中文文档 1. 简介 1. 欢迎来到PlantCV文档 总览 开始 教程 贡献 版本 2. PlantCV Namespace 2.1 PlantCV 2.1.1 分析颜色 2.1.2 ...

  9. 【Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN

    中文文档: http://sklearn.apachecn.org/cn/stable/datasets/index.html 英文文档: http://sklearn.apachecn.org/en ...

最新文章

  1. 腾讯高性能分布式路由技术,亮相亚太网络研讨会APNet
  2. 充分地享受母爱的飞鸽传书
  3. db h2 数据类型_H2数据库函数及数据类型概述
  4. java中enum类型的使用
  5. MOS9.0 bootstrap 离线Bulid
  6. 关于高效找工作的几条建议
  7. 年鉴表格-数据可视化分析
  8. 神经网络算法的基本原理,神经网络算法都有哪些
  9. 带通 带阻滤波器 幅频响应_方程推导:二阶有源带通滤波器设计!(内附教程+原理图+视频+代码下载)...
  10. 查看Java 版本tls_如何在Java中设置TLS1.2版本
  11. Axure RP9入门介绍----小白
  12. aw36515闪光灯驱动ic调试
  13. unity如何插入图片_Unity3D教程:导入贴图和模型
  14. linux互信文件权限,Linux如何建立互信
  15. python3 中文繁体转换简体,简体转换为繁体,汉字转换拼音
  16. POJ 3322 Bloxorz I
  17. 数据库锁与加锁情况介绍(记录锁、间隙锁、next-key锁)
  18. 转载 冯羽的程序生涯之我见
  19. tweepy 根据推特ID爬取推特数据
  20. GFLOPS、GFLOPs 和 GMACs的区别与关系

热门文章

  1. C语言简单链表详细步骤详解
  2. 神经网络训练的一般步骤,神经网络常用训练方法
  3. Jetpack Lifecycle使用--Jetpack系列
  4. 网站分析04——常用指标及方法
  5. 使用tesseract-ocr实现验证码识别
  6. 对于集合set的定义
  7. ubuntu下如何使用USB转串口设备
  8. 【转载】PCI-E接口以及PCI-E 1x, 4x, 8x, 16x 接口定义
  9. Argis通过Python的Arcpy第三方库进行字段计算、批量将mxd导出为jpg图片、合并数据库
  10. OpenCV中如何提取不规则ROI区域, 手眼标定hand_eye_calibration