PyMuPDF 1.24.4 中文文档(十二)(3)

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

PyMuPDF 1.24.4 中文文档(十二)(2)https://developer.aliyun.com/article/1559502


文档权限

Code 允许的操作
PDF_PERM_PRINT 打印文档
PDF_PERM_MODIFY 修改文档内容
PDF_PERM_COPY 复制或提取文本和图形
PDF_PERM_ANNOTATE 添加或修改文本注释和交互式表单字段
PDF_PERM_FORM 填写表单并签署文档
PDF_PERM_ACCESSIBILITY 已过时,总是允许
PDF_PERM_ASSEMBLE 插入、旋转或删除页面、书签、缩略图图像
PDF_PERM_PRINT_HQ 高质量打印

PDF 可选内容代码

Code 含义
PDF_OC_ON 暂时将一个 OCG 设置为开启状态
PDF_OC_TOGGLE 暂时切换 OCG 状态
PDF_OC_OFF 暂时将一个 OCG 设置为关闭状态

PDF 加密方法代码

Code 含义
PDF_ENCRYPT_KEEP 不更改
PDF_ENCRYPT_NONE 移除任何加密
PDF_ENCRYPT_RC4_40 RC4 40 位
PDF_ENCRYPT_RC4_128 RC4 128 位
PDF_ENCRYPT_AES_128 高级加密标准 128 位
PDF_ENCRYPT_AES_256 高级加密标准 256 位
PDF_ENCRYPT_UNKNOWN 未知

字体文件扩展名

表格显示了从 PDF 中提取的字体文件缓冲区时应使用的文件扩展名。此字符串由 Document.get_page_fonts()Page.get_fonts()Document.extract_font() 返回。

Ext 描述
ttf TrueType 字体
pfa ASCII 字体的 Postscript(各种子类型)
cff Type1C 字体(相当于 Type1 的压缩字体)
cid 字符标识符字体(后缀格式)
otf 开放类型字体
n/a 无法提取,例如 PDF 基础 14 字体、Type 3 字体和其他字体

文本对齐

TEXT_ALIGN_LEFT

0 – 左对齐。

TEXT_ALIGN_CENTER

1 – 居中对齐。

TEXT_ALIGN_RIGHT

2 – 右对齐。

TEXT_ALIGN_JUSTIFY

3 – 两端对齐。

文本提取标志

控制被解析为 TextPage 的数据量的选项位 – 此类主要仅在 PyMuPDF 内部使用。

对于 PyMuPDF 程序员,在所有文本搜索和文本提取方法的 flags 整数参数中,可以使用 Python 的 | 运算符的某种组合,或者简单地使用 +。根据各个方法的不同,默认组合会使用不同的值。请使用适合你情况的值。特别是要确保除非确实需要,否则关闭图像提取。这会对性能和内存有显著影响!

TEXT_PRESERVE_LIGATURES

1 – 如果设置,连字将以其原始形式传递到应用程序。否则,连字将展开为其组成部分,例如连字“ffi”将展开为三个单独的字符 f、f 和  i。在 PyMuPDF 中默认为“开启”。MuPDF 支持以下 7  种连字:“ff”、“fi”、“fl”、“ffi”、“ffl”、“ft”、“st”。

TEXT_PRESERVE_WHITESPACE

2 – 如果设置,将传递空白字符。否则,任何类型的水平空白字符(包括水平制表符)将替换为可变宽度的空格字符。在 PyMuPDF 中默认为“开启”。

TEXT_PRESERVE_IMAGES

4 – 如果设置,图像将存储在 TextPage  中。这将导致在“blocks”、“dict”、“json”、“rawdict”、“rawjson”、“html”和“xhtml”类型的文本提取输出中存在(通常很大的!)二进制图像内容,并且在那里是默认的。然而,如果与“blocks”一起使用,则仅返回图像元数据,而不包含图像本身。

TEXT_INHIBIT_SPACES

8 – 如果设置,MuPDF 将不会尝试在字符之间存在较大间隙时添加缺失的空格字符。在 PDF 中,创建者通常不会插入空格以指示下一个字符的位置,而是提供直接的位置地址。在 PyMuPDF 中默认为“关闭” – 因此会生成空格。

