python實(shí)現(xiàn)批量處理修改pdf內(nèi)容
1、將PDF轉(zhuǎn)換為Word
- 使用pdf2docx庫中的Converter類來進(jìn)行PDF轉(zhuǎn)換。
convert_pdf_to_docx函數(shù)接受PDF文件路徑和輸出的Word文檔路徑作為參數(shù)。- 通過調(diào)用Converter對(duì)象的
convert方法將PDF轉(zhuǎn)換為Docx格式。 - 最后調(diào)用
close方法關(guān)閉Converter對(duì)象并保存轉(zhuǎn)換后的文檔。
2、將Word轉(zhuǎn)換為Excel
- 使用docx庫打開Word文檔。
- 創(chuàng)建一個(gè)新的Excel文件。
- 遍歷Word文檔中的表格,逐行讀取表格內(nèi)容,并將其寫入Excel文件。
- 使用openpyxl庫保存Excel文件。
3、替換Excel中的數(shù)據(jù)
- 使用openpyxl庫加載輸入的Excel文件。
- 獲取原始數(shù)據(jù),并復(fù)制一份用于替換。
- 遍歷替換數(shù)據(jù)的范圍,更新特定位置的數(shù)據(jù)。
- 創(chuàng)建新的Excel文件,更新數(shù)據(jù)并保存。
4、將Excel轉(zhuǎn)換為Word
- 遍歷輸入文件夾下的所有Excel文件。
- 為每個(gè)Excel文件創(chuàng)建一個(gè)新的Word文檔。
- 打開Excel文件并獲取活動(dòng)工作表。
- 在Word文檔中創(chuàng)建一個(gè)表格,并將Excel單元格數(shù)據(jù)寫入表格。
- 調(diào)整表格樣式和單元格樣式,并保存Word文檔。
5、將Word轉(zhuǎn)換為PDF
- 使用docx2pdf庫的convert函數(shù)將Word文檔轉(zhuǎn)換為PDF。
- 遍歷輸入文件夾下的所有Word文件,并將其轉(zhuǎn)換為PDF格式。
6、流程步驟
①初始pdf

②變成word

③變成excel

④批量處理更換
⑤轉(zhuǎn)成word

⑥轉(zhuǎn)成pdf

#pdf 轉(zhuǎn) 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/結(jié)果1.pdf' # 輸入的 PDF 文件路徑
docx_path = 'C:/Users/wangkejun/Desktop/1/結(jié)果2.docx' # 輸出的 Word 文檔路徑
convert_pdf_to_docx(pdf_path, docx_path)
print('轉(zhuǎn)換完成!')
# word 轉(zhuǎn) excel
import docx
from openpyxl import Workbook
# 打開 Word 文檔
doc = docx.Document(r'C:/Users/wangkejun/Desktop/1/結(jié)果2.docx')
# 創(chuàng)建一個(gè)新的 Excel 文件
workbook = Workbook()
sheet = workbook.active
# 遍歷 Word 文檔中的表格
for table in doc.tables:
for row in table.rows:
# 按行遍歷表格并將內(nèi)容寫入 Excel 文件
data = []
for cell in row.cells:
data.append(cell.text)
sheet.append(data)
# 保存 Excel 文件
workbook.save(r'C:/Users/wangkejun/Desktop/1/結(jié)果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
# 獲取原始數(shù)據(jù)
data = []
for row in sheet.iter_rows(values_only=True):
data.append(list(row))
# 替換數(shù)據(jù)
for i in range(1, 39):
# 復(fù)制原始數(shù)據(jù)
new_data = [row[:] for row in data]
# 替換特定位置的數(shù)據(jù)
new_data[1][1] = f"{i}/38"
# 創(chuàng)建新的 Excel 表
new_wb = load_workbook(input_file)
new_sheet = new_wb.active
# 更新新的 Excel 表的數(shù)據(jù)
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/結(jié)果3.xlsx' # 輸入的 Excel 表路徑
output_folder = r'C:/Users/wangkejun/Desktop/1' # 輸出的文件夾路徑
replace_data_in_excel(input_file, output_folder)
#excel 轉(zhuǎn) 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'):
# 構(gòu)造輸出文件路徑
output_file = os.path.join(output_folder, f"{file_name.split('.')[0]}.docx")
# 創(chuàng)建一個(gè)新的 Word 文檔
doc = Document()
# 打開 Excel 文件
file_path = os.path.join(input_folder, file_name)
workbook = openpyxl.load_workbook(file_path)
sheet = workbook.active
# 在 Word 文檔中創(chuàng)建一個(gè)表格
table = doc.add_table(rows=1, cols=sheet.max_column)
table.autofit = False
# 設(shè)置表格樣式
table.style = 'Table Grid'
# 將 Excel 單元格數(shù)據(jù)寫入 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)
# 調(diào)整單元格樣式
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("轉(zhuǎn)換完成!")
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 轉(zhuǎn) 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'):
# 構(gòu)造輸出文件路徑
output_file = os.path.join(output_folder, f"{file_name.split('.')[0]}.pdf")
# 調(diào)用 docx2pdf 庫的 convert 函數(shù)將 Word 文檔轉(zhuǎn)換為 PDF
convert(os.path.join(input_folder, file_name), output_file)
print("轉(zhuǎn)換完成!")
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)總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解如何用Flask中的Blueprints構(gòu)建大型Web應(yīng)用
Blueprints是Flask中的一種模式,用于將應(yīng)用程序分解為可重用的模塊,這篇文章主要為大家詳細(xì)介紹了如何使用Blueprints構(gòu)建大型Web應(yīng)用,需要的可以參考下2024-03-03
Python?MCPInspector調(diào)試思路詳解
這篇文章主要介紹了Python?MCPInspector調(diào)試思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-05-05
對(duì)python中dict和json的區(qū)別詳解
今天小編就為大家分享一篇對(duì)python中dict和json的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Pandas缺失值填充 df.fillna()的實(shí)現(xiàn)
本文主要介紹了Pandas缺失值填充 df.fillna()的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
python deque模塊簡(jiǎn)單使用代碼實(shí)例
這篇文章主要介紹了python deque模塊簡(jiǎn)單使用代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03
Python腳本實(shí)現(xiàn)多張圖片合并為PDF
這篇文章主要介紹了如何使用Python腳本實(shí)現(xiàn)將多張圖片合并為PDF文件的方法,滿足日常辦公和數(shù)據(jù)處理需求,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下吧2026-04-04
Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart前篇
這篇文章主要為大家介紹了Gradio機(jī)器學(xué)習(xí)模型快速部署工具quickstart準(zhǔn)備原文翻譯,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Python實(shí)現(xiàn)讀取字符串按列分配后按行輸出示例
這篇文章主要介紹了Python實(shí)現(xiàn)讀取字符串按列分配后按行輸出,涉及Python針對(duì)字符串的遍歷、判斷、運(yùn)算等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04

