安利3款Python三方库!轻松实现PDF转图片,最快的只需一行代码!

大家有时候会不会有 PDF 转 图片 或是 图片 合成 PDF 的需求,尤其是一些扫描版的手稿、画册、字帖一类的的文档。

当大家苦于不知道找什么在线应用或软件来进行转换的时候,我们用 Python几行代码就可以实现 PDF转图片的需求了。

今天强哥给大家安利3个可以实现PDF转图片的Python库,不要 so easy 了!

  • • ✅ PyMuPDF

  • • ✅ pdfplumber

  • • ✅ python-office

一、PyMuPDF

1、PyMuPDF简介

该三方库从命名形式中就可以看出,PyMuPDFMuPDF 的Python接口形式。

MuPDF 是一个轻量级的 PDF、XPS和电子书查看器。MuPDF 由软件库、命令行工具和各种平台的查看器组成。这个工具很小,速度很快,而且很完整。它支持多种文档格式,如PDF、XPS、OpenXPS、CBZ、EPUB和FictionBook 2。

使用PyMuPDF,你可以访问扩展名为“.pdf”、“.xps”、“.oxps”、“.cbz”、“.fb2”或“.epub”。此外,大约10种流行的图像格式也可以像文档一样处理“.png”,“.jpg”,“.bmp”,“.tiff”等。

2、安装

PyMuPDF 可以通过Python pip 官方方式安装,也可以下载离线 wheels包进行安装。

支持平台:Windows、Linux、Mac OS

pip安装命令:

pip install PyMuPDF

导入命令:

import fitz

关于命名fitz的说明

这个库的标准Python导入语句是import fitz。这是有历史原因的: MuPDF的原始渲染库被称为Libart。

在Artifex软件获得MuPDF项目后,开发的重点转移到编写一种新的现代图形图书馆称为“Fitz”。Fitz最初是作为一个研发项目,以取代老化的Ghostscript图形库,但却成为了MuPDF的渲染引擎。

3、使用方法

在这里插入图片描述

验证pymupdf 模块是否安装成功

import fitz
print(fitz.__doc__)

输出:

PyMuPDF 1.21.0: Python bindings for the MuPDF 1.21.0 library.
Version date: 2022-11-08 00:00:01.
Built for Python 3.8 on darwin (64-bit).

加载PDF文件

# 加载pdf 文件
doc = fitz.open("/test/demo.pdf")

获取Document 属性和方法

# 1、获取pdf 页数
pageCount = doc.page_count
print("pdf 页数: ", pageCount)
 
# 2、获取pdf 元数据
metaData = doc.metadata
print("pdf 元数据: ", metaData)
 
# 3、获取pdf 目录信息
toc = doc.get_toc()
print("pdf 目录:", toc)

Page 加载方法

page = doc.load_page(pno) # 加载每页数据
page = doc[pno] # 加载每页数据

页面展示/页面图像保存到文件中

# Page 页面-光栅图像
pix = page.get_pixmap()
print("打印页面图像对象:", pix)
# 保存光栅图像图像,需要依赖第三方框架:Pillow
pix.pil_save("page-%i.png" % page.number)

PDF保存为图片完整代码:

import os
import fitz 

def covert2pic(file_path, zoom, png_path):
    doc = fitz.open(file_path)
    total = doc.page_count
    for pg in range(total):
        page = doc[pg]
        zoom = int(zoom)  # 值越大,分辨率越高,文件越清晰
        rotate = int(0)

        trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).prerotate(rotate)
        pm = page.get_pixmap(matrix=trans, alpha=False)
        if not os.path.exists(png_path):
            os.mkdir(png_path)
        save = os.path.join(png_path, '%s.png' %(pg+1))
        pm.save(save)
    doc.close()

if __name__ == "__main__":
    pdfPath = 'demo.pdf'
    imagePath = './imgs'
    covert2pic(pdfPath, 200, imagePath)

PyMuPDF 还提供了丰富的功能来操作PDF文件,如读取、写入、分割、合并、旋转、裁剪等。此外,它还支持加密和解密PDF文档,以及提取文本、图像和元数据等信息。

至于其他进阶用法,小圈下次专门写个文章进行分享,有兴趣的同学可以先去使用尝试。

二、pdfplumber

1、pdfplumber简介

pdfplumber 也是一个可以处理pdf格式信息的库,可以查找关于每个文本字符、矩阵、和行的详细信息,也可以对表格进行提取并进行可视化调试。

主要功能:

  • 可返回csv或json格式的信息: pdf级和页面级的元数据以及字典的嵌套属性。

  • 可以指定页面以及页面范围进行解析: 以空格分隔、1索引的页面列表或带连字符的页面范围。例如,1, 11-15将返回第 1、11、12、13、14 和 15 页的数据。

  • 可以指定解析的类型: 比如char、rect、line、curve、image或annot等,默认为所有可用。

最终返回的是一个 pdfplumber.Page对象

2、安装

跟PyMuPDF一样,支持使用pip安装,安装命令:

pip install pdfplumber

导入命令:

import pdfplumber

3、使用方法

pdfplumber有2个基础类:PDF和Page

PDF用来处理整个文档,Page用来处理整个页面

用法简介
pdfplumber.PDF.metadata,获取pdf基础信息,返回字典格式,包含作者、创建时间等。.pages,返回pdfplumber.Page实例的列表,每一个实例包含pdf每一页的信息
pdfplumber.Pagepdfplumber核心功能,对PDF的大部分操作都是基于这个类,包括提取文本、表格等

读取pdf文件,并输出pdf文件的基础信息

import pdfplumber
# 打开pdf文件,有密码加入password参数
pdf_info =pdfplumber.open('demo.pdf')
meta_data = pdf_info.metadata  # pdf的基础信息
page_con = len(pdf_info.pages)  # 获取pdf的总页数
print('pdf文件的基础信息:\n', meta_data)
print('pdf共%s页' % page_con)

pdfplumber转图片完整代码:

import pdfplumber

def covert2pic_v2(file_path, png_path):
    with pdfplumber.open(file_path) as pdf:
        # pdf.pages默认为pdf全部页
        # 可通过切片的方式选择需要转换的1页或几页,如前2页:pdf.pages[:2]
        for i, page in enumerate(pdf.pages[:2]):
            im = page.to_image(resolution=150)
            # 保存
            save = os.path.join(png_path, '%s.png' % (int(i) + 1))
            im.save(save)
            print('----分割线,第%d页----' % (int(i) + 1))

效果跟PyMuPDF一样,这里就不展示了。

三、Python-Office

1、Python-Office简介

Python-office 是一个Python 自动化办公第三方库,能解决大部分自动化办公的问题。而且每 个功能只需一行代码,不需要小白用户学习 Python 知识,做到了真正的开箱即用。

2、安装

安装命令

pip install python-office

有时候易安装失败,小圈就遇到了,所以该库只能简单介绍下,请朋友们见谅哈!偷下懒!

3、使用方法

# 导入这个库:python-office,简写为office
import office

# 一行代码,实现转换
office.pdf.pdf2imgs(
    pdf_path='demo.pdf',
    out_dir='./imgs'
)
# 参数说明:
# pdf_path = 你的PDF文件的地址 
# out_dir = 转换后的图片存放地址,可以不填,默认是PDF的地址

1行Python代码,实现PDF转图片,直接解决了!是不是还没体验够就完成了!

以上就是小编推荐的3款Python三方库,可快速实现PDF转图片的功能,有兴趣的同学可以下载食用!!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述
若有侵权,请联系删除
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值