PyMuPDF 1.24.4 中文文档(十)(5)

简介: PyMuPDF 1.24.4 中文文档(十)

PyMuPDF 1.24.4 中文文档(十)(4)https://developer.aliyun.com/article/1559524


Tools

原文:pymupdf.readthedocs.io/en/latest/tools.html

此类是一组围绕内存管理的实用方法和属性。为了简化和加速其使用,在导入 PyMuPDF 时,它会自动实例化为 TOOLS

方法 / 属性 描述
Tools.gen_id() 生成唯一标识符
Tools.store_shrink() 缩小可存储缓存 [1]
Tools.mupdf_warnings() 返回累积的 MuPDF 警告
Tools.mupdf_display_errors() 返回累积的 MuPDF 警告
Tools.reset_mupdf_warnings() 清空 MuPDF 输出的消息
Tools.set_aa_level() 设置抗锯齿值
Tools.set_annot_stem() 设置新注解 / 链接 ID 的前缀
Tools.set_small_glyph_heights() 使用小的 bbox 高度搜索和提取
Tools.set_subset_fontnames() 控制子集字体名称标签的抑制
Tools.show_aa_level() 返回抗锯齿值
Tools.unset_quad_corrections() 禁用 PyMuPDF 特定代码
Tools.fitz_config PyMuPDF 的配置设置
Tools.store_maxsize 最大可存储缓存大小
Tools.store_size 当前可存储缓存大小

类 API

class Tools
gen_id()

一个方便的方法返回一个唯一的正整数,在每次调用时增加 1。例如用于在数据库中创建唯一键 - 其创建速度应比使用时间戳快一个数量级。

注意

MuPDF 在 v1.14.0 中放弃了对此的支持,因此我们重新实现了一个类似的功能,有以下差异:

  • 它不是 MuPDF 全局上下文的一部分,也不是线程安全的(在 PyMuPDF 中不支持线程,因此这不是问题)。
  • 它被实现为 int。这意味着最大数是 sys.maxsize。如果这个数超过了,计数器会从 1 重新开始。

返回类型:

int

返回:

一个唯一的正整数。

set_annot_stem(stem=None)
  • v1.18.6 中的新功能

设置或查询新注解、字段或链接的 ID 前缀。

参数:

stem (str) – 如果省略,则返回当前值,默认为“fitz”。在 PDF 文档中,注释、字段/小部件和链接技术上都是相同类型的对象(/Annot)的子类型。每个适用的子类型,PyMuPDF 分别生成标识符“stem-Annn”,“stem-Wnnn”或“stem-Lnnn”。数字“nnn”用于强制要求的唯一性。

返回类型:

字符串

返回:

当前值。

set_small_glyph_heights(on=None)
  • 新版本 v1.18.5 中

在文本提取和文本搜索方法中设置或查询减少的 bbox 高度。

参数:

on (bool) – 如果省略或为 None,则返回当前设置。对于其他值,将应用 bool() 函数以设置全局变量。如果为 TruePage.search_for()Page.get_text() 方法将返回具有 字体大小 高度的字符、跨度、行或块 bbox。如果为 False(PyMuPDF 导入时的标准设置),bbox 高度将基于字体属性,并且通常等于 行高

返回类型:

布尔值

返回:

注意

直接包装 MuPDF 代码的文本提取选项“xml”,“xhtml”和“html”不受此影响。

set_subset_fontnames(on=None)
  • 新版本 v1.18.9 中

控制文本提取中子集字体名称标签的抑制。

参数:

on (bool) – 如果省略 / None,则返回当前设置。评估为 TrueFalse 的参数设置一个全局变量。如果为 True,选项“dict”,“json”,“rawdict”和“rawjson”将返回例如 "NOHSJV+Calibri-Light",否则仅返回 "Calibri-Light"(默认值)。设置保持有效直到再次更改。

返回类型:

布尔值

返回:

注意

