常量和枚举#
Constants and Enumerations
由 PyMuPDF 实现的 MuPDF 的常量和枚举。以下每个值都可以作为 pymupdf.value
访问。
Constants and enumerations of MuPDF as implemented by PyMuPDF. Each of the following values is accessible as pymupdf.value
.
常量#
Constants
- Base14_Fonts#
预定义的有效 PDF Base 14 字体 Python 列表。
- Type:
list
- csRGB#
预定义的 RGB 色彩空间 pymupdf.Colorspace(pymupdf.CS_RGB)。
- Type:
- csGRAY#
预定义的 GRAY 色彩空间 pymupdf.Colorspace(pymupdf.CS_GRAY)。
- Type:
- csCMYK#
预定义的 CMYK 色彩空间 pymupdf.Colorspace(pymupdf.CS_CMYK)。
- Type:
- CS_RGB#
1 – Colorspace 类型为 RGBA。
- Type:
int
- CS_GRAY#
2 – Colorspace 类型为 GRAY。
- Type:
int
- CS_CMYK#
3 – Colorspace 类型为 CMYK。
- Type:
int
- mupdf_version#
‘x.xx.x’ – 当前 PyMuPDF 使用的 MuPDF 版本。
- Type:
string
- mupdf_version_tuple#
MuPDF 版本,表示为一个整数元组
(major, minor, patch)
。- Type:
tuple
- pymupdf_version#
‘x.xx.x’ – 当前 PyMuPDF 版本。
- Type:
string
- pymupdf_version_tuple#
PyMuPDF 版本,表示为一个整数元组
(major, minor, patch)
。- Type:
tuple
- pymupdf_date#
这些绑定构建时的 ISO 时间戳 YYYY-MM-DD HH:MM:SS。
- Type:
string
- version#
(pymupdf_version, mupdf_version, timestamp) – 组合的版本信息,其中
timestamp
是以 “YYYYMMDDhhmmss” 格式表示的生成时间。- Type:
tuple
- VersionBind#
旧版等同于
mupdf_version
。
- VersionFitz#
旧版等同于
pymupdf_version
。
- VersionDate#
旧版等同于
mupdf_version
。
文档权限#
Document Permissions
Code |
Permitted Action |
---|---|
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 |
高质量打印 |
Code |
Permitted Action |
---|---|
PDF_PERM_PRINT |
Print the document |
PDF_PERM_MODIFY |
Modify the document’s contents |
PDF_PERM_COPY |
Copy or otherwise extract text and graphics |
PDF_PERM_ANNOTATE |
Add or modify text annotations and interactive form fields |
PDF_PERM_FORM |
Fill in forms and sign the document |
PDF_PERM_ACCESSIBILITY |
Obsolete, always permitted |
PDF_PERM_ASSEMBLE |
Insert, rotate, or delete pages, bookmarks, thumbnail images |
PDF_PERM_PRINT_HQ |
High quality printing |
PDF可选内容代码#
PDF Optional Content Codes
代码 |
含义 |
---|---|
PDF_OC_ON |
暂时将 OCG 设置为 ON |
PDF_OC_TOGGLE |
暂时切换 OCG 状态 |
PDF_OC_OFF |
暂时将 OCG 设置为 OFF |
Code |
Meaning |
---|---|
PDF_OC_ON |
Set an OCG to ON temporarily |
PDF_OC_TOGGLE |
Toggle OCG status temporarily |
PDF_OC_OFF |
Set an OCG to OFF temporarily |
PDF 加密方法代码#
PDF encryption method codes
Code |
Meaning |
---|---|
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 |
未知 |
Code |
Meaning |
---|---|
PDF_ENCRYPT_KEEP |
do not change |
PDF_ENCRYPT_NONE |
remove any encryption |
PDF_ENCRYPT_RC4_40 |
RC4 40 bit |
PDF_ENCRYPT_RC4_128 |
RC4 128 bit |
PDF_ENCRYPT_AES_128 |
Advanced Encryption Standard 128 bit |
PDF_ENCRYPT_AES_256 |
Advanced Encryption Standard 256 bit |
PDF_ENCRYPT_UNKNOWN |
unknown |
字体文件扩展名#
Font File Extensions
下表显示了保存从 PDF 中提取的字体文件缓冲区时应使用的文件扩展名。此字符串由 Document.get_page_fonts()
、Page.get_fonts()
和 Document.extract_font()
返回。
Ext |
Description |
---|---|
ttf |
TrueType 字体 |
pfa |
Postscript ASCII 字体(各种子类型) |
cff |
Type1C 字体(等同于压缩字体 Type1) |
cid |
字符标识符字体(Postscript 格式) |
otf |
OpenType 字体 |
n/a |
无法提取,例如 PDF Base 14 字体 、Type 3 字体及其他 |
The table show file extensions you should use when saving fontfile buffers extracted from a PDF. This string is returned by Document.get_page_fonts()
, Page.get_fonts()
and Document.extract_font()
.
Ext |
Description |
---|---|
ttf |
TrueType font |
pfa |
Postscript for ASCII font (various subtypes) |
cff |
Type1C font (compressed font equivalent to Type1) |
cid |
character identifier font (postscript format) |
otf |
OpenType font |
n/a |
not extractable, e.g. PDF Base 14 字体, Type 3 fonts and others |
文本对齐#
Text Alignment
字体属性#
Font Properties
请注意,以下位是从字体的属性中推导出来的。它可能不完全准确(实际上,通常并不准确)。
- TEXT_FONT_SUPERSCRIPT#
1 – 字符或范围是上标。此属性由 MuPDF 计算,而不是字体信息的一部分。
- TEXT_FONT_ITALIC#
2 – 字体是斜体。
- TEXT_FONT_SERIFED#
4 – 字体有衬线。
- TEXT_FONT_MONOSPACED#
8 – 字体是等宽的。
- TEXT_FONT_BOLD#
16 – 字体是加粗的。
Please note that the following bits are derived from what a font has to say about its properties. It may not be (and quite often is not) correct.
文本提取标志#
Text Extraction Flags
控制解析到 TextPage 的数据量的选项位。
对于 PyMuPDF 程序员,可以通过 Python 的 |
操作符,或简单地使用 +
将这些值的组合聚合成 flags
整数,这是所有文本搜索和文本提取方法的参数。根据不同的方法,会使用不同的默认值组合。请使用适合您情况的值。特别是,除非您确实需要图像提取,否则务必关闭图像提取。因为它对性能和内存的影响非常显著!
- 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 – 忽略行末的连字符并与下一行合并。内部用于文本搜索功能。但是,它通常是可用的:如果开启,文本提取将返回合并的文本行(或跨度),并去除第一行末尾的连字符。因此,两个分开的跨度 “first meth-” 和 “od leads to wrong results” 会合并为一个跨度 “first method leads to wrong results”,并相应更新边界框:结果跨度的字符将不再具有相同的 y 坐标。
- TEXT_PRESERVE_SPANS#
32 – 为每个跨度生成新的一行。PyMuPDF 中未使用(”关闭”),但可以使用。在 “dict”、”json”、”rawdict”、”rawjson” 中,每行将包含确切的一个跨度。
- TEXT_MEDIABOX_CLIP#
64 – 完全位于页面 mediabox 之外的字符或位于其他“裁剪”区域中的字符将被忽略。这是 PyMuPDF 中的默认设置。
- TEXT_CID_FOR_UNKNOWN_UNICODE#
128 – 使用原始字符代码代替 U+FFFD。这是 PyMuPDF 中文本提取的默认设置。如果您 想要检测 编码信息缺失或不确定的情况,可以切换此标志并扫描结果文本中是否存在 U+FFFD(=
chr(0xfffd)
)码点。
- TEXT_COLLECT_STRUCTURE#
256 – 不支持。
- TEXT_ACCURATE_BBOXES#
512 – 计算字符边界框时忽略所有字体的度量值,最突出的是 ascender 和 descender 值。相反,遵循每个字符的字形绘制命令并计算其矩形外壳。这是包装所有绘制视觉外观点的最小矩形 - 有关详细背景,请参见 Shape 类。尤其会导致单个字符的高度。例如,空格字符(白色)将有一个 高度为 0 的边界框(因为没有绘制任何内容) – 与使用字体度量时生成的非零边界框相反。此选项可能对处理即使在包含错误的字体中仍能获取有意义的边界框有所帮助。由于涉及的计算工作,这将稍微减慢文本提取过程。
注意,默认情况下没有效果 - 必须禁用全局四边形修正设置,使用
pymupdf.TOOLS.unset_quad_corrections(True)
。
- TEXT_COLLECT_VECTORS#
1024 – 不支持。
- TEXT_IGNORE_ACTUALTEXT#
2048 – 忽略例如 PDF 查看器中显示的文本与 PDF 中存储的文本之间的内置差异。有关背景,请参见 Adobe PDF 参考 第 615 页。如果设置,则忽略 存储的 (“替代”)文本,使用显示的文本。
- TEXT_STEXT_SEGMENT#
4096 – 尝试将页面分割为不同的区域。
以下常量表示用于文本提取和搜索的默认组合:
Option bits controlling the amount of data, that are parsed into a TextPage.
For the PyMuPDF programmer, some combination (using Python’s |
operator, or simply use +
) of these values are aggregated in the flags
integer, a parameter of all text search and text extraction methods. Depending on the individual method, different default combinations of the values are used. Please use a value that meets your situation. Especially make sure to switch off image extraction unless you really need them. The impact on performance and memory is significant!
The following constants represent the default combinations of the above for text extraction and searching:
- 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_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_DEHYPHENATE
链接目标类型#
Link Destination Kinds
linkDest.kind
(链接目标类型)的可能值:
- LINK_NONE#
0 – 无目标。表示一个虚拟链接。
- Type:
int
- LINK_GOTO#
1 – 指向当前文档中的某个位置。
- Type:
int
- LINK_LAUNCH#
3 – 启动(打开)另一个文件(任何“可执行”类型)。
PyMuPDF 将任何以
file:
开头或不包含冒号的外部链接视为LINK_LAUNCH
。
- Type:
int
- LINK_NAMED#
4 – 指向一个命名位置。
- Type:
int
- LINK_GOTOR#
5 – 指向另一个 PDF 文档中的某个位置。
- Type:
int
Possible values of linkDest.kind
(link destination kind).
链接目标标志#
Link Destination Flags
备注
该整数的最右边字节是一个位字段,因此可以使用 & 运算符来测试这些位的真值。
- LINK_FLAG_L_VALID#
1 (bit 0) 左上角 x 值有效
- Type:
bool
- LINK_FLAG_T_VALID#
2 (bit 1) 左上角 y 值有效
- Type:
bool
- LINK_FLAG_R_VALID#
4 (bit 2) 右下角 x 值有效
- Type:
bool
- LINK_FLAG_B_VALID#
8 (bit 3) 右下角 y 值有效
- Type:
bool
- LINK_FLAG_FIT_H#
16 (bit 4) 水平适配
- Type:
bool
- LINK_FLAG_FIT_V#
32 (bit 5) 垂直适配
- Type:
bool
- LINK_FLAG_R_IS_ZOOM#
64 (bit 6) 右下角 x 值是一个缩放值
- Type:
bool
备注
The rightmost byte of this integer is a bit field, so test the truth of these bits with the & operator.
注释相关常量#
Annotation Related Constants
有关详细信息,请参阅: Adobe PDF 参考 的第 8.4.5 章第 615 页。
See chapter 8.4.5, pp. 615 of the Adobe PDF 参考 for details.
注释类型#
Annotation Types
这些标识符还包括 链接 和 小部件 :PDF 规范在技术上以相同的方式处理它们,而 MuPDF (和 PyMuPDF)将它们视为三种基本上不同类型的对象。
These identifiers also cover links and widgets: the PDF specification technically handles them all in the same way, whereas MuPDF (and PyMuPDF) treats them as three basically different types of objects.
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
注释标志位#
Annotation Flag Bits
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)
注释行尾样式#
Annotation Line Ending Styles
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
Widget Constants#
小部件类型 (field_type)#
Widget Types (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)#
Text Widget Subtypes (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)#
Widget flags (field_flags)
Common to all field types:
PDF_FIELD_IS_READ_ONLY 1
PDF_FIELD_IS_REQUIRED 1 << 1
PDF_FIELD_IS_NO_EXPORT 1 << 2
Text widgets:
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
Button widgets:
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
Choice widgets:
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
PDF 标准混合模式#
PDF Standard Blend Modes
有关解释,请参阅: Adobe PDF 参考,第 324 页
For an explanation see Adobe PDF 参考, page 324
PDF_BM_Color "Color"
PDF_BM_ColorBurn "ColorBurn"
PDF_BM_ColorDodge "ColorDodge"
PDF_BM_Darken "Darken"
PDF_BM_Difference "Difference"
PDF_BM_Exclusion "Exclusion"
PDF_BM_HardLight "HardLight"
PDF_BM_Hue "Hue"
PDF_BM_Lighten "Lighten"
PDF_BM_Luminosity "Luminosity"
PDF_BM_Multiply "Multiply"
PDF_BM_Normal "Normal"
PDF_BM_Overlay "Overlay"
PDF_BM_Saturation "Saturation"
PDF_BM_Screen "Screen"
PDF_BM_SoftLight "Softlight"
图章注释图标#
Stamp Annotation Icons
MuPDF 为 橡皮图章 注释定义了以下图标
MuPDF has defined the following icons for rubber stamp annotations
STAMP_Approved 0
STAMP_AsIs 1
STAMP_Confidential 2
STAMP_Departmental 3
STAMP_Experimental 4
STAMP_Expired 5
STAMP_Final 6
STAMP_ForComment 7
STAMP_ForPublicRelease 8
STAMP_NotApproved 9
STAMP_NotForPublicRelease 10
STAMP_Sold 11
STAMP_TopSecret 12
STAMP_Draft 13