【python實用小腳本-187】Python一鍵批量改PDF文字:拖進來秒出新文件——再也不用Acrobat來回導

Python一鍵批量改PDF文字:拖進來秒出新文件——再也不用Acrobat來回導

PDF文字替換, 批量導出, 零依賴轉檔, 一鍵完成, 瑞士軍刀

故事開場:一把瑞士軍刀救了周五下班的你

周五 18:00,老板甩來 50 份合同 PDF:
“把里面的‘2023’全部改成‘2024’,今晚就要!”
你打開 Acrobat,發現要:

  1. 先導出 Word
  2. 逐個查找替換
  3. 再導回 PDF
    來回三遍,眼睛已花。
    這時,你從 U 盤掏出“小白瑞士軍刀”——pdf_editor.py
    把 PDF 拖進去,一行命令:
python pdf_editor.py

30 秒后,50 份新 PDF 整整齊齊躺在文件夾,老板直呼“效率王”!
痛點解決:再也不用巨軟全家桶,一鍵改字、一鍵導出。


完整代碼(≤1000字符,直接展示)

from docx import Document
from pdf2docx import parse
import subprocess, osdef pdf_to_word(pdf_file):parse(pdf_file, 'word.docx')def edit_word(find, replacement):doc = Document('word.docx')for p in doc.paragraphs:if find in p.text:p.text = p.text.replace(find, replacement)doc.save('converted.docx')def word_to_pdf():subprocess.run(["libreoffice", "--headless", "--convert-to", "pdf", 'converted.docx'])for tmp in ['word.docx', 'converted.docx']:if os.path.exists(tmp):os.remove(tmp)if __name__ == "__main__":file, find, replace = input("格式:文件 舊文本 新文本> ").split()pdf_to_word(file)edit_word(find, replace)word_to_pdf()

代碼解析

功能塊 1:PDF → Word 零門檻

pdf2docx.parse 一行把 PDF 變成可編輯的 .docx,保留格式。

parse(pdf_file, 'word.docx')

功能塊 2:全文快速替換

遍歷所有段落,直接 str.replace,比 Word 查找更快。

for p in doc.paragraphs:if find in p.text:p.text = p.text.replace(find, replacement)

功能塊 3:Word → PDF 一鍵回

用 LibreOffice 無頭模式批量轉 PDF,再清理中間文件。

subprocess.run(["libreoffice", "--headless", "--convert-to", "pdf", 'converted.docx'])

如果還想更厲害

擴展點子 1:批量文件夾

把整目錄 PDF 一次性改字,自動按原名輸出。

import glob
for pdf in glob.glob('*.pdf'):pdf_to_word(pdf)edit_word('2023', '2024')word_to_pdf()os.rename('converted.pdf', pdf.replace('.pdf', '_new.pdf'))

擴展點子 2:GUI拖放窗口

tkinter 做窗口,拖文件+輸入框即完成。

import tkinter.filedialog as fd
pdf_path = fd.askopenfilename()
# 復用上面三步

總結

pdf_editor.py 這把 40 行瑞士軍刀,把“PDF→Word→替換→PDF”四步壓縮成“拖進去+回車”。
你無需安裝 Acrobat,就能在 Linux/Mac/Windows 上批量改字、批量導出。
再加兩行循環或 GUI,它就從腳本升級成 PDF 工廠。
下次再遇“批量改合同”,直接跑腳本,省時省力!

源碼獲取

完整代碼已開源,包含詳細的注釋文檔:
🔗 [GitCode倉庫] https://gitcode.com/laonong-1024/python-automation-scripts
📥 [備用下載] https://pan.quark.cn/s/654cf649e5a6 提取碼:f5VG

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/919209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/919209.shtml
英文地址,請注明出處:http://en.pswp.cn/news/919209.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

汽車后霧燈色度難達標?OAS 軟件精準解決破瓶頸

