当前位置: 首页 > 科技观察

Python处理PDF:PyMuPDF的安装与使用!

时间:2023-03-12 19:21:19 科技观察

大家好,我是Python人工智能技术一、PyMuPDF简介1、简介在介绍PyMuPDF之前,我们先了解一下MuPDF。从命名形式可以看出,PyMuPDF是MuPDF的Python接口形式。MuPDFMuPDF是一个轻量级的PDF、XPS和电子书查看器。MuPDF由各种平台的软件库、命令行工具和查看器组成。MuPDF中的渲染器专为高质量的抗锯齿图形量身定制。它以精确到像素的一小部分的尺寸和间距呈现文本,以在屏幕上重现打印页面的外观时实现最高保真度。这个查看器很小,速度很快,但很完整。它支持各种文档格式,如PDF、XPS、OpenXPS、CBZ、EPUB和FictionBook2。您可以使用移动查看器为PDF文档添加注释和填写表格(此功能很快也会出现在桌面查看器中)。命令行工具允许您注释、编辑文档并将其转换为其他格式,例如HTML、SVG、PDF和CBZ。您还可以使用Javascript编写脚本来操作文档。PyMuPDFPyMuPDF(当前版本1.18.17)是一个支持MuPDF(当前版本1.18.*)的Python绑定。使用PyMuPDF,您可以访问扩展名为“.pdf”、“.xps”、“.oxps”、“.cbz”、“.fb2”或“.epub”的文件。此外,大约10种流行的图像格式也可以像文档一样处理:“.png”、“.jpg”、“.bmp”、“.tiff”等。2.功能对于所有支持的文档类型都可以:解密文件访问元信息、链接和书签以光栅格式(PNG和其他格式)或矢量格式呈现页面SVG搜索文本提取文本和图像转换为其他格式:PDF、(X)HTML、XML、JSON、文本对于PDF文档,大存在许多附加功能:可以创建、合并或拆分它们。可以通过多种方式(包括注释和表单域)插入、删除、重新排列或修改页面。可以提取或插入图像和字体完全支持嵌入文档PDF文件可以重新格式化以支持双面打印、分色、应用徽标或水印完全支持密码保护:解密、加密、加密方法选择、权限级别和用户/所有者密码设置支持图像、文本和绘图的PDF可选内容概念可以访问和修改低级PDF结构命令行模块“python\-mfitz...”具有文档连接的多用途实用程序图像/字体提取完全支持文本提取嵌入式文件保存的布局(所有文档)新:布局保存的文本提取!脚本fitzcliy.py通过子命令“gettext”提供不同格式的文本提取。特别感兴趣的当然是布局保存,它生成尽可能接近原始物理布局的文本、带有周围图像的区域,或者在表格和多列文本中复制文本。3.安装PyMuPDF可以从源代码或轮子安装。对于Windows、Linux和MacOSX平台,PyPI的下载部分有轮子。这包括Python64位版本3.6到3.9。还有用于Windows的32位版本。最近LinuxARM架构也出现了一些问题——寻找平台标签manylinux2014_aarch64。除了标准库之外,它没有强制性的外部依赖项。仅当您安装了某些包时,才会有一些不错的方法:Pillow:使用Pixmap.pil_save()和Pixmap.pil_tobytes()时需要fontTools:使用Document.subset_fonts()时需要pymupdf-fonts是一个不错的字体选择,可用于文本输出方式使用pip安装命令:pipinstallPyMuPDF导入库:importfitz关于命名fitz的注意事项该库的标准Python导入语句是importfitz。这有一个历史原因:MuPDF的原始渲染库称为Libart。在ArtifexSoftware收购MuPDF项目后,开发重点转移到编写一个名为“Fitz”的新现代图形库。Fitz最初是作为一个研发项目来取代老化的Ghostscript图形库,但后来成为MuPDF的渲染引擎(引自维基百科)。四、使用方法1、导入库并查看版本importfitzprint(fitz.__doc__)PyMuPDF1.18.16:PythonbindingsfortheMuPDF1.18.0library.Versiondate:2021-08-0500:00:01.为Linux(64位)上的Python3.8构建。2。打开文档doc=fitz.open(filename)这将创建文档对象doc。文件名必须是现有文件的Python字符串。也可以从内存数据打开文档,或创建新的空PDF。您还可以将文档用作上下文管理器。3、Document的方法和属性示例:>>>doc.count_page1>>>doc.metadata{'format':'PDF1.7','title':'','author':'','subject':'','keywords':'','creator':'','producer':'FoxitReaderPDFprinterversion10.0.130.3456','creationDate':"D:20210810173328+08'00'",'modDate':"D:20210810173328+08'00'",'trapped':'','encryption':None}4.获取元数据PyMuPDF完全支持标准元数据。Document.metadata是具有以下键的Python字典。它适用于所有文档类型,但并非所有条目都始终包含数据。元数据字段是字符串,如果没有另外说明,则为None。另请注意,并非所有数据都始终包含有意义的数据——即使它们不包含任何数据。另外,搜索公众号Java架构师技术背景回答“面试题”,还有惊喜礼包哦。5.获取目标大纲toc=doc.get_toc()6.页面(Page)页面处理是MuPDF的核心功能。您可以将页面呈现为光栅或矢量(SVG)图像,并带有缩放、旋转、移动或剪切页面的选项。您可以提取多种格式的页面文本和图像,并搜索文本字符串。对于PDF文档,有更多方法可以向页面添加文本或图像。首先,必须创建一个页面。这是Document的一种方法:page=doc.load_page(pno)#加载文档的页码'pno'(从0开始)page=doc[pno]#缩写形式任何整数都可以在这里使用-inf