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。


相关文章
|
3月前
|
存储 文字识别 自然语言处理
PyMuPDF 1.24.4 中文文档(五)(2)
PyMuPDF 1.24.4 中文文档(五)
88 3
|
3月前
|
JSON API 数据格式
PyMuPDF 1.24.4 中文文档(四)(5)
PyMuPDF 1.24.4 中文文档(四)
32 0
|
3月前
|
文字识别 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(一)(4)
PyMuPDF 1.24.4 中文文档(一)
101 3
|
3月前
|
安全 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(一)(3)
PyMuPDF 1.24.4 中文文档(一)
112 2
|
3月前
|
存储 XML 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(八)(2)
PyMuPDF 1.24.4 中文文档(八)
223 1
|
3月前
|
Python
PyMuPDF 1.24.4 中文文档(三)(5)
PyMuPDF 1.24.4 中文文档(三)
38 0
PyMuPDF 1.24.4 中文文档(三)(5)
|
3月前
|
存储 资源调度 JavaScript
PyMuPDF 1.24.4 中文文档(八)(1)
PyMuPDF 1.24.4 中文文档(八)
100 0
PyMuPDF 1.24.4 中文文档(八)(1)
|
3月前
|
XML JSON API
PyMuPDF 1.24.4 中文文档(六)(5)
PyMuPDF 1.24.4 中文文档(六)
81 0
PyMuPDF 1.24.4 中文文档(六)(5)
|
3月前
|
前端开发 Windows
PyMuPDF 1.24.4 中文文档(二)(5)
PyMuPDF 1.24.4 中文文档(二)
55 0
|
3月前
|
存储 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(六)(1)
PyMuPDF 1.24.4 中文文档(六)
56 0