使用Python直接把PDF转成图片

Python中把PDF转成单个或多个图片

现在有很多在线的pdf转图片工具,但是有些数据是不想联网,更不想把数据上传到别人的服务器进行转换,那么怎么办呢?正常的Java编写一个耗费时间;现在不是有Python吗,人家有库,用起来快有方便,那我们就直接拿来用就好了,多舒服;

协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/

版权声明:本文为原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

一、安装Python环境

这一步不想说了,这个比较简单。记得配置一下环境变量。不然运行脚本比较费劲!


二、Python的PDF转PNG代码

注意:第一步要安装库:pip install pymupdf

#安装库 pip install pymupdf
import os
import fitz
pdf_dir=[]

def get_file():
	docunames = os.listdir()
	for docuname in docunames:
		if os.path.splitext(docuname)[1]=='.pdf': #目录下包含.pdf的文件
			pdf_dir.append(docuname)
def conver_img():
	for pdf in pdf_dir:
		doc = fitz.open(pdf)
		#pdf_name = os.path.splitext(pdf)[0]
		pdf_name = os.path.splitext(pdf)[0]
		print("====================================")
		print("开始转换%s.PDF文档"%pdf_name)
		print("====================================")
		print("共",doc.pageCount,"页")
		for pg in range(0,doc.pageCount):
			print("\r转换为图片",pg+1,"/",doc.pageCount,end=";")
			page=doc[pg]
			rotate = int(0) #旋转角度
			# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像
			zoom_x=2.0
			zoom_y=2.0
			print("")
			trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
			pm= page.getPixmap(matrix=trans, alpha=False)
			pm.writePNG(r'./tu'+str(pdf_name)+'-'+'{:02}.png'.format(pg))
if __name__=='__main__':
	get_file()
	conver_img()

脚本和PDF要在同一个文件夹下。该脚本会对文件夹下的所有PDF进行转换。

posted @   魔流剑  阅读(3122)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
历史上的今天:
2016-08-10 Java动态加载属性文件.properties
2016-08-10 Java工具类实现校验公民身份证的有效性
点击右上角即可分享
微信分享提示