使用Python簡單實現比較PDF文件差異
在處理合同、法律文書或技術文檔時,常常會遇到多個版本的同一 PDF。人工逐頁對比既耗時又容易遺漏細節(jié)。借助 Spire.PDF for Python,你可以用很少的代碼自動檢測并高亮顯示兩個 PDF 之間的差異,從而大幅提升比對效率和準確性。
本文將逐步演示如何配置環(huán)境并使用示例代碼進行比較,還會介紹一些可選的高級設置以滿足不同需求。
安裝依賴
首先從 PyPI 安裝所需包:
pip install spire.pdf
安裝完成后即可開始對 PDF 文檔進行比對。
基本示例:比較兩個 PDF 并輸出結果
下面示例將原始文檔與修訂文檔進行比較,并生成一個可視化的比較結果文件:
from spire.pdf.common import *
from spire.pdf import *
# 加載原始 PDF
original = PdfDocument("original.pdf")
# 加載修訂后的 PDF
revised = PdfDocument("revised.pdf")
# 初始化比較器
comparer = PdfComparer(original, revised)
# 生成比較結果
comparer.Compare("output/CompareResult.pdf")
# 釋放資源
original.Dispose()
revised.Dispose()在 PDF 查看器(例如 Adobe Acrobat)中打開生成的 CompareResult.pdf,你會看到并排對比的頁面:原文中被刪除的內容以紅色高亮,修訂文檔中新增的內容以黃色標注,清晰直觀。
可選的高級設置
你可以在調用 Compare 前通過調整比較選項來滿足更精細的需求。
1.僅比較文本
如果希望忽略排版或圖形差異,只檢測文本變化,可以啟用文本比對模式:
comparer.PdfCompareOptions.OnlyCompareText = True
2.限定頁范圍比較
對于篇幅較長的文檔,僅比較特定頁區(qū)通常更高效??梢栽O置頁范圍:
comparer.PdfCompareOptions.SetPageRanges(1, 3, 1, 3) # 參數順序:(oldStartIndex, oldEndIndex, newStartIndex, newEndIndex)
這會僅比較指定的頁面區(qū)間,而非整份文檔。
方法補充
Python實現比對兩個PDF文件內容并輸出不同的地方
思路步驟:
- 安裝PyPDF2庫,并導入
- 打開需要進行比對的兩個PDF文件
- 創(chuàng)建PDF文件讀取對象
- 獲取PDF文件的頁數
- 創(chuàng)建PDF文件寫入對象
- 逐頁比較兩個PDF文件
- 將比較結果寫入新的PDF文件
- 關閉PDF文件
實現代碼:
import PyPDF2
# 打開原始PDF文件
pdf1 = open('1.pdf', 'rb')
pdf2 = open('2.pdf', 'rb')
# 創(chuàng)建PDF文件讀取對象
pdf1_reader = PyPDF2.PdfReader(pdf1)
pdf2_reader = PyPDF2.PdfReader(pdf2)
# 使用len(reader.pages) 獲取PDF文件的頁數
pdf1_pages = len(pdf1_reader.pages)
pdf2_pages = len(pdf2_reader.pages)
# 創(chuàng)建PDF文件寫入對象
pdf_writer = PyPDF2.PdfWriter()
# 使用reader.pages[page_number],逐頁比較兩個PDF文件
for page_number in range(min(pdf1_pages, pdf2_pages)):
page1 = pdf1_reader.pages[page_number]
page2 = pdf2_reader.pages[page_number]
if page1.extract_text() != page2.extract_text():
pdf_writer.add_page(page1)
pdf_writer.add_page(page2)
# 將比較結果寫入新的PDF文件
pdf_output = open('output.pdf', 'wb')
pdf_writer.write(pdf_output)
# 關閉文件
pdf1.close()
pdf2.close()
pdf_output.close()使用建議與場景
- 合同評審:快速定位條款變更,減少人工疏漏。
- 法律文檔:便于逐條核對修訂內容并生成證據鏈。
- 技術文檔與手冊:確認版本迭代中說明或示意圖的改動。
小結
手動比對 PDF 版本既低效又容易出錯。使用 Spire.PDF for Python,可以快速生成可視化的差異報告,顯著提升審閱速度與準確性。通過調整選項(如僅文本比對或指定頁范圍),還可根據實際需求靈活控制比較范圍與精度,是合同審閱、文檔校對和版本管理的實用工具。
到此這篇關于使用Python簡單實現比較PDF文件差異的文章就介紹到這了,更多相關Python比較PDF文件差異內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

