常量和枚举#
MuPDF 在 PyMuPDF 中实现的常量和枚举。以下每个值都可以通过 pymupdf.value
访问。
常量#
- Base14_Fonts#
有效的 PDF Base 14 字体 的预定义 Python 列表。
- 类型:
list
- csRGB#
预定义的 RGB 颜色空间 pymupdf.Colorspace(pymupdf.CS_RGB)。
- 类型:
- csGRAY#
预定义的 GRAY 颜色空间 pymupdf.Colorspace(pymupdf.CS_GRAY)。
- 类型:
- csCMYK#
预定义的 CMYK 颜色空间 pymupdf.Colorspace(pymupdf.CS_CMYK)。
- 类型:
- mupdf_version#
‘x.xx.x’ – PyMuPDF 正在使用的 MuPDF 版本。
- 类型:
string
- mupdf_version_tuple#
MuPDF 版本,表示为整数元组:
(major, minor, patch)
。- 类型:
tuple
- pymupdf_version#
‘x.xx.x’ – PyMuPDF 版本。
- 类型:
string
- pymupdf_version_tuple#
PyMuPDF 版本,表示为整数元组:
(major, minor, patch)
。- 类型:
tuple
- pymupdf_date#
构建这些绑定的 ISO 时间戳 YYYY-MM-DD HH:MM:SS。
- 类型:
string
- version#
(pymupdf_version, mupdf_version, timestamp) – 组合版本信息,其中
timestamp
是生成时的时间点,格式为“YYYYMMDDhhmmss”。- 类型:
tuple
- VersionBind#
旧版等同于
mupdf_version
。
- VersionFitz#
旧版等同于
pymupdf_version
。
- VersionDate#
旧版等同于
mupdf_version
。
文档权限#
代码 |
允许的操作 |
---|---|
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 可选内容代码#
代码 |
含义 |
---|---|
PDF_OC_ON |
暂时将 OCG 设置为 ON |
PDF_OC_TOGGLE |
暂时切换 OCG 状态 |
PDF_OC_OFF |
暂时将 OCG 设置为 OFF |
PDF 加密方法代码#
代码 |
含义 |
---|---|
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()
返回。
扩展名 |
描述 |
---|---|
ttf |
TrueType 字体 |
pfa |
ASCII 字体的 Postscript (各种子类型) |
cff |
Type1C 字体 (Type1 的压缩字体等效项) |
cid |
字符标识符字体 (postscript 格式) |
otf |
OpenType 字体 |
n/a |
不可提取,例如 PDF Base 14 字体、Type 3 字体等 |
文本对齐方式#
- TEXT_ALIGN_LEFT#
0 – 左对齐。
- TEXT_ALIGN_CENTER#
1 – 居中对齐。
- TEXT_ALIGN_RIGHT#
2 – 右对齐。
- TEXT_ALIGN_JUSTIFY#
3 – 两端对齐。
字体属性#
请注意,以下位是从字体自身描述的属性中派生的。它们可能不准确(并且通常不准确)。
- TEXT_FONT_SUPERSCRIPT#
1 – 字符或 span 是上标。此属性由 MuPDF 计算得出,不属于任何字体信息。
- TEXT_FONT_ITALIC#
2 – 字体是斜体。
- TEXT_FONT_SERIFED#
4 – 字体是衬线体。
- TEXT_FONT_MONOSPACED#
8 – 字体是等宽字体。
- TEXT_FONT_BOLD#
16 – 字体是粗体。
文本提取标志#
控制解析到 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 – 忽略行尾的连字符并与下一行连接。在内部用于文本搜索函数。但是,它通常可用:如果开启,文本提取将返回已连接的文本行(或 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_USE_CID_FOR_UNKNOWN_UNICODE#
128 – 使用原始字符代码而不是 U+FFFD。这是 PyMuPDF 中文本提取的默认设置。如果你想检测编码信息何时缺失或不确定,请切换此标志并扫描结果文本中是否存在 U+FFFD (=
chr(0xfffd)
) 码点。
- TEXT_COLLECT_STRUCTURE#
256 – 不支持。
- TEXT_ACCURATE_BBOXES#
512 – 计算字符边界框时忽略所有字体的度量值——最突出的是 上升线 和 下降线 值。而是遵循每个字符字形的绘制命令并计算其矩形外壳。这是包含用于绘制视觉外观的所有点的最小矩形——参见 Shape 类以了解背景信息。这尤其会导致单个字符的高度。例如,(空白)字符的 bbox 高度为 0(因为没有绘制任何东西)——与使用字体度量生成的非零边界框形成对比。此选项对于即使包含错误的字体也能获得有意义的边界框可能很有用。由于涉及的计算工作,使用此选项会稍微减慢文本提取速度。
请注意,默认情况下这不起作用 - 还必须使用
pymupdf.TOOLS.unset_quad_corrections(True)
禁用全局 quad 修正设置。
- TEXT_COLLECT_VECTORS#
1024 – 不支持。
- TEXT_IGNORE_ACTUALTEXT#
2048 – 忽略在 PDF 查看器中显示的文本与存储在 PDF 中的文本之间的内置差异。有关背景信息,请参阅 Adobe PDF 参考手册,第 615 页。如果设置,则忽略存储的(“替换”文本)而优先使用显示的文本。
- TEXT_SEGMENT#
4096 – 尝试将页面分割成不同区域。
以下常量表示上述用于文本提取和搜索的默认组合
- TEXTFLAGS_TEXT#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_WORDS#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_BLOCKS#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_DICT#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_RAWDICT#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_HTML#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_XHTML#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_PRESERVE_IMAGES | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_XML#
TEXT_PRESERVE_LIGATURES | TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_USE_CID_FOR_UNKNOWN_UNICODE
- TEXTFLAGS_SEARCH#
TEXT_PRESERVE_WHITESPACE | TEXT_MEDIABOX_CLIP | TEXT_DEHYPHENATE
链接目标类型#
linkDest.kind
(链接目标类型)的可能值。
- LINK_NONE#
0 – 没有目标。表示一个虚拟链接。
- 类型:
int
- LINK_GOTO#
1 – 指向当前文档中的某个位置。
- 类型:
int
- LINK_LAUNCH#
3 – 启动(打开)另一个文件(任何“可执行”类型)。
PyMuPDF 将以
file:
开头或不包含冒号的外部链接视为LINK_LAUNCH
。
- 类型:
int
- LINK_NAMED#
4 – 指向一个命名位置。
- 类型:
int
- LINK_GOTOR#
5 – 指向另一个 PDF 文档中的某个位置。
- 类型:
int
链接目标标志#
注意
此整数的最右字节是一个位字段,因此请使用 & 运算符测试这些位的真假。
- LINK_FLAG_L_VALID#
1 (位 0) 左上角 x 值有效
- 类型:
bool
- LINK_FLAG_T_VALID#
2 (位 1) 左上角 y 值有效
- 类型:
bool
- LINK_FLAG_R_VALID#
4 (位 2) 右下角 x 值有效
- 类型:
bool
- LINK_FLAG_B_VALID#
8 (位 3) 右下角 y 值有效
- 类型:
bool
- LINK_FLAG_FIT_H#
16 (位 4) 水平适应
- 类型:
bool
- LINK_FLAG_FIT_V#
32 (位 5) 垂直适应
- 类型:
bool
- LINK_FLAG_R_IS_ZOOM#
64 (位 6) 右下角 x 是缩放值
- 类型:
bool
控件常量#
控件类型 (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
PDF 标准混合模式#
有关解释,请参阅 Adobe PDF 参考手册,第 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"
图章注解图标#
MuPDF 为图章注解定义了以下图标
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