python pdf与图片互转
背景
PDF转图片网上免费的只能转三次,多次的要么下载安装,要么收费。故自己写代码转换。
环境
1、安装python
2、 安装工具包
pip install PyMuPDF
pip install PIL
pip install os
pip img2pdf
代码
1、PDF转图片
封装转换方法
def pyMuPDF_fitz(pdfPath, imagePath):startTime_pdf2img = datetime.datetime.now() # 开始时间print("imagePath=" + imagePath)pdfDoc = fitz.open(pdfPath)for pg in range(pdfDoc.pageCount):page = pdfDoc[pg]rotate = int(0)# 每个尺寸的缩放系数为1.3,这将为我们生成分辨率提高2.6的图像。# 此处设置系数越大,分辨率越高,默认图片大小为:792X612, dpi=96zoom_x = 10 # (1.33333333-->1056x816) (2-->1584x1224)zoom_y = 10mat = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)pix = page.getPixmap(matrix=mat, alpha=False)if not os.path.exists(imagePath): # 判断存放图片的文件夹是否存在os.makedirs(imagePath) # 若图片文件夹不存在就创建pix.writePNG(imagePath + '/' + 'images_%s.png' % pg) # 将图片写入指定的文件夹内endTime_pdf2img = datetime.datetime.now() # 结束时间print('pdf2img时间=', (endTime_pdf2img - startTime_pdf2img).seconds)
使用示例
if __name__ == "__main__":# 1、PDF地址pdfPath = r'C:\Users\zl\Desktop\img\行程单.pdf';# 2、需要储存图片的目录imagePath = r'C:\Users\zl\Desktop\img'pyMuPDF_fitz(pdfPath, imagePath)print("finish")
2、图片转PDF
封装转换方法
from PIL import Image
import os
import img2pdfdef pictureTopdf(dirname,savedirname,reductionFactor,filename,isConvertBlack,fileformat):files = os.listdir(dirname)for fname in files:# if not fname.endswith(".jpg"):if not fname.endswith(fileformat):continuepath = os.path.join(dirname, fname)savePath = os.path.join(savedirname, fname)if os.path.isdir(path):continueimg = Image.open(path)if img.size[0] > img.size[1]:im_rotate = img.rotate(90, expand=True)size = (int(im_rotate.size[0] / reductionFactor), int(im_rotate.size[1] / reductionFactor))im_rotate = im_rotate.resize(size)if isConvertBlack:im_rotate = im_rotate.convert("L")im_rotate.save(savePath, quality=95)else:size = (int(img.size[0] / reductionFactor), int(img.size[1] / reductionFactor))img = img.resize(size)if isConvertBlack:img = img.convert("L")img.save(savePath, quality=95)with open(filename + ".pdf", "wb") as f:imgs = []files = os.listdir(savedirname)for fname in files:if not fname.endswith(fileformat):continuepath = os.path.join(savedirname, fname)if os.path.isdir(path):continueimgs.append(path)f.write(img2pdf.convert(imgs)) #写出到代码文件的默认目录
使用示例
if __name__ == '__main__':# 源目录dirname = r'C:\Users\zl\Desktop\img'# 保存目录savedirname = r'C:\Users\zl\Desktop\img'files = os.listdir(dirname)# 压缩比例reductionFactor = 1# PDF保存名字filename = "didi"# 输出颜色版本isConvertBlack = 'N'.strip().upper() == "Y"# 源文件格式fileformat = ".png"pictureTopdf(dirname,savedirname,reductionFactor,filename,isConvertBlack,fileformat)
python pdf与图片互转相关推荐
- python pdf和图片互转
1.安装两个包 pip install PyMuPDF==1.18.17 PySimpleGUI==4.47.0 2.pdf转图片 import fitzdef pdf2img(pdf_path, i ...
- python pdf 转 图片、pdf 转 word、 word 转 pdf
python pdf 转 图片.pdf 转 word. word 转 pdf 文章目录 python pdf 转 图片.pdf 转 word. word 转 pdf 前言 一.环境 二.api文档 三 ...
- python PDF 转 图片
python PDF 转 图片 fitz库 代码 import fitz import time import re import os def pdf2image(pdf_path): '''# 从 ...
- python pdf删除图片_【原创】python批量删除pdf图片水印(Xobject)的一种方法
1.说明: 下载到的pdf总会有一些水印,pdf文件水印添加方式除了acrobat adobe自带的以外,还有很多,所以去除水印方法也很多,这里介绍的也只是一种适用python批量删除图片水印Xobj ...
- Ubuntu下pdf和图片互转
前边文章可以将ppt转换为pdf 查看 使用unoconv将ppt转为pdf,再使用imagemagick将pdf转为图片 这次想将pdf和图片进行互转 当前目录下只有2.ppt 1.ppt转pdf ...
- python pdf处理 图片_python PDF文件合并、图片处理
一.合并多个PDF文件 实例: #导入模块import codecs import os import PyPDF2 as PyPDF2 #建立一个装pdf文件的数组 files = list()#遍 ...
- python pdf转图片 poppler_Python将PDF转成图片—PyMuPDF和pdf2image
前言:在最近的测试中遇到一个与PDF相关的测试需求,其中有一个过程是将PDF转换成图片,然后对图片进行测试. 粗略的试了好几种方式,其中语言尝试了Python和Java,总体而言所找到的Python方 ...
- python pdf处理 图片_Python 将pdf转换成txt(不处理图片)
上一篇文章中已经介绍了简单的python爬网页下载文档,但下载后的文档多为doc或pdf,对于数据处理仍然有很多限制,所以将doc/pdf转换成txt显得尤为重要.查找了很多资料,在linux下要将d ...
- python pdf处理 图片_在Python中从PDF提取图像而无需重新采样?
在带有用于CCITTFaxDecode过滤器的PyPDF2的Python中: import PyPDF2 import struct """ Links: PDF for ...
最新文章
- evolution ubuntu邮箱_Ubuntu下使用Evolution电子邮箱客户端
- C#-发送接收消息MQ
- 《Java程序员,上班那点事儿》目录
- git推送本地分支到远程分支
- 程序员的数学笔记1--进制转换
- Java 的Tuple(类似.net等的元组)
- 【Fiddler 问题】解决关于Fiddler 抓包中,手机网络配置代理后,无法上网
- 调研时报表的相关信息
- 路由器:斐讯K3C刷官改,固件版本是32.1.46.268
- CSAPP实验二——bomb lab实验
- Dynamic CRM 2016 IFD配置(1)证书颁发机构配置
- 数字录音系统服务器,IP数字网络广播控制中心服务器
- 【论文】多核实时操作系统的确定性调度设计
- 【Windows10下.sh文件的运行】‘bash’ is not recognized as an internal or external command
- Flutter——Dio网络库的使用与封装
- Day2多种抓包工具介绍以及使用封包监听工具找到挑战数据包实现发送数据包进行挑战
- Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network论文翻译——中文版
- 『政善治』Postman工具 — 18、NewMan的使用
- 微软surface屏幕测试软件,Soomal作品 - Microsoft 微软 Surface Pro 4平板笔记本电脑屏幕测评报告 [Soomal]...
- 软件中国2006风云榜之10大最具创新性技术