python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python比较PDF文件差异

使用Python简单实现比较PDF文件差异

作者:秋天的落叶铺满小路

在处理合同、法律文书或技术文档时,常常会遇到多个版本的同一 PDF,本文将逐步演示如何配置环境并使用示例代码进行比较,还会介绍一些可选的高级设置以满足不同需求,希望对大家有所帮助

在处理合同、法律文书或技术文档时,常常会遇到多个版本的同一 PDF。人工逐页对比既耗时又容易遗漏细节。借助 Spire.PDF for Python,你可以用很少的代码自动检测并高亮显示两个 PDF 之间的差异,从而大幅提升比对效率和准确性。

本文将逐步演示如何配置环境并使用示例代码进行比较,还会介绍一些可选的高级设置以满足不同需求。

安装依赖

首先从 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.限定页范围比较

对于篇幅较长的文档,仅比较特定页区通常更高效。可以设置页范围: 

comparer.PdfCompareOptions.SetPageRanges(1, 3, 1, 3)
# 参数顺序:(oldStartIndex, oldEndIndex, newStartIndex, newEndIndex)

这会仅比较指定的页面区间,而非整份文档。

方法补充

Python实现比对两个PDF文件内容并输出不同的地方

思路步骤:

实现代码:

import PyPDF2
# 打开原始PDF文件
pdf1 = open('1.pdf', 'rb')
pdf2 = open('2.pdf', 'rb')
# 创建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)
# 创建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文件差异内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文