TEXT_DEHYPHENATE

16 – 忽略行尾的连字符并与下一行连接。与文本搜索函数一起内部使用。但通常也可用:如果开启,文本提取将返回连接的文本行(或 span),第一行的结束连字符将被消除。因此,在不同行上的两个独立 span “first meth-”“od leads to wrong results” 将连接为一个 span “first method leads to wrong results” 并相应更新 bboxes:结果 span 的字符将不再具有相同的 y 坐标。

TEXT_PRESERVE_SPANS

32 – 每个 span 生成一个新行。在 PyMuPDF 中未使用(“关闭”),但可供您使用。在“dict”、“json”、“rawdict”、“rawjson”中的每行将恰好包含一个 span。

TEXT_MEDIABOX_CLIP

64 – 如果设置,将忽略页面mediabox之外的字符。这是 PyMuPDF 的默认设置。

TEXT_CID_FOR_UNKNOWN_UNICODE

128 – 如果设置,将使用原始字符代码而不是 U+FFFD。这是 PyMuPDF 中文本提取的默认设置。如果你希望检测编码信息缺失或不确定时,请切换此标志并扫描结果文本中是否存在 U+FFFD(即 chr(0xfffd))字符。

下列常数代表文本提取和搜索的默认组合:

TEXTFLAGS_TEXT

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_WORDS

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_BLOCKS

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_DICT

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_RAWDICT

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_HTML

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_XHTML

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_XML

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_CID_FOR_UNKNOWN_UNICODE

TEXTFLAGS_SEARCH

TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_DEHYPHENATE

链接目标类型

linkDest.kind(链接目标类型)的可能值。

LINK_NONE

0 – 没有目标。指示一个虚拟链接。

返回类型:

int

LINK_GOTO

1 – 指向本文档中的一个位置。

返回类型:

int

LINK_URI

2 – 指向一个 URI,通常使用互联网语法指定的资源。

  • PyMuPDF 将任何包含冒号且不以file:开头的外部链接视为LINK_URI

返回类型:

int

LINK_LAUNCH

3 – 启动(打开)另一个文件(任何“可执行”类型)。

  • PyMuPDF 将任何以file:开头或不包含冒号的外部链接视为LINK_LAUNCH

返回类型:

int

LINK_NAMED

4 – 指向一个命名位置。

返回类型:

int

LINK_GOTOR

5 – 指向另一个 PDF 文档中的一个位置。

返回类型:

int

链接目标标志

注意:

这个整数的最右字节是一个位字段,所以使用 & 运算符测试这些位的真实性。

LINK_FLAG_L_VALID

1 (bit 0) 左上角 x 值有效

返回类型:

bool

LINK_FLAG_T_VALID

2 (bit 1) 左上角 y 值有效

返回类型:

bool

LINK_FLAG_R_VALID

4 (bit 2) 右下角 x 值有效

返回类型:

bool

LINK_FLAG_B_VALID

8 (bit 3) 右下角 y 值有效

返回类型:

bool

LINK_FLAG_FIT_H

16 (bit 4) 水平适合

返回类型:

bool

LINK_FLAG_FIT_V

32 (bit 5) 垂直适合

返回类型:

bool

LINK_FLAG_R_IS_ZOOM

64 (bit 6) 右下角 x 是一个缩放图。

返回类型:

bool

注释相关常量

详细内容请参阅 Adobe PDF References 第 8.4.5 章,第 615 页。

注释类型

这些标识符还涵盖链接小部件:PDF 规范在技术上以相同的方式处理它们,而MuPDF(和 PyMuPDF)将它们视为三种基本不同的对象类型。

