使用mutool 提取pdf 例子

该篇博客介绍了mutool工具的使用方法,包括将PDF页面转换为图像、提取文本内容、合并PDF文件、查询PDF信息以及提取嵌入资源等操作。通过示例代码展示了如何执行这些任务,适用于需要处理PDF的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    basename = os.path.basename(in_path)

    FNULL = open(os.devnull, 'w')  # use this if you want to suppress output to stdout from the subprocess
    out_path = os.path.join(out_dir, basename[:-4] + '_%d.png')
    args = r'draw -h 2048 -o "' + out_path + r'"  "' + in_path + r'" 1-N'
    args = r'draw -h 1024 -o "' + out_path + r'"  "' + in_path + r'" 1-N'
    args_list = shlex.split(args)
    args_list.insert(0, '/usr/bin/mutool')
    subprocess.call(args_list, stdout=FNULL, stderr=FNULL, shell=False)

 

# To convert pages 1-10 into 10 PNG images:

mutool convert -o <image%d.png> <file.pdf> <1-10>

# To convert pages 2, 3 and 5 of a PDF into text in the standard output:

mutool draw -F <txt> <file.pdf> <2,3,5>

# To concatenate two PDFs:

mutool merge -o <output.pdf> <input1.pdf> <input2.pdf>

# To query information about all content embedded in a PDF:

mutool info <input.pdf>

# To extract all images, fonts and resources embedded in a PDF out into the current directory:

mutool extract <input.pdf>

# To print the outline (table of contents) of a PDF:

mutool show <input.pdf> outline

mutool draw [options] file [pages] 

mutool man page - mupdf - General Commands | ManKier
mutool 绘制 [选项] 文件 [页面]

draw 命令会将文档渲染为图像文件、转换为另一种矢量格式或提取文本内容。

支持的输入文档格式有:pdf、xps、cbz 和 epub。

支持的输出图像格式有:pbm、pgm、ppm、pam、png、pwg、pcl 和 ps。支持的输出矢量格式有:svg、pdf 和调试跟踪(如 xml)。支持的输出文本格式有:纯文本、html 和结构化文本(如 xml)。

-p 密码

如果文件已加密,请使用指定的密码。

-o 输出

输出格式是从输出文件名推断出来的。在名称中嵌入 %d 以指示页码(例如:“page%d.png”)。支持 Printf 修饰符,例如“%03d”。如果未指定输出,则输出将转到标准输出。

-F 格式

强制执行特定的输出格式。仅在输出到 stdout 时才需要,因为通常输出文件名用于推断输出格式。

-R 角

顺时针旋转给定的度数。

-r 分辨率

以指定的分辨率呈现页面。默认分辨率为 72 dpi。

-w 宽度

以指定宽度呈现页面(或者,如果使用-r标志,则以最大宽度呈现)。

-h 高度

以指定的高度渲染页面(或者,如果使用-r标志,则以最大高度渲染)。

-F

完全适合;匹配指定的宽度/高度时忽略纵横比。

-B 带宽

以条带模式渲染,每个条带不高于给定高度。这在渲染期间使用更少的内存。仅与 pam、pgm、ppm、pnm 和 png 输出格式兼容。不能同时使用带状渲染和 md5 校验和。

-W 宽度

EPUB 布局的页面宽度(以磅为单位)。

-H 高度

EPUB 布局的页面高度(以磅为单位)。

-S 大小

EPUB 布局的字体大小(以磅为单位)。

-U 文件名

用于 EPUB 布局的用户 CSS 样式表。

-c 颜色空间

在指定的色彩空间中渲染。支持的色彩空间有:mono、gray、grayalpha、rgb、rgbalpha、cmyk、cmykalpha。允许使用一些缩写:m、g、ga、rgba、cmyka。根据输出格式选择默认值。

-G 伽玛

应用伽玛校正。一些典型值是 0.7 或 1.4 以使文本渲染变细或变暗。

-我

反转颜色。

-s [mft5]

显示各种信息:m表示字形缓存和总内存使用情况,f表示页面特征,例如页面是灰度还是彩色,t表示每页渲染时间以及统计信息,5表示渲染图像的 md5 校验和用于检查渲染是否已更改。

-A 位

指定要使用多少位抗锯齿。默认值为 8。

-D

禁用显示列表。可能会导致速度变慢,但应减少使用的内存量。

-一世

忽略错误。

-L

低内存模式(通过在每页后清除缓存来避免缓存对象)。

-P

同时运行解释和渲染。

页面

页码和范围的逗号分隔列表(例如:1,5,10-15,20-N),其中字符 N 表示最后一页。如果未指定页面,则将呈现所有页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子燕若水

吹个大气球

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值