python把文件夹所有pdf文件转换成word

发布时间:2024年01月12日
import os
import fitz
import shutil
import os
import fitz
from tkinter import filedialog
import tkinter as tk
from docx import Document

def covert2pic(file_path, zoom, png_path):
    doc = fitz.open(file_path)
    total = doc.page_count
    for pg in range(total):
        page = doc[pg]
        zoom = int(zoom)  # 值越大,分辨率越高,文件越清晰
        rotate = int(0)

        trans = fitz.Matrix(zoom / 100.0, zoom / 100.0).prerotate(rotate)
        pm = page.get_pixmap(matrix=trans, alpha=False)
        if not os.path.exists(png_path):
            os.mkdir(png_path)
        save = os.path.join(png_path, '%s.png' %(pg+1))
        pm.save(save)
    doc.close()


def PCLPDFWJ(Pdf_file_path):
    desktop_path = os.path.expanduser("~\Desktop") #获取当前桌面路径
    # ----读取文件夹下所有文件的名字并把他们用列表存起来------
    datanames = os.listdir(Pdf_file_path)
    list_Pdfname = []
    for i in datanames:
        # 获取文件名称中日期
        list_Pdfname.append(i)
    # -----------------------------------------------
    for j in list_Pdfname:
        s=j #获取文件夹中PDF名称
        pdfPath=Pdf_file_path+"\\"+s
        print(pdfPath)
        j = j[:-4]  # 去掉最后4个字符.pdf
        imagePath=desktop_path + "\\" + "临时文件夹"+"\\"+j
        # 批量创建imagePath文件夹----------------------------------------------------
        if not os.path.exists(imagePath):
            os.makedirs(imagePath)
        else:
            # 清理历史遗留处理过的文件夹内容
            shutil.rmtree(imagePath)
            os.makedirs(imagePath)
        covert2pic(pdfPath, 200, imagePath)
        # 创建新的Word文档对象
        document = Document()

        # 获取指定文件夹路径
        folder_path = imagePath

        # 遍历文件夹中的每张图片并插入到Word文档中
        for filename in os.listdir(folder_path):
            if filename.endswith(".jpg") or filename.endswith(".png"):  # 只处理JPG或PNG格式的图片
                image_path = os.path.join(folder_path, filename)
                # 在当前光标位置插入图片
                document.add_picture(image_path)
        document.save(desktop_path+"\\"+"wordoutput" + "\\" +j+".docx")

        # 保存Word文档
        #print(hb)




if __name__ == "__main__":

    root = tk.Tk()
    root.withdraw()  # 隐藏tkinter的根窗口

    folder_path = filedialog.askdirectory()
    # 将路径从Unix格式转换为Windows格式
    windows_path = folder_path.replace("/", "\\")
    print("转换后的路径:", windows_path)
    pdfPath = windows_path
    desktop_path = os.path.expanduser("~\Desktop") #获取当前桌面路径
    print("当前桌面路径:", desktop_path)
    # 在当前操作系统桌面上创建wordoutput文件夹----------------------------------------------------
    if not os.path.exists(desktop_path + "\\" + "wordoutput"):
        os.makedirs(desktop_path + "\\" + "wordoutput")
    else:
        # 清理历史遗留处理过的文件夹内容
        shutil.rmtree(desktop_path + "\\" + "wordoutput")
        os.makedirs(desktop_path + "\\" + "wordoutput")

    # ---------把图片插入word文件中---------------------------
    # 在当前操作系统桌面上创建wordoutput文件夹----------------------------------------------------
    if not os.path.exists(desktop_path + "\\" + "临时文件夹"):
        os.makedirs(desktop_path + "\\" + "临时文件夹")
    else:
        # 清理历史遗留处理过的文件夹内容
        shutil.rmtree(desktop_path + "\\" + "临时文件夹")
        os.makedirs(desktop_path + "\\" + "临时文件夹")

    # ---------把图片插入word文件中---------------------------
    PCLPDFWJ(pdfPath)
文章来源:https://blog.csdn.net/ducanwang/article/details/135561858
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。