PDF_ANNOT_TEXT 0
PDF_ANNOT_LINK 1  # <=== Link object in PyMuPDF
PDF_ANNOT_FREE_TEXT 2
PDF_ANNOT_LINE 3
PDF_ANNOT_SQUARE 4
PDF_ANNOT_CIRCLE 5
PDF_ANNOT_POLYGON 6
PDF_ANNOT_POLY_LINE 7
PDF_ANNOT_HIGHLIGHT 8
PDF_ANNOT_UNDERLINE 9
PDF_ANNOT_SQUIGGLY 10
PDF_ANNOT_STRIKE_OUT 11
PDF_ANNOT_REDACT 12
PDF_ANNOT_STAMP 13
PDF_ANNOT_CARET 14
PDF_ANNOT_INK 15
PDF_ANNOT_POPUP 16
PDF_ANNOT_FILE_ATTACHMENT 17
PDF_ANNOT_SOUND 18
PDF_ANNOT_MOVIE 19
PDF_ANNOT_RICH_MEDIA 20
PDF_ANNOT_WIDGET 21  # <=== Widget object in PyMuPDF
PDF_ANNOT_SCREEN 22
PDF_ANNOT_PRINTER_MARK 23
PDF_ANNOT_TRAP_NET 24
PDF_ANNOT_WATERMARK 25
PDF_ANNOT_3D 26
PDF_ANNOT_PROJECTION 27
PDF_ANNOT_UNKNOWN -1 
```### 注释标志位
```py
PDF_ANNOT_IS_INVISIBLE 1 << (1-1)
PDF_ANNOT_IS_HIDDEN 1 << (2-1)
PDF_ANNOT_IS_PRINT 1 << (3-1)
PDF_ANNOT_IS_NO_ZOOM 1 << (4-1)
PDF_ANNOT_IS_NO_ROTATE 1 << (5-1)
PDF_ANNOT_IS_NO_VIEW 1 << (6-1)
PDF_ANNOT_IS_READ_ONLY 1 << (7-1)
PDF_ANNOT_IS_LOCKED 1 << (8-1)
PDF_ANNOT_IS_TOGGLE_NO_VIEW 1 << (9-1)
PDF_ANNOT_IS_LOCKED_CONTENTS 1 << (10-1) 
```### 注释行结束样式
```py
PDF_ANNOT_LE_NONE 0
PDF_ANNOT_LE_SQUARE 1
PDF_ANNOT_LE_CIRCLE 2
PDF_ANNOT_LE_DIAMOND 3
PDF_ANNOT_LE_OPEN_ARROW 4
PDF_ANNOT_LE_CLOSED_ARROW 5
PDF_ANNOT_LE_BUTT 6
PDF_ANNOT_LE_R_OPEN_ARROW 7
PDF_ANNOT_LE_R_CLOSED_ARROW 8
PDF_ANNOT_LE_SLASH 9 
```### 注释类型
这些标识符也涵盖了**链接**和**小部件**:PDF 规范在技术上以相同的方式处理它们,而**MuPDF**(以及 PyMuPDF)将它们视为基本上不同类型的对象。
```py
PDF_ANNOT_TEXT 0
PDF_ANNOT_LINK 1  # <=== Link object in PyMuPDF
PDF_ANNOT_FREE_TEXT 2
PDF_ANNOT_LINE 3
PDF_ANNOT_SQUARE 4
PDF_ANNOT_CIRCLE 5
PDF_ANNOT_POLYGON 6
PDF_ANNOT_POLY_LINE 7
PDF_ANNOT_HIGHLIGHT 8
PDF_ANNOT_UNDERLINE 9
PDF_ANNOT_SQUIGGLY 10
PDF_ANNOT_STRIKE_OUT 11
PDF_ANNOT_REDACT 12
PDF_ANNOT_STAMP 13
PDF_ANNOT_CARET 14
PDF_ANNOT_INK 15
PDF_ANNOT_POPUP 16
PDF_ANNOT_FILE_ATTACHMENT 17
PDF_ANNOT_SOUND 18
PDF_ANNOT_MOVIE 19
PDF_ANNOT_RICH_MEDIA 20
PDF_ANNOT_WIDGET 21  # <=== Widget object in PyMuPDF
PDF_ANNOT_SCREEN 22
PDF_ANNOT_PRINTER_MARK 23
PDF_ANNOT_TRAP_NET 24
PDF_ANNOT_WATERMARK 25
PDF_ANNOT_3D 26
PDF_ANNOT_PROJECTION 27
PDF_ANNOT_UNKNOWN -1 

