yuwhich 发表于 2020-9-11 13:26

批量把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()

yuwhich 发表于 2020-9-28 14:09

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文件.
生成的图片文件,也会放到同一目录里.
如果你要指定路径,就要传参.

firefox1234 发表于 2020-9-12 00:13

真好需要,先mark 一下

渭水之洲 发表于 2020-9-14 11:27

这个需要咋操作,小白一个

yuwhich 发表于 2020-9-14 13:28

渭水之洲 发表于 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文件。

渭水之洲 发表于 2020-9-14 15:30

yuwhich 发表于 2020-9-14 13:28
1,安装Python,然后打开cmd,运行pip install pymupdf 。
2,在PDF文件夹里,新建一个pdf2png.py文件, ...

多谢大佬

mikeee 发表于 2020-9-15 00:48

貌似要另装 fitz (https://mupdf.com/downloads/archive/)

参看安装说明 (https://pymupdf.readthedocs.io/en/latest/installation.html)

changkui21 发表于 2020-9-15 08:47

WPS可以转

天下武功 发表于 2020-9-15 16:32

Adobe Acrobat DC

fineconey 发表于 2020-9-22 22:44

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
查看完整版本: 批量把PDF文件文件转换成图片格式