批量把PDF文件文件转换成图片格式
工作中可能有这样的需求,需要批量把PDF文件文件转换成图片。使用下面的py文件,可以批量进行转换。查找当前py文件夹内的所有的pdf文件,执行pdf转png格式,新生成的png文件保留源文件的文件名.如果PDF有多页,图片名后加序号。# -*- coding: utf-8 -*-
"""
1、安装库 pip install pymupdf
2、直接运行
"""
import os
import fitz
pdf_dir=[]
def get_file():
docunames = os.listdir()
for docuname in docunames:
if os.path.splitext(docuname) == '.pdf':#目录下包含.pdf的文件
pdf_dir.append(docuname)
def conver_img():
for pdf in pdf_dir:
doc = fitz.open(pdf)
pdf_name = os.path.splitext(pdf)
for pg in range(doc.pageCount):
page = doc
rotate = int(0)
# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。
zoom_x = 2.0
zoom_y = 2.0
trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)
pm = page.getPixmap(matrix=trans, alpha=False)
pm.writePNG('%s.png' % pdf_name)
if __name__ == '__main__':
get_file()
conver_img() fineconey 发表于 2020-9-22 22:44
mupdf: cannot open ACEMATT_3400.pdf: No such file or directory
Traceback ( ...
可能需要你下载并安装 pymupdf. 好像pip install的方式不能正常使用.
https://github.com/pymupdf/PyMuPDF/releases
需要匹配你的操作系统的版本.报错截图看你的python是3.8的.
windows系统是64位选这个文件名下载
PyMuPDF-1.17.7-cp38-cp38-win_amd64.whl
windows系统是32位选这个文件名下载
PyMuPDF-1.17.7-cp38-cp38-win32.whl
安装完以后在运行一次.
if __name__ == '__main__':
get_file()
conver_img()
这里get_file()不用指定路径的,会自动查找跟py文件,在同一文件名下的文件夹里的所有pdf文件.
生成的图片文件,也会放到同一目录里.
如果你要指定路径,就要传参.
真好需要,先mark 一下 这个需要咋操作,小白一个 渭水之洲 发表于 2020-9-14 11:27
这个需要咋操作,小白一个
1,安装Python,然后打开cmd,运行pip install pymupdf 。
2,在PDF文件夹里,新建一个pdf2png.py文件,然后复制上面的代码,保存。
3,然后打开cmd,运行这个文件。比如在cmd中输入 python "D:\data\pdf2png.py" 他会自动找当前py文件所在的文件夹里的pdf文件,然后把他们转成png文件。 yuwhich 发表于 2020-9-14 13:28
1,安装Python,然后打开cmd,运行pip install pymupdf 。
2,在PDF文件夹里,新建一个pdf2png.py文件, ...
多谢大佬 貌似要另装 fitz (https://mupdf.com/downloads/archive/)
参看安装说明 (https://pymupdf.readthedocs.io/en/latest/installation.html)
WPS可以转 Adobe Acrobat DC mupdf: cannot open ACEMATT_3400.pdf: No such file or directory
Traceback (most recent call last):
File "E:/PythonFiles/实用/PDF转图片.py", line 42, in <module>
conver_img()
File "E:/PythonFiles/实用/PDF转图片.py", line 27, in conver_img
doc = fitz.open(pdf)
File "D:\Python38\lib\site-packages\fitz\fitz.py", line 3009, in __init__
_fitz.Document_swiginit(self, _fitz.new_Document(filename, stream, filetype, rect, width, height, fontsize))
RuntimeError: cannot open ACEMATT_3400.pdf: No such file or directory
老大,这个是什么意思。我添加了pdf所在的路径
页:
[1]
2