Python实现pdf文件转word文件

日常生活中,当遇到需要将某个PDF文件转换为Word格式文件时,一般是通过一些在线格式转换的网站,或者软件来完成,但我们也可以使用python来完成这个需求(当然,这种方法仅能够满足大部分的格式)。

前提:

使用pdf2docx库,在保持原来内容格式不变的情况下将PDF转换为Word,它专门用于在不丢失格式的情况下将PDF文件转换为Word文件。此库的安装可能需要一些依赖项,例如pandastqdm,可以使用以下命令安装:

pip install pdf2docx pandas tqdm

由于需要调用文件路径,所以需要使用OS库。

场景一:单文件转换。

需要修改代码中的pdf_file_path地址替换为所需要转换的pdf文件地址。(地址中的转义字符“\”替换成“\\”或者用//)

import os  
from pdf2docx import Converter  
  
  
def pdf_to_docx(pdf_path):  
    # 获取PDF文件所在的目录  
    pdf_directory = os.path.dirname(pdf_path)  
  
    # 生成Word文件的路径  
    pdf_filename = os.path.splitext(os.path.basename(pdf_path))[0]  
    docx_filename = pdf_filename + "_converted.docx"  
    docx_path = os.path.join(pdf_directory, docx_filename)  
  
    # 使用pdf2docx库将PDF转换为Word  
    cv = Converter(pdf_path)  
    cv.convert(docx_path, start=0, end=None)  
    cv.close()  
  
    return docx_path  
  
  
if __name__ == "__main__":  
    # 用法示例  
    pdf_file_path = "C://Users//Desktop//test.pdf"  
  
    # 调用pdf_to_docx函数进行转换  
    generated_docx_path = pdf_to_docx(pdf_file_path)  
  
    print(f"Word文件已生成:{generated_docx_path}")

场景二:某个文件夹内所有的pdf文件转换,

需要将input_pdf_folder替换成所要转换的pdf文件夹,其次将output_docx_folder设置为输出的文件夹。

import os  
from pdf2docx import Converter  
  
def convert_pdfs_to_docx(input_folder, output_folder):  
    # 确保输出目录存在,如果不存在则创建  
    os.makedirs(output_folder, exist_ok=True)  
  
    # 遍历目录下所有PDF文件并转换为Word  
    pdf_files = [f for f in os.listdir(input_folder) if f.endswith(".pdf")]  
  
    for pdf_file in pdf_files:  
        pdf_path = os.path.join(input_folder, pdf_file)  
        docx_output_path = os.path.join(output_folder, f"{os.path.splitext(pdf_file)[0]}.docx")  
  
        # 使用pdf2docx库将PDF转换为Word  
        cv = Converter(pdf_path)  
        cv.convert(docx_output_path, start=0, end=None)  
        cv.close()  
  
        print(f"Converted: {pdf_path} -> {docx_output_path}")  
  
if __name__ == "__main__":  
    # 用法示例  
    input_pdf_folder = "C:\\Users\\Desktop\\input"  
    output_docx_folder = "C:\\Users\\Desktop\\out"  
  
    # 批量转换目录下所有PDF文件为Word文件  
    convert_pdfs_to_docx(input_pdf_folder, output_docx_folder)