注释标志位

PDF_ANNOT_IS_INVISIBLE 1 << (1-1)
PDF_ANNOT_IS_HIDDEN 1 << (2-1)
PDF_ANNOT_IS_PRINT 1 << (3-1)
PDF_ANNOT_IS_NO_ZOOM 1 << (4-1)
PDF_ANNOT_IS_NO_ROTATE 1 << (5-1)
PDF_ANNOT_IS_NO_VIEW 1 << (6-1)
PDF_ANNOT_IS_READ_ONLY 1 << (7-1)
PDF_ANNOT_IS_LOCKED 1 << (8-1)
PDF_ANNOT_IS_TOGGLE_NO_VIEW 1 << (9-1)
PDF_ANNOT_IS_LOCKED_CONTENTS 1 << (10-1) 

注释线结束样式

PDF_ANNOT_LE_NONE 0
PDF_ANNOT_LE_SQUARE 1
PDF_ANNOT_LE_CIRCLE 2
PDF_ANNOT_LE_DIAMOND 3
PDF_ANNOT_LE_OPEN_ARROW 4
PDF_ANNOT_LE_CLOSED_ARROW 5
PDF_ANNOT_LE_BUTT 6
PDF_ANNOT_LE_R_OPEN_ARROW 7
PDF_ANNOT_LE_R_CLOSED_ARROW 8
PDF_ANNOT_LE_SLASH 9 

小部件常量

