python实现批量处理修改pdf内容

 更新时间:2026年01月22日 08:50:02   作者:EaSoNgo111  
文章介绍了使用Python库进行PDF、Word和Excel之间的转换,并提供了详细的步骤和代码示例

1、将PDF转换为Word

  • 使用pdf2docx库中的Converter类来进行PDF转换。
  • convert_pdf_to_docx函数接受PDF文件路径和输出的Word文档路径作为参数。
  • 通过调用Converter对象的convert方法将PDF转换为Docx格式。
  • 最后调用close方法关闭Converter对象并保存转换后的文档。

2、将Word转换为Excel

  • 使用docx库打开Word文档。
  • 创建一个新的Excel文件。
  • 遍历Word文档中的表格,逐行读取表格内容,并将其写入Excel文件。
  • 使用openpyxl库保存Excel文件。

3、替换Excel中的数据

  • 使用openpyxl库加载输入的Excel文件。
  • 获取原始数据,并复制一份用于替换。
  • 遍历替换数据的范围,更新特定位置的数据。
  • 创建新的Excel文件,更新数据并保存。

4、将Excel转换为Word

  • 遍历输入文件夹下的所有Excel文件。
  • 为每个Excel文件创建一个新的Word文档。
  • 打开Excel文件并获取活动工作表。
  • 在Word文档中创建一个表格,并将Excel单元格数据写入表格。
  • 调整表格样式和单元格样式,并保存Word文档。

5、将Word转换为PDF

  • 使用docx2pdf库的convert函数将Word文档转换为PDF。
  • 遍历输入文件夹下的所有Word文件,并将其转换为PDF格式。

6、流程步骤

 ①初始pdf

②变成word

③变成excel

④批量处理更换

⑤转成word

⑥转成pdf

#pdf 转 word
from pdf2docx import Converter

def convert_pdf_to_docx(pdf_path, docx_path):
    cv = Converter(pdf_path)
    cv.convert(docx_path, start=0, end=None)
    cv.close()

if __name__ == '__main__':
    pdf_path = 'C:/Users/wangkejun/Desktop/1/结果1.pdf'  # 输入的 PDF 文件路径
    docx_path = 'C:/Users/wangkejun/Desktop/1/结果2.docx' # 输出的 Word 文档路径
    convert_pdf_to_docx(pdf_path, docx_path)
    print('转换完成!')


# word 转 excel
import docx
from openpyxl import Workbook

# 打开 Word 文档
doc = docx.Document(r'C:/Users/wangkejun/Desktop/1/结果2.docx')

# 创建一个新的 Excel 文件
workbook = Workbook()
sheet = workbook.active

# 遍历 Word 文档中的表格
for table in doc.tables:
    for row in table.rows:
        # 按行遍历表格并将内容写入 Excel 文件
        data = []
        for cell in row.cells:
            data.append(cell.text)
        sheet.append(data)

# 保存 Excel 文件
workbook.save(r'C:/Users/wangkejun/Desktop/1/结果3.xlsx')

import os
from openpyxl import load_workbook

def replace_data_in_excel(input_file, output_folder):
    # 加载输入的 Excel 表
    wb = load_workbook(input_file)
    sheet = wb.active
    
    # 获取原始数据
    data = []
    for row in sheet.iter_rows(values_only=True):
        data.append(list(row))
    
    # 替换数据
    for i in range(1, 39):
        # 复制原始数据
        new_data = [row[:] for row in data]
        # 替换特定位置的数据
        new_data[1][1] = f"{i}/38"
        
        # 创建新的 Excel 表
        new_wb = load_workbook(input_file)
        new_sheet = new_wb.active
        
        # 更新新的 Excel 表的数据
        new_sheet.delete_rows(1, new_sheet.max_row)
        for row in new_data:
            new_sheet.append(row)
        
        # 保存新的 Excel 表
        output_file = os.path.join(output_folder, f"{i}.xlsx")
        new_wb.save(output_file)
    
    print("生成完成!")

if __name__ == '__main__':
    input_file = r'C:/Users/wangkejun/Desktop/1/结果3.xlsx'  # 输入的 Excel 表路径
    output_folder = r'C:/Users/wangkejun/Desktop/1'  # 输出的文件夹路径
    
    replace_data_in_excel(input_file, output_folder)

#excel 转 word
import os
import openpyxl
from docx import Document
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT, WD_ALIGN_VERTICAL