汽車后霧燈案例分析簡介汽車后霧燈是車輛在能見度較低的霧、雨、雪等惡劣天氣條件下行駛時,向后方車輛傳遞警示信號的重要裝置,其性能直接關系到車輛的后方安全。根據規定,紅色信號燈需符合 CIE1931 標準,其色度坐標 X 值應在 0.6…

[系統架構設計師]架構設計專業知識(二)

[系統架構設計師]架構設計專業知識(二) 一.信息系統基礎知識 1.信息系統概述 信息系統功能:輸入,存儲,處理,輸出,控制 理查德.諾蘭: 初始,傳播,控制&#xff…

如果用ApiFox調用Kubernetes API,需要怎么設置證書?

針對Docker Desktop中Kubernetes訪問報SSL/TLS信任關系錯誤的問題,以下是綜合解決方案:要在Postman中調用Kubernetes API并設置證書,需按以下步驟操作:🔐 證書設置步驟?提取證書文件?從kubeconfig文件(~/…

nodejs 路由/請求

//導入模塊 const express require(express); //創建應用 const app express();//設置路由 app.get(/,(req,resp)>{//輸出響應console.log(request coming.............);resp.json(req.headers); });app.get(/user/:id, (req, res) > {const userId req.params.id; …

Python 數據可視化:柱狀圖/熱力圖繪制實例解析

Python 數據可視化:柱狀圖繪制實例解析 一、引言 數據可視化是數據分析中至關重要的環節,它能將復雜的數據以直觀的圖形方式呈現,幫助我們更好地理解數據特征和規律。Python 擁有豐富的可視化庫,其中 Matplotlib 是最常用的基礎庫…

API生命周期10階段

一、策略規劃(Strategy Planning) 核心任務:業務價值對齊、技術路線設計關鍵產出: API產品藍圖:定義業務領域邊界(如支付API域、用戶API域)治理規范:《API安全標準》《版本管理策略》…

UGUI源碼剖析(9):布局的實現——LayoutGroup的算法與實踐

UGUI源碼剖析(第九章):布局的實現——LayoutGroup的算法與實踐 在前一章中,我們剖析了LayoutRebuilder是如何調度布局重建的。現在,我們將深入到布局核心,去看看那些具體的組件——LayoutGroup系列組件是如…

GitHub PR 提交流程

step1 在 GitHub 上 fork 目標倉庫&#xff08;手動操作&#xff09; step2 將 fork 的目標倉庫克隆到本地 git clone https://github.com/<your-username>/<repo-name>.git cd <repo-name>step3 與上游目標倉庫建立鏈接 git remote add upstream https://gi…

礦物分類案列 (一)六種方法對數據的填充

目錄 礦物數據項目介紹&#xff1a; 數據問題與處理方案&#xff1a; 數據填充策略討論&#xff1a; 模型選擇與任務類型&#xff1a; 模型訓練計劃&#xff1a; 一.數據集填充 1.讀取數據 2.把標簽轉化為數值 3.把異常數據轉化為nan 4.數據Z標準化 5.劃分訓練集測試…

vue:vue3的方法torefs和方法toref

在 Vue 3 的 Composition API 中,toRef 和 toRefs 是兩個用于處理響應式數據的重要工具,它們專門用于從 reactive() 對象中提取屬性并保持響應性。 toRef() 作用:將 reactive 對象的單個屬性轉換為一個 ref 對象,保持與源屬性的響應式連接。 使用場景: 需要單獨提取 rea…

Android 移動端 UI 設計:前端常用設計原則總結

在 Android 移動端開發中&#xff0c;優秀的 UI 設計不僅需要視覺上的美觀&#xff0c;更需要符合用戶習慣、提升操作效率的設計邏輯。前端 UI 設計原則是指導開發者將功能需求轉化為優質用戶體驗的核心準則&#xff0c;這些原則貫穿于布局結構、交互反饋、視覺呈現等各個環節。…

計算機網絡 TCP三次握手、四次揮手超詳細流程【報文交換、狀態變化】

TCP&#xff08;傳輸控制協議&#xff09;是互聯網最重要的協議之一&#xff0c;它保證了數據的可靠、有序傳輸。連接建立時的“三次握手”和連接關閉時的“四次揮手”是其核心機制&#xff0c;涉及特定的報文交換和狀態變化。 一、TCP 三次握手&#xff08;Three-Way Handshak…

使用Applications Manager進行 Apache Solr 監控

Apache Solr 為一些對性能極為敏感的環境提供搜索支持&#xff1a;電子商務、企業應用、內容門戶和內部知識系統。因此&#xff0c;當出現延遲增加或結果不一致的情況時&#xff0c;用戶會立刻察覺。而當這些問題未被發現時&#xff0c;情況會迅速惡化。 Apache Solr 基于 Apa…

Shell腳本-for循環語法結構

一、前言在 Linux Shell 腳本編程中&#xff0c;for 循環 是最常用的控制結構之一&#xff0c;用于重復執行一段命令&#xff0c;特別適用于處理列表、文件、數字序列等場景。本文將詳細介紹 Shell 腳本中 for 循環的各種語法結構&#xff0c;包括&#xff1a;? 經典 for in 結…

記SpringBoot3.x + Thymeleaf 項目實現(MVC架構模式)

目錄 前言 一、創建SpringBoot項目 1. 創建項目 2. 運行項目 二、連接數據庫實現登錄 1. pom.xml文件引入依賴包 2. application.yml文件配置 3. 數據持久層&#xff0c;mybatis操作映射 4. Service接口及實現 5. Controller代碼 6. Thymeleaf頁面登錄 7. 運行項目…

Java 導出word 實現表格內插入圖表(柱狀圖、折線圖、餅狀圖)--可編輯數據

表格內插入圖表導出效果表格內圖表生成流程分析 核心問題與解決方案 問題 Word 圖表作為獨立對象&#xff0c;容易與文本分離位置難以精確控制&#xff0c;編輯時容易偏移缺乏與表格數據的關聯性 解決方案 直接嵌入&#xff1a;將圖表嵌入表格單元格&#xff0c;確保數據關聯精…

北京JAVA基礎面試30天打卡12

1.MySQL中count(*)、count(I)和count(字段名)有什么區別&#xff1f; 1**.COUNT ()**是效率最高的統計方式&#xff1a;COUNT()被優化為常量&#xff0c;直接統計表的所有記錄數&#xff0c;不依賴字段內容&#xff0c;開銷最低。推薦在統計整個表的記錄數時使用。 2.**COUNT(1…

【AI】——結合Ollama、Open WebUI和Docker本地部署可視化AI大語言模型

&#x1f3bc;個人主頁&#xff1a;【Y小夜】 &#x1f60e;作者簡介&#xff1a;一位雙非學校的大三學生&#xff0c;編程愛好者&#xff0c; 專注于基礎和實戰分享&#xff0c;歡迎私信咨詢&#xff01; &#x1f386;入門專欄&#xff1a;&#x1f387;【MySQL&#xff0…

RAG學習(二)

構建索引 一、向量嵌入 向量嵌入&#xff08;Embedding&#xff09;是一種將真實世界中復雜、高維的數據對象&#xff08;如文本、圖像、音頻、視頻等&#xff09;轉換為數學上易于處理的、低維、稠密的連續數值向量的技術。 想象一下&#xff0c;我們將每一個詞、每一段話、…

亞馬遜店鋪績效巡檢_影刀RPA源碼解讀

一、項目簡介 本項目是一個基于RPA開發的店鋪績效巡店機器人。該機器人能夠自動化地登錄賣家后臺&#xff0c;遍歷多個店鋪和站點&#xff0c;收集并分析各類績效數據&#xff0c;包括政策合規性、客戶服務績效、配送績效等關鍵指標&#xff0c;并將數據整理到Excel報告中&…