除了上述提到的情况外,没有其他文本提取变体受到影响。对于基于 MuPDF 代码的选项“xml”,“xhtml”和“html”,特别是如此。它们提取字体名称"Calibri-Light",甚至只提取family名称 - 在本例中是Calibri

unset_quad_corrections(on=None)
  • 新版本 v1.18.10 中

启用/禁用 PyMuPDF 特定代码,当在Page.get_text()文本提取中遇到无意义的内容时,尝试重建有效的字符四边形。这段代码依赖于某些字体属性(ascender  和 descender),这些属性在某些情况下不存在,并在试图访问它们时导致分段错误。此方法在 PyMuPDF  中设置一个全局参数,该参数抑制此代码的执行。

参数:

on (bool) – 如果省略或为 None,则返回当前设置。对于其他值,将应用 bool() 函数以设置全局变量。如果为 True,PyMuPDF 将不尝试访问相应的字体属性,并使用值 ascender=0.8descender=-0.2

返回类型:

布尔值

返回:

store_shrink(percent)

通过其当前大小的百分比减少可存储的高速缓存。

参数:

percent (int) – 当前大小的百分比以释放。如果是 100+,存储将被清空;如果为零,则不会发生任何操作。MuPDF 的缓存策略是“最近最少使用”,因此低使用率的元素首先被删除。

返回类型:

整数

返回:

新的当前存储大小。根据情况,大小减小可能大于请求的百分比。

show_aa_level()
  • 版本 1.16.14 中的新功能

返回当前抗锯齿值。这些值控制图形和文本元素的呈现质量。

返回类型:

字典

返回类型:

一个字典,初始内容如下:{'graphics': 8, 'text': 8, 'graphics_min_line_width': 0.0}

set_aa_level(level)
  • 版本 1.16.14 中的新功能

设置用于抗锯齿的新位数。目前图形和文本渲染使用相同的值。这可能会在未来的 MuPDF 发布中更改。

参数:

level (int) – 一个介于 0 和 8 之间的整数。超出此范围的值将被静默更改为有效值。该值将在当前会话中或下次更改之前保持有效。

reset_mupdf_warnings()
  • 版本 1.16.0 中的新功能

清空 MuPDF 警告消息缓冲区。

mupdf_display_errors(value=None)
  • 版本 1.16.8 中的新功能

显示或设置是否应显示 MuPDF 错误。

参数:

value (bool) – 如果不是布尔值,则返回当前设置。如果为真,则在 sys.stderr 上显示 MuPDF 错误,否则将其抑制。无论如何,消息继续存储在警告存储中。在导入 PyMuPDF 时,此值为 True

返回:

TrueFalse

mupdf_warnings(reset=True)
  • 版本 1.16.0 中的新功能

返回所有存储的 MuPDF 消息作为带有插入换行符的字符串。

参数:

reset (bool) – (1.16.7 版本中的新功能) 是否自动清空存储。

fitz_config

包含用于配置 PyMuPDF 和 MuPDF 的实际值的字典。还请参阅安装章节。这是一个概述键的字典,每个键描述一个支持方面的状态。

Key 支持包括 …
plotter-g 灰度色彩空间渲染
plotter-rgb RGB 色彩空间渲染
plotter-cmyk CMYK 色彩空间渲染
plotter-n 印刷过渡渲染
pdf PDF 文档
xps XPS 文档
svg SVG 文档
cbz CBZ 文档
img IMG 文档
html HTML 文档
epub EPUB 文档
jpx JPEG2000 图像
js JavaScript
tofu 所有 TOFU 字体
tofu-cjk CJK 字体子集(中国,日本,韩国)
tofu-cjk-ext CJK 字体扩展
tofu-cjk-lang CJK 字体语言扩展
tofu-emoji TOFU 表情符号字体
tofu-historic TOFU 历史字体
tofu-symbol TOFU 符号字体
tofu-sil TOFU SIL 字体
icc ICC 配置文件
py-memory 使用 Python 内存管理 [2]
base14 Base-14 字体(应始终为真)

有关“TOFU”术语的解释,请参见此维基百科文章

