2. PDF文件批量转换Word
使用 Python 实现多线程批量将 PDF 文档转换为 Word 格式的示例代码:
import os
import threading
from pdf2docx import Converterclass PdfToWordThread(threading.Thread):def __init__(self, pdf_file, output_dir):threading.Thread.__init__(self)self.pdf_file = pdf_fileself.output_dir = output_dirdef run(self):pdf_file_path = os.path.join(self.output_dir, self.pdf_file)word_file_path = os.path.join(self.output_dir, os.path.splitext(self.pdf_file)[0] + ".docx")self.convert_pdf_to_word(pdf_file_path, word_file_path)def convert_pdf_to_word(self, pdf_file_path, word_file_path):try:# 使用 pdf2docx 库将 PDF 转换为 Wordcv = Converter(pdf_file_path)cv.convert(word_file_path, start=0, end=None)cv.close()print(f"Converted {pdf_file_path} to {word_file_path}")except Exception as e:print(f"Error converting {pdf_file_path} to Word format: {str(e)}")def main():# 指定输入 PDF 文件夹和输出 Word 文件夹input_dir = "/path/to/your/pdf/files"output_dir = "/path/to/your/word/files"# 获取输入文件夹中的所有 PDF 文件列表pdf_files = [f for f in os.listdir(input_dir) if os.path.isfile(os.path.join(input_dir, f)) and f.lower().endswith(".pdf")]# 创建线程池并设置最大线程数max_threads = 4threads = []# 遍历 PDF 文件列表,为每个 PDF 文件创建一个线程并启动for pdf_file in pdf_files:thread = PdfToWordThread(pdf_file, output_dir)thread.start()threads.append(thread)# 控制最大线程数if len(threads) >= max_threads:for t in threads:t.join()threads = []# 等待所有线程完成for t in threads:t.join()print("All conversions finished.")if __name__ == "__main__":main()
在这个示例中,我们使用 `pdf2docx` 库将 PDF 文件转换为 Word 文件。我们创建了一个 `PdfToWordThread` 类来表示一个转换任务,并使用多线程方式来同时处理多个任务。您需要将 `input_dir` 和 `output_dir` 替换为实际的输入和输出目录路径。