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

简介: Qt 中文文档 Qt5.15 PDF Class (从官网Qt 5.15 翻译)

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 值的 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 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 bounds() const
  • text:const QString
    这个属性保存了选中的文本。
    访问函数:QString text() const
  • valid:const bool
    这个属性保存了选择是否有效。
    访问函数:bool isValid() const

成员函数文档

  • void QPdfSelection::copyToClipboard(QClipboard::Mode mode = QClipboard::Clipboard) const
    将文本复制到系统剪贴板。
目录
相关文章
|
6月前
|
C++
基于Qt的简易PDF阅读器设计与实现
基于Qt的简易PDF阅读器设计与实现
598 3
|
6月前
|
程序员
QT 官方QObject对象翻译要点(纯属个人翻译,不靠谱)
QT 官方QObject对象翻译要点(纯属个人翻译,不靠谱)
76 1
|
6月前
|
XML 自然语言处理 数据格式
Qt国际化翻译解决方案
Qt国际化翻译解决方案
138 0
|
5月前
|
存储 数据安全/隐私保护
Qt Installer Framework翻译(5-3)
Qt Installer Framework翻译(5-3)
|
6月前
|
SQL XML API
Qt C++ 模块 描述列表【从Qt 官网 6.5 版本翻译】
Qt C++ 模块 描述列表【从Qt 官网 6.5 版本翻译】
44 0
|
6月前
|
数据可视化 安全 API
Qt 6.1 中的模块变更(从官网文档翻译)
Qt 6.1 中的模块变更(从官网文档翻译)
53 0
|
6月前
|
传感器 API Android开发
Qt 6.2 中的模块变更(从官网文档翻译)
Qt 6.2 中的模块变更(从官网文档翻译)
99 0
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
QT QTranslator 中英文翻译linguist语言家 翻译过程
|
自然语言处理 API 数据安全/隐私保护
Zotero翻译插件Zotero PDF Translate无法正常翻,翻译api接入
Zotero翻译插件Zotero PDF Translate无法正常翻,翻译api接入
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
181 1
Qt(C++)开发一款图片防盗用水印制作小工具

热门文章

最新文章

推荐镜像

更多