In [1]: import pymupdf
In [2]: TOOLS.fitz_config
Out[2]:
{'plotter-g': True,
 'plotter-rgb': True,
 'plotter-cmyk': True,
 'plotter-n': True,
 'pdf': True,
 'xps': True,
 'svg': True,
 'cbz': True,
 'img': True,
 'html': True,
 'epub': True,
 'jpx': True,
 'js': True,
 'tofu': False,
 'tofu-cjk': True,
 'tofu-cjk-ext': False,
 'tofu-cjk-lang': False,
 'tofu-emoji': False,
 'tofu-historic': False,
 'tofu-symbol': False,
 'tofu-sil': False,
 'icc': True,
 'py-memory': False,
 'base14': True} 

返回类型:

字典

store_maxsize

最大存储缓存大小(以字节为单位)。PyMuPDF生成的默认值为 268’435’456(256 MB),因此您应该始终在这里看到此值。如果此值为零,则允许“无限”增长。

返回类型:

整数

store_size

当前存储缓存大小(以字节为单位)。这个值可能会随着每次使用PyMuPDF函数而改变(通常会增加)。只有当将要超过Tools.store_maxsize时,它才会(自动)减少:在这种情况下,MuPDF会逐出低使用对象,直到值再次在范围内。

返回类型:

整数

示例会话

>>> import pymupdf
# print the maximum and current cache sizes
>>> pymupdf.TOOLS.store_maxsize
268435456
>>> pymupdf.TOOLS.store_size
0
>>> doc = pymupdf.open("demo1.pdf")
# pixmap creation puts lots of object in cache (text, images, fonts),
# apart from the pixmap itself
>>> pix = doc[0].get_pixmap(alpha=False)
>>> pymupdf.TOOLS.store_size
454519
# release (at least) 50% of the storage
>>> pymupdf.TOOLS.store_shrink(50)
13471
>>> pymupdf.TOOLS.store_size
13471
# get a few unique numbers
>>> pymupdf.TOOLS.gen_id()
1
>>> pymupdf.TOOLS.gen_id()
2
>>> pymupdf.TOOLS.gen_id()
3
# close document and see how much cache is still in use
>>> doc.close()
>>> pymupdf.TOOLS.store_size
0
>>> 

脚注

您对本页面有任何反馈吗?


本软件按原样提供,不附带任何明示或暗示的担保。本软件根据许可证分发,未经许可不得复制、修改或分发。请参阅artifex.com获取许可信息,或联系位于美国加利福尼亚州圣弗朗西斯科 94129 Mesa 街 39 号 108A 套房的 Artifex Software Inc.获取更多信息。

此文档涵盖所有版本直至 1.24.4。


示例会话

>>> import pymupdf
# print the maximum and current cache sizes
>>> pymupdf.TOOLS.store_maxsize
268435456
>>> pymupdf.TOOLS.store_size
0
>>> doc = pymupdf.open("demo1.pdf")
# pixmap creation puts lots of object in cache (text, images, fonts),
# apart from the pixmap itself
>>> pix = doc[0].get_pixmap(alpha=False)
>>> pymupdf.TOOLS.store_size
454519
# release (at least) 50% of the storage
>>> pymupdf.TOOLS.store_shrink(50)
13471
>>> pymupdf.TOOLS.store_size
13471
# get a few unique numbers
>>> pymupdf.TOOLS.gen_id()
1
>>> pymupdf.TOOLS.gen_id()
2
>>> pymupdf.TOOLS.gen_id()
3
# close document and see how much cache is still in use
>>> doc.close()
>>> pymupdf.TOOLS.store_size
0
>>> 

脚注

您对本页面有任何反馈吗?


本软件按原样提供,不附带任何明示或暗示的担保。本软件根据许可证分发,未经许可不得复制、修改或分发。请参阅artifex.com获取许可信息,或联系位于美国加利福尼亚州圣弗朗西斯科 94129 Mesa 街 39 号 108A 套房的 Artifex Software Inc.获取更多信息。