小部件类型(field_type

PDF_WIDGET_TYPE_UNKNOWN 0
PDF_WIDGET_TYPE_BUTTON 1
PDF_WIDGET_TYPE_CHECKBOX 2
PDF_WIDGET_TYPE_COMBOBOX 3
PDF_WIDGET_TYPE_LISTBOX 4
PDF_WIDGET_TYPE_RADIOBUTTON 5
PDF_WIDGET_TYPE_SIGNATURE 6
PDF_WIDGET_TYPE_TEXT 7 

文本小部件子类型(text_format

PDF_WIDGET_TX_FORMAT_NONE 0
PDF_WIDGET_TX_FORMAT_NUMBER 1
PDF_WIDGET_TX_FORMAT_SPECIAL 2
PDF_WIDGET_TX_FORMAT_DATE 3
PDF_WIDGET_TX_FORMAT_TIME 4 

小部件标志位(field_flags

所有字段类型共同的

PDF_FIELD_IS_READ_ONLY 1
PDF_FIELD_IS_REQUIRED 1 << 1
PDF_FIELD_IS_NO_EXPORT 1 << 2 

文本小部件

PDF_TX_FIELD_IS_MULTILINE  1 << 12
PDF_TX_FIELD_IS_PASSWORD  1 << 13
PDF_TX_FIELD_IS_FILE_SELECT  1 << 20
PDF_TX_FIELD_IS_DO_NOT_SPELL_CHECK  1 << 22
PDF_TX_FIELD_IS_DO_NOT_SCROLL  1 << 23
PDF_TX_FIELD_IS_COMB  1 << 24
PDF_TX_FIELD_IS_RICH_TEXT  1 << 25 

按钮小部件

PDF_BTN_FIELD_IS_NO_TOGGLE_TO_OFF  1 << 14
PDF_BTN_FIELD_IS_RADIO  1 << 15
PDF_BTN_FIELD_IS_PUSHBUTTON  1 << 16
PDF_BTN_FIELD_IS_RADIOS_IN_UNISON  1 << 25 

选择小部件

PDF_CH_FIELD_IS_COMBO  1 << 17
PDF_CH_FIELD_IS_EDIT  1 << 18
PDF_CH_FIELD_IS_SORT  1 << 19
PDF_CH_FIELD_IS_MULTI_SELECT  1 << 21
PDF_CH_FIELD_IS_DO_NOT_SPELL_CHECK  1 << 22
PDF_CH_FIELD_IS_COMMIT_ON_SEL_CHANGE  1 << 26 

小部件类型(field_type

PDF_WIDGET_TYPE_UNKNOWN 0
PDF_WIDGET_TYPE_BUTTON 1
PDF_WIDGET_TYPE_CHECKBOX 2
PDF_WIDGET_TYPE_COMBOBOX 3
PDF_WIDGET_TYPE_LISTBOX 4
PDF_WIDGET_TYPE_RADIOBUTTON 5
PDF_WIDGET_TYPE_SIGNATURE 6
PDF_WIDGET_TYPE_TEXT 7 

文本小部件子类型(text_format

PDF_WIDGET_TX_FORMAT_NONE 0
PDF_WIDGET_TX_FORMAT_NUMBER 1
PDF_WIDGET_TX_FORMAT_SPECIAL 2
PDF_WIDGET_TX_FORMAT_DATE 3
PDF_WIDGET_TX_FORMAT_TIME 4 

小部件标志位(field_flags

所有字段类型共同的

PDF_FIELD_IS_READ_ONLY 1
PDF_FIELD_IS_REQUIRED 1 << 1
PDF_FIELD_IS_NO_EXPORT 1 << 2 

文本小部件

PDF_TX_FIELD_IS_MULTILINE  1 << 12
PDF_TX_FIELD_IS_PASSWORD  1 << 13
PDF_TX_FIELD_IS_FILE_SELECT  1 << 20
PDF_TX_FIELD_IS_DO_NOT_SPELL_CHECK  1 << 22
PDF_TX_FIELD_IS_DO_NOT_SCROLL  1 << 23
PDF_TX_FIELD_IS_COMB  1 << 24
PDF_TX_FIELD_IS_RICH_TEXT  1 << 25 

按钮小部件

PDF_BTN_FIELD_IS_NO_TOGGLE_TO_OFF  1 << 14
PDF_BTN_FIELD_IS_RADIO  1 << 15
PDF_BTN_FIELD_IS_PUSHBUTTON  1 << 16
PDF_BTN_FIELD_IS_RADIOS_IN_UNISON  1 << 25 

选择小部件

PDF_CH_FIELD_IS_COMBO  1 << 17
PDF_CH_FIELD_IS_EDIT  1 << 18
PDF_CH_FIELD_IS_SORT  1 << 19
PDF_CH_FIELD_IS_MULTI_SELECT  1 << 21
PDF_CH_FIELD_IS_DO_NOT_SPELL_CHECK  1 << 22
PDF_CH_FIELD_IS_COMMIT_ON_SEL_CHANGE  1 << 26 


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

相关文章
|
8天前
PyMuPDF 1.24.4 中文文档(五)(1)
PyMuPDF 1.24.4 中文文档(五)
17 3
|
8天前
|
Python
PyMuPDF 1.24.4 中文文档(十四)
PyMuPDF 1.24.4 中文文档(十四)
10 0
|
8天前
|
安全 API 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(一)(5)
PyMuPDF 1.24.4 中文文档(一)
13 3
PyMuPDF 1.24.4 中文文档(一)(5)
|
8天前
|
存储 XML 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(八)(2)
PyMuPDF 1.24.4 中文文档(八)
20 1
|
8天前
|
存储 XML 编解码
PyMuPDF 1.24.4 中文文档(八)(3)
PyMuPDF 1.24.4 中文文档(八)
21 1
|
8天前
|
Python
PyMuPDF 1.24.4 中文文档(三)(5)
PyMuPDF 1.24.4 中文文档(三)
13 0
PyMuPDF 1.24.4 中文文档(三)(5)
|
8天前
|
存储 JSON 数据安全/隐私保护
PyMuPDF 1.24.4 中文文档(十二)(2)
PyMuPDF 1.24.4 中文文档(十二)
20 0
|
8天前
|
存储 JSON 编解码
PyMuPDF 1.24.4 中文文档(十二)(1)
PyMuPDF 1.24.4 中文文档(十二)
17 0
|
8天前
|
XML 存储 JSON
PyMuPDF 1.24.4 中文文档(十二)(4)
PyMuPDF 1.24.4 中文文档(十二)
12 0
|
8天前
|
XML Web App开发 JSON
PyMuPDF 1.24.4 中文文档(十二)(5)
PyMuPDF 1.24.4 中文文档(十二)
10 0