PyMuPDF 1.24.4 中文文档(六)(3)https://developer.aliyun.com/article/1559577
信息
显示嵌入文件的名称(长格式或短格式):
pymupdf embed-info -h usage: fitz embed-info [-h] [-name NAME] [-detail] [-password PASSWORD] input --------------------------- list embedded files --------------------------- positional arguments: input PDF filename optional arguments: -h, --help show this help message and exit -name NAME if given, report only this one -detail show detail information -password PASSWORD password
示例:
pymupdf embed-info some.pdf 'some.pdf' contains the following 15 embedded files. 20110813_180956_0002.jpg 20110813_181009_0003.jpg 20110813_181012_0004.jpg 20110813_181131_0005.jpg 20110813_181144_0006.jpg 20110813_181306_0007.jpg 20110813_181307_0008.jpg 20110813_181314_0009.jpg 20110813_181315_0010.jpg 20110813_181324_0011.jpg 20110813_181339_0012.jpg 20110813_181913_0013.jpg insta-20110813_180944_0001.jpg markiert-20110813_180944_0001.jpg neue.datei
每个条目的详细输出如下:
name: neue.datei filename: text-tester.pdf ufilename: text-tester.pdf desc: nur zum Testen! size: 4639 length: 1566
提取
这样提取嵌入文件:
pymupdf embed-extract -h usage: fitz embed-extract [-h] -name NAME [-password PASSWORD] [-output OUTPUT] input ---------------------- extract embedded file to disk ---------------------- positional arguments: input PDF filename optional arguments: -h, --help show this help message and exit -name NAME name of entry -password PASSWORD password -output OUTPUT output filename, default is stored name
有关详细信息,请参阅Document.embfile_get()
。示例(参见前一节):
pymupdf embed-extract some.pdf -name neue.datei Saved entry 'neue.datei' as 'text-tester.pdf'
删除
这样删除嵌入文件:
pymupdf embed-del -h usage: fitz embed-del [-h] [-password PASSWORD] [-output OUTPUT] -name NAME input --------------------------- delete embedded file -------------------------- positional arguments: input PDF filename optional arguments: -h, --help show this help message and exit -password PASSWORD password -output OUTPUT output PDF filename, incremental save if none -name NAME name of entry to delete
有关详细信息,请参阅Document.embfile_del()
。
插入
使用此命令添加新的嵌入文件:
pymupdf embed-add -h usage: fitz embed-add [-h] [-password PASSWORD] [-output OUTPUT] -name NAME -path PATH [-desc DESC] input ---------------------------- add embedded file ---------------------------- positional arguments: input PDF filename optional arguments: -h, --help show this help message and exit -password PASSWORD password -output OUTPUT output PDF filename, incremental save if none -name NAME name of new entry -path PATH path to data for new entry -desc DESC description of new entry
“名称” 不能已经存在于 PDF 中。有关详细信息,请参阅Document.embfile_add()
。
更新
使用此命令更新现有的嵌入文件:
pymupdf embed-upd -h usage: fitz embed-upd [-h] -name NAME [-password PASSWORD] [-output OUTPUT] [-path PATH] [-filename FILENAME] [-ufilename UFILENAME] [-desc DESC] input --------------------------- update embedded file -------------------------- positional arguments: input PDF filename optional arguments: -h, --help show this help message and exit -name NAME name of entry -password PASSWORD password -output OUTPUT Output PDF filename, incremental save if none -path PATH path to new data for entry -filename FILENAME new filename to store in entry -ufilename UFILENAME new unicode filename to store in entry -desc DESC new description to store in entry except '-name' all parameters are optional
使用这种方法来更改文件的元信息 - 只需省略*“路径”*。有关详细信息,请参阅Document.embfile_upd()
。
复制
在 PDF 之间复制嵌入的文件:
pymupdf embed-copy -h usage: fitz embed-copy [-h] [-password PASSWORD] [-output OUTPUT] -source SOURCE [-pwdsource PWDSOURCE] [-name [NAME [NAME ...]]] input --------------------- copy embedded files between PDFs -------------------- positional arguments: input PDF to receive embedded files optional arguments: -h, --help show this help message and exit -password PASSWORD password of input -output OUTPUT output PDF, incremental save to 'input' if omitted -source SOURCE copy embedded files from here -pwdsource PWDSOURCE password of 'source' PDF -name [NAME [NAME ...]] restrict copy to these entries
文本提取
- 在 v1.18.16 中新增
从任意支持的文档中提取文本到文本文件。目前,有三种输出格式模式可用:简单、块排序和复制物理布局。
- 简单文本提取会复制文档页面中显示的所有文本 - 不会做任何特定阅读顺序的重新排列。
- 块排序按升序垂直,然后水平坐标对文本块(由 MuPDF 标识)进行排序。这应足以为基本文本页建立“自然”的阅读顺序。
- 布局致力于复制输入页面的原始外观。您可以期待像这样的结果(由命令
pymupdf gettext -pages 1 demo1.pdf
生成):
注意
“gettext”命令提供了类似于 XPDF 软件的 CLI 工具pdftotext
的功能,www.foolabs.com/xpdf/
- 对于“布局”模式,这是特别真实的,该模式结合了该工具的-layout
和-table
选项。
在输出文件的每个页面之后,都会写入一个换页符,hex(12)
- 即使输入页面根本没有文本。此行为可以通过选项进行控制。
注意
对于“布局”模式,只支持水平、从左到右、从上到下的文本,其他文本将被忽略。在此模式下,如果文本的fontsize
太小,也会被忽略。
与之相反,“简单”和“块”模式输出所有文本,无论文本大小或方向如何。
命令:
pymupdf gettext -h usage: fitz gettext [-h] [-password PASSWORD] [-mode {simple,blocks,layout}] [-pages PAGES] [-noligatures] [-convert-white] [-extra-spaces] [-noformfeed] [-skip-empty] [-output OUTPUT] [-grid GRID] [-fontsize FONTSIZE] input ----------------- extract text in various formatting modes ---------------- positional arguments: input input document filename optional arguments: -h, --help show this help message and exit -password PASSWORD password for input document -mode {simple,blocks,layout} mode: simple, block sort, or layout (default) -pages PAGES select pages, format: 1,5-7,50-N -noligatures expand ligature characters (default False) -convert-white convert whitespace characters to space (default False) -extra-spaces fill gaps with spaces (default False) -noformfeed write linefeeds, no formfeeds (default False) -skip-empty suppress pages with no text (default False) -output OUTPUT store text in this file (default inputfilename.txt) -grid GRID merge lines if closer than this (default 2) -fontsize FONTSIZE only include text with a larger :data:`fontsize` (default 3)
注意
命令选项可以缩写,只要不会引入歧义。所以以下做同样的事情:
... -output text.txt -noligatures -noformfeed -convert-white -grid 3 -extra-spaces ...
... -o text.txt -nol -nof -c -g 3 -e ...
输出文件名默认为输入文件名,并将其扩展名替换为.txt
。与其他命令一样,您可以选择页面范围(注意:基于 1 的索引!)以mutool
格式选择,如上所示。
- mode: (字符串)选择格式模式,默认为“布局”模式。
- noligatures: (布尔值)对应于不
TEXT_PRESERVE_LIGATURES
。如果指定,连字(存在于高级字体中:将多个字符组合成一个字形,如“fi”)将被拆分为其组成部分(即“f”,“i”)。默认为保留它们。 - convert-white: 对应于不
TEXT_PRESERVE_WHITESPACE
。如果指定,所有空白字符(如制表符)将被替换为一个或多个空格。默认为保留它们。 - extra-spaces: (布尔值)对应于不
TEXT_INHIBIT_SPACES
。如果指定,邻近字符之间的大间隙将填充为一个或多个空格。默认为关闭。 - noformfeed: (布尔值)而不是
hex(12)
(进纸符),在输出页面的末尾写入换行符n
。 - skip-empty: (布尔值)跳过没有文本的页面。
- grid: 竖直坐标差值不超过此数值(以点为单位)的线将合并为同一输出行。仅适用于“布局”模式。使用时请注意: 大多数情况下,3 或默认值 2 应该足够。如果过大,原本意图不同的行可能被合并,导致输出混乱或不完整。如果过小,输入行中某些跨度使用稍有偏差属性的不同字体可能会生成单独的输出行。
- fontsize: 仅包括
fontsize
大于此值的文本(默认为 3)。仅适用于“布局”选项。
对本页有任何反馈吗?
此软件按原样提供,不带任何明示或暗示的保证。此软件按许可分发,未经许可明确授权,不得复制、修改或分发。请参阅artifex.com上的许可信息或联系 Artifex Software Inc.,39 Mesa Street,Suite 108A,San Francisco CA 94129,美国获取更多信息。
此文档覆盖所有版本直至 1.24.4。
类
- 注释
注释
- MuPDF 中的注释图标
- 示例
- 存档
Archive
- 颜色空间
颜色空间
- 显示列表
显示列表
- 文档
文档
set_metadata()
示例set_toc()
演示insert_pdf()
示例- 其他示例
- 文档编写器
文档编写器
- 字体
字体
- 身份
- 整数矩形
IRect
- 链接
链接
- 链接目标
链接目标
- 矩阵
矩阵
- 示例
- 大纲
大纲
- 页面
- 修改页面
- get_links() 条目的描述
- 关于支持链接的说明
- 文档和页面的同源方法
- 像素图
像素图
- 支持的输入图像格式
- 支持的输出图像格式
- 点
点
- 四边形
四边形
- 备注
- 代数和包含检查
- 矩形
矩形
- 形状
形状
- 用法
- 示例
- 常见参数
- 故事
故事
- 元素定位回调函数
- 文本页
文本页
- 字典输出的结构
- 文本编写器
文本编写器
- 工具
工具
- 示例会话
- 小部件
小部件
- 小部件的标准字体
- 支持的小部件类型
- XML
XML
- 设置文本属性
- XML 类的上下文管理器支持
你对这个页面有任何反馈意见吗?
此软件按原样提供,不提供任何明示或暗示的保证。此软件根据许可分发,未经授权不得复制、修改或分发。请参阅许可信息,网址为 artifex.com,或联系美国旧金山 CA 94129 Mesa Street 39 号 108A 室的 Artifex Software Inc. 了解更多信息。
此文档涵盖了所有版本直至 1.24.4。
PyMuPDF 1.24.4 中文文档(六)(5)https://developer.aliyun.com/article/1559579