此文档涵盖所有版本直至 1.24.4。


相关文章
|
机器人 Java Linux
Webots机器人仿真入门(一)
Webots是一个开源的移动机器人仿真模拟器,内置了许多机器人模型。机器人造价普遍超出新手承受范围,对于新手来说使用仿真软件入门是一个不错的选择。
Webots机器人仿真入门(一)
|
3月前
|
人工智能 算法 安全
AI辅助编程设计之道:从Spec到Code工程实践
大语言模型正重塑开发模式,但盲目依赖AI生成代码易陷入“描述-生成-修改”循环。核心问题在于跳过设计阶段:模糊需求无法支撑高质量输出。Spec驱动开发强调以结构化文档(需求、架构、接口等)明确设计,再由AI高效实现。人专注设计与验证,AI负责编码与建议——这才是提效关键。(239字)
995 7
|
7月前
|
Linux Shell
Linux系统安装miniconda详细教程
本文介绍在CentOS 7系统中安装Miniconda的完整步骤:首先下载Miniconda安装包至/opt目录,接着执行安装脚本并按提示操作;安装完成后,将conda添加到环境变量,通过`conda init bash`和`source ~/.bashrc`配置生效,最终验证安装成功。
2555 5
|
监控 安全 数据安全/隐私保护
销售易CRM:技术架构与安全性能的深度解析
销售易CRM基于云计算与微服务架构,融合高可用性、弹性扩展及模块化开发优势,为企业提供灵活定制化的客户关系管理解决方案。系统采用多层次安全防护机制,包括数据加密、细粒度权限控制和实时监控审计,确保数据安全与隐私保护。某金融机构的成功案例表明,销售易CRM显著提升了数据安全性和系统性能,同时满足行业合规要求。作为数字化转型的利器,销售易CRM助力企业实现可持续发展与市场竞争力提升。
|
存储 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(十)(4)
PyMuPDF 1.24.4 中文文档(十)
654 0
|
机器学习/深度学习 计算机视觉
YOLOv11改进策略【模型轻量化】| GhostNetV2:利用远距离注意力增强廉价操作
YOLOv11改进策略【模型轻量化】| GhostNetV2:利用远距离注意力增强廉价操作
592 12
YOLOv11改进策略【模型轻量化】| GhostNetV2:利用远距离注意力增强廉价操作
|
人工智能 自然语言处理 物联网
LLM2CLIP:使用大语言模型提升CLIP的文本处理,提高长文本理解和跨语言能力
LLM2CLIP 为多模态学习提供了一种新的范式,通过整合 LLM 的强大功能来增强 CLIP 模型。
905 3
LLM2CLIP:使用大语言模型提升CLIP的文本处理,提高长文本理解和跨语言能力
|
监控 安全 Ubuntu
Linux内核升级指南####
本文将深入探讨Linux操作系统的内核升级过程,旨在为系统管理员和高级用户提供一份详尽的操作指南。通过分析升级前的准备、升级过程中的关键步骤以及升级后的配置优化,本文旨在帮助读者安全、高效地完成内核升级,从而提升系统性能和安全性。 ####
1274 7
|
机器学习/深度学习 文字识别 前端开发
基于 Spring Boot 3.3 + OCR 实现图片转文字功能
【8月更文挑战第30天】在当今数字化信息时代,图像中的文字信息越来越重要。无论是文档扫描、名片识别,还是车辆牌照识别,OCR(Optical Character Recognition,光学字符识别)技术都发挥着关键作用。本文将围绕如何使用Spring Boot 3.3结合OCR技术,实现图片转文字的功能,分享工作学习中的技术干货。
2087 2
|
负载均衡 固态存储 Linux
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考
轻量应用服务器、云服务器、gpu云服务器是阿里云服务器产品中,比较热门的云服务器产品类型,不同类型的云服务器产品收费模式与收费标准是不一样的,本文为大家展示这几个云服务器产品的最新收费标准情况,以供参考。
阿里云轻量应用服务器、云服务器、gpu云服务器最新收费标准参考