def convert_excel_to_word(input_folder, output_folder):
    # 遍历输入文件夹下的所有 Excel 文件
    for file_name in os.listdir(input_folder):
        if file_name.endswith('.xlsx') or file_name.endswith('.xls'):
            # 构造输出文件路径
            output_file = os.path.join(output_folder, f"{file_name.split('.')[0]}.docx")
            
            # 创建一个新的 Word 文档
            doc = Document()
            
            # 打开 Excel 文件
            file_path = os.path.join(input_folder, file_name)
            workbook = openpyxl.load_workbook(file_path)
            sheet = workbook.active
            
            # 在 Word 文档中创建一个表格
            table = doc.add_table(rows=1, cols=sheet.max_column)
            table.autofit = False
            
            # 设置表格样式
            table.style = 'Table Grid'
            
            # 将 Excel 单元格数据写入 Word 表格
            for row in sheet.iter_rows(values_only=True):
                new_row = table.add_row().cells
                for i, cell_value in enumerate(row):
                    new_row[i].text = str(cell_value)
            
            # 调整单元格样式
            for row in table.rows:
                for cell in row.cells:
                    cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER
                    cell.paragraphs[0].paragraph_format.alignment = WD_ALIGN_VERTICAL.CENTER
            
            # 保存 Word 文档
            doc.save(output_file)
    
    print("转换完成!")

if __name__ == '__main__':
    input_folder = r'C:/Users/wangkejun/Desktop/1/excel'  # 输入的文件夹路径
    output_folder = r'C:/Users/wangkejun/Desktop/1/word'  # 输出的 Word 文件夹路径
    
    convert_excel_to_word(input_folder, output_folder)


# #word 转 pdf
from docx2pdf import convert
import os

def batch_word_to_pdf(input_folder, output_folder):
    # 遍历输入文件夹下的所有 Word 文件
    for file_name in os.listdir(input_folder):
        if file_name.endswith('.docx'):
            # 构造输出文件路径
            output_file = os.path.join(output_folder, f"{file_name.split('.')[0]}.pdf")
            
            # 调用 docx2pdf 库的 convert 函数将 Word 文档转换为 PDF
            convert(os.path.join(input_folder, file_name), output_file)
    
    print("转换完成!")

if __name__ == '__main__':
    input_folder = r'C:/Users/wangkejun/Desktop/1/word'  # 输入的文件夹路径
    output_folder = r'C:/Users/wangkejun/Desktop/1/pdf'  # 输出的 PDF 文件夹路径
    
    batch_word_to_pdf(input_folder, output_folder)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python 绘图和可视化详细介绍

    Python 绘图和可视化详细介绍

    这篇文章主要介绍了Python 绘图和可视化详细介绍的相关资料,需要的朋友可以参考下
    2017-02-02
  • 基于Python编写一个简单的垃圾邮件分类器

    基于Python编写一个简单的垃圾邮件分类器

    随着电子邮件的广泛使用,垃圾邮件也日益增多,本篇文章将介绍如何使用Python实现一个简单的垃圾邮件分类器,帮助您更好地管理自己的电子邮件,需要的可以参考一下
    2023-04-04
  • Python+Selenium使用Page Object实现页面自动化测试

    Python+Selenium使用Page Object实现页面自动化测试

    这篇文章主要介绍了Python+Selenium使用Page Object实现页面自动化测试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • django 实现后台从富文本提取纯文本

    django 实现后台从富文本提取纯文本

    这篇文章主要介绍了django 实现后台从富文本提取纯文本,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • Python多元非线性回归及绘图的实现

    Python多元非线性回归及绘图的实现

    本文主要介绍了Python多元非线性回归及绘图的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • pyecharts绘制仪表盘的实现

    pyecharts绘制仪表盘的实现

    有时候大家想把自己绘制好的可视化图片集中到一个页面,整合成仪表盘,集中给同事或者他人来呈现,但又不知道该怎么做,今天小编就来分享一个pyecharts绘制仪表盘的实现,具有一定的参考价值,感兴趣的可以了解一下
    2021-06-06
  • django 解决自定义序列化返回处理数据为null的问题

    django 解决自定义序列化返回处理数据为null的问题

    这篇文章主要介绍了django 解决自定义序列化返回处理数据为null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python实现包含min函数的栈

    Python实现包含min函数的栈

    这篇文章主要介绍了Python实现包含min函数的栈,可实现栈中元素的计算及进栈出栈等操作,需要的朋友可以参考下
    2016-04-04
  • python中numpy.zeros(np.zeros)的使用方法

    python中numpy.zeros(np.zeros)的使用方法

    下面小编就为大家带来一篇python中numpy.zeros(np.zeros)的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • pandas实现对一列/多列进行数据区间筛选

    pandas实现对一列/多列进行数据区间筛选

    这篇文章主要介绍了pandas实现对一列/多列进行数据区间筛选方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论