PDF 转 图片 python3

from pdf2image import convert_from_path                                                                                                                                                                 
import tempfile
import multiprocessing
import os


class PdfToImage():
	"""
	将pdf转换为图片
	以原pdf名为文件夹名来存放该pdf转换后的图片
	参数:pdf为存放原pdf的文件目录(绝对路径)
	     img为存放所有转换好的图片文件夹的文件夹
	"""


    def __init__(self, pdf, img):
    	"""
    	初始化pdf文件路径和存放图片路径
    	"""
        self.pdf = pdf
        self.img = img


    def convers(self, fileName, outputDir):
    	"""
    	pdf转图片核心,自行学习pdf2image库
    	"""
        with tempfile.TemporaryDirectory() as path:
            images = convert_from_path(fileName, dpi=100, output_folder=outputDir, fmt='jpeg')
            # pdf转换完成后,将该pdf文件删除
            os.unlink(self.fileName)


    def main(self):
    	"""主调度流程"""

    	# 创建进程池
        pool = multiprocessing.Pool(processes = 4)

        # 循环读取pdf文件夹内pdf文件
        for fileName in os.listdir(self.pdf):
            # 获取文件名
            dirName = fileName[:-4]
            # 将文件名拼接到要保存图片目录路径下
            dirPath = os.path.join(self.img,dirName)
            # 判断该文件目录是否已经存在,如果存在,将其删除
            if os.path.exists(dirPath):
                os.removedirs(dirPath)
            # 在存放图片目录路径下新建以pdf名为名的文件夹,用来存放对应pdf转换得到的图片
            os.mkdir(dirPath)
            # 指定pdf转换后输出文件夹目录路径
            outputDir = dirPath
           	# 要转换的pdf文件路径
           	fileName = self.pdf + '/' + fileName
            # 调用进程池进行转换
            pool.apply_async(self.convers, args=(fileName, outputDir))
        # 关闭进程池,回收进程
        pool.close()
        pool.join()




# 存放pdf文件的目录(绝对路径)
# pdf = "/home/ubantu/Desktop/PDF"
# 要存放转换好的图片目录(绝对路径)
# img = "/home/ubantu/Desktop/IMAGES"

# pdftoimg = PdfToImage(pdf, img)
# pdftoimg.main()
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页