pdf文件转图片的两种方法
文章目录
- 1、借助`PyMuPDF`库
- 1)安装
- 2)查看版本
- 3)常用接口
- 4)将`pdf`转为图片实例
- 2、基于`pdfplumber`库
- 1)安装
- 2)常用接口
- 3)实例
本文主要记录几种
1、借助PyMuPDF
库
可以将页面呈现为光栅或矢量(SVG)图像,可以选择缩放、旋转、移动或剪切页面。
1)安装
pip install PyMuPDF
2)查看版本
import fitz
print(fitz.__doc__)
3)常用接口
打开
pdf
文件,或者创建pdf
文件doc=fitz.open(文件名)#或fitz.Document(文件名)
Document
的一些属性:属性 描述 Document.page_count
int
类型,页数Document.get_toc()
list
类型,内容目录Document.load_page()
读取页面 加载页面
page = doc.load_page(pno) page = doc[pno] page = doc[-1] # 最后一页 # 也可以作为迭代器 for page in doc:.... # 从后往前读取 for page in reversed(doc): .... # 切片 for page in doc.pages(start, stop, step):....
呈现页面
# 函数定义 def get_pixmap(self,matrix: AnyType = None,colorspace: "Colorspace" = None,alpha: int = 0, ) -> "Pixmap":pix = page.get_pixmap()
pix
是一个Pixmap
对象,它(在本例中)包含页面的RGB图像,可用于多种用途。方法Page.get_pixmap()
提供了许多用于控制图像的变体:分辨率、颜色空间(例如,生成灰度图像或具有减色方案的图像)、透明度、旋转、镜像、移位、剪切等。
例如:创建RGBA
图像(即,包含alpha通道),指定pix=page.get_pixmap(alpha=True)
。
Pixmap
包含以下引用的许多方法和属性。其中包括整数宽度、高度(每个像素)和跨距(一个水平图像行的字节数)。属性示例表示表示图像数据的矩形字节区域(Python字节对象)。将页面图像保存到文件中
pix.save('page.png') # 将页面图像保存到文件page.png中
4)将pdf
转为图片实例
def pdf2img(pdf_path, zoom_x, zoom_y, rotate_angle=0, clip_roi=None):'''zoom_x x方向的缩放系数zoom_y y方向的缩放系数rotation_angle 旋转角度clip_roi 裁切区域坐标'''# open pdf filepdf = fitz.open(pdf_path)# logger.debug('Total: %d pages.'%pdf.pageCount)page = pdf[0] # 处理第一页# 设置缩放和旋转系数trans = fitz.Matrix(zoom, zoom).preRotate(rotate_angle)if clip_roi is not None:rect = page.rect # 页面大小mp = rect.tl + (rect.br - rect.tl) * 0.5 # 矩形的中心# clip = fitz.Rect(mp, rect.br) # 想要截取的区域clip = fitz.Rect(clip_roi[0], clip_roi[1]) # 想要截取的区域pix = page.get_pixmap(matrix=trans, alpha=False, clip=clip) # 将页面转换为图像else:pix = page.get_pixmap(matrix=trans, alpha=False)save_roi_name = pdf_path[:-4] + '_clip.png'pix .save(save_roi_name)pdf.close()
2、基于pdfplumber
库
1)安装
pip install pdfplumber
2)常用接口
- 读取
pdf
文件# 打开pdf文件 pdfplumber.open("test.pdf") # 从内存加载 pdfplumber.load(file_like_object)
这两种方法都返回
pdfplumber.PDF
类的实例。
若pdf
带有密码,则需要传入password
参数pdfplumber.open('test.pdf', password='test')`
pfplumber.Page
类
pdfplumber.Page
类是pdfplumber
整个的核心,有以下几个属性和方法:
属性 | 描述 |
---|---|
.page_number
|
页码顺序,从1 开始
|
.width
|
页面宽度 |
.height
|
页面高度 |
.objects /.chars / .lines / .rects / .curves / .images / .figures
|
这些属性都是列表形式 |
方法 | 描述 |
---|---|
.crop(bounding_box)
|
返回裁剪后的页面,bounding_box 的值表示为(x0, top, x1, bottom) 的四元组。
|
.extract_text(x_tolerance=0, y_tolerance=0)
|
将页面中所有的字符对象提取到一个字符串中 |
.extract_words(x_tolerance=0, y_tolerance=0, horizontal_ltr=True, vertical_ttb=True)
|
返回所有单词外观及其边界框的列表 |
.to_image(**conversion_kwargs)
|
返回PageImage 类的实例。
|
- 保存图像
im.save(path_or_object, format="PNG")
3)实例
import pdfplumberpath = './express_datas/YTO.pdf'
pdf = pdfplumber.open(path)first_page = pdf.pages[0] # 第一页print(first_page.page_number)
print('Page_W: ', first_page.width)
print('Page_H: ',first_page.height)text = first_page.extract_text() # 提取页面中的文本内容
print(text)im = first_page.to_image(resolution=96)im.save('output.jpg')
pdf.close()
pdf文件转图片的两种方法相关推荐
- 提取pdf文件中文字的两种方法
如今,在我们的工作与学习中已经不是单单使用word.Excel等格式文件了,pdf格式的文件已经被广泛地运用到我们的办公室中.大家都知道pdf文件是不可直接编辑与修改的,使用起来有些不便.那么当我们需 ...
- MATLAB 保存imshow绘制图片到指定文件夹中的两种方法
MATLAB 保存imshow绘制图片到指定文件夹中的两种方法 imwrite函数 imwrite(image,filename) imwrite(image,filename)是将图像数据image ...
- php imagick 取得psd缩略图,PHP利用imagick读取PDF生成png缩略图的两种方法
PHP利用imagick读取PDF生成png缩略图的两种方法 发表于2019-04-24 06:08| 次阅读| 来源网络整理| 作者session 摘要:PHP利用imagick读取PDF生成png ...
- java对文件进行压缩的两种方法
在工作中,我们或多或少都会接触到文件的压缩和解压,在window系统中,我们只需下载一个能对文件进行解压缩的应用即可,但如果让我们自己动手写对文件压缩的代码,顿时就头大了. 在java中,我们都知道输 ...
- JavaBean实现多个文件上传的两种方法
JavaBean实现多个文件上传的两种方法 王新芳 刘杰 北京工商大学计算机学院 摘要:本文介绍了JavaBean实现多个文件上传的两种方法,分别是使用http协议和ftp协议实现.首先 ...
- SketchUp 2019 文件导入AI的两种方法(附插件)
作者:TutorialsUp 今天与大家分享TutorialsUp教程 将SketchUp文件导入AI的两种方法 作者通过两种方式,完美地将SU文件导入AI进行编辑. 第一种方法是SketchUp原生 ...
- python 学习系列(3) 读取并显示图片的两种方法
python 读取并显示图片的两种方法 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 mat ...
- 浏览器访问云服务器上图片的两种方法
浏览器访问云服务器上图片的两种方法 1. Tomcat方式 打开tomcat的conf目录下配置文件server.xml 添加以下内容: <Context docBase="/home ...
- word涂改涂掉图片_怎么在word中修改图片的两种方法
有时我们插入的图片只有一部分是我们想要的,那就需要我们将这一部分裁剪出来,word本身就可以方便快捷的对图片进行裁剪,那么下面就由学习啦小编给大家分享下在word中修改图片的技巧,希望能帮助到您. 在 ...
- PDF怎么转成PPT文件?记下这两种方法轻松化解难题
如何将PDF文件转换成PPT文件格式呢?PDF文件大家在日常中经常会遇到,尤其是在发送文件.保存文件用途上会使用.PPT文件大家都是用来展示.汇报具体内容的一种手段,当我们收到一份PDF文件,要求把P ...
最新文章
- [转]深夜无人的街道
- 【NOI2002】贪吃的九头龙
- Java黑皮书课后题第10章:***10.8(金融:Tax类)编程练习题8.12使用数组编写一个计算税款的程序。设计一个名为Tax类,该类包含下面的实例数据域
- win 7开机要点用户名的解决方法
- 苹果无线耳机使用方法_苹果官方:如果 AirPods Pro 出现这些问题,我们将免费更换!...
- 回发后动态设置的标题丢失
- Hive中时间格式的转换
- iphone 开发内存管理 心得
- eclipse插件开发总结
- ubuntu安装无线网卡驱动(Ralink)
- 至强服务器性能排行,至强cpu天梯图,至强服务器cpu排行-
- 几天几夜,终解移动MM计费SDK接入bug
- oracle查询dictionary,Oracle的DICTIONARY/DICT视图。
- 中国塑料电镀市场预测及投资价值报告(2022版)
- mysql删除视图sql语句_怎么样删除视图中的全部数据 用SQL语言编写。
- 名帖380 张弼 草书《草书帖选》
- 斐波那契数列求和——C语言(小白版)
- 新鲜的蔬菜和水果中富含抗氧化物,可以有效延缓衰老和疾病
- linux-Perl-语言入门
- 2020年超级计算机排名,2020中国高性能计算机TOP100榜单正式发布