在线 PDF 比较,免费

并排比较两个 PDF 文件,以可视化方式高亮差异。即时结果,不上传服务器。

您的文件永不离开您的设备
上传第一个 PDF
将 PDF 拖到此处 或点击浏览

支持 PDF · 最大 100 MB

上传第二个 PDF
将 PDF 拖到此处 或点击浏览

支持 PDF · 最大 100 MB

关于 PDF 比较: 此工具在您的浏览器中显示两个 PDF 并逐页比较。在叠加模式下,任何像素级差异都会用红色高亮,便于发现文本修改、布局变化、图片替换及其他视觉差异。比较在本地完成 · 您的 PDF 绝不会离开您的设备。

工作原理

  1. 通过选择或拖放到左侧上传区,上传您的第一个 PDF。
  2. 将您的第二个 PDF 上传到右侧上传区。
  3. 选择显示模式:「并排」同时展示两个 PDF,「叠加」以红色高亮显示差异。
  4. 使用「上一页/下一页」按钮浏览,或直接输入页码。
  5. 在叠加模式下,红色区域表示两个文档相同页码之间的像素差异。

为什么比较 PDF?

PDF 比较对版本控制、质量保证和文档管理至关重要。可用它追踪文档修订之间的变更、验证修改是否正确应用、发现未授权修改、比较合同或法律文件版本、校验表单提交,以及确保多份副本的文档一致。自动化的差异高亮相比人工检查更节省时间并减少错误。

显示模式说明

使用场景

常见问题

叠加模式如何高亮差异?

叠加模式对渲染后的页面进行像素级比较。两个 PDF 之间不同的像素会以红色高亮。这能检测文本变化、图片修改、间距调整及其他任何视觉差异。

可以比较不同尺寸的 PDF 吗?

可以。完全支持不同页面尺寸的 PDF。并排模式下,每个 PDF 以原尺寸显示。叠加模式下,第一个 PDF 决定画布尺寸。

扫描版或图像型 PDF 呢?

完全支持扫描 PDF(由位图图像组成)。比较通过渲染两个 PDF 并比较视觉输出来完成,因此它能像处理其他 PDF 一样检测扫描文档中的变化。

可以比较加密的 PDF 吗?

此工具适用于标准 PDF。如果您的 PDF 受密码保护或已加密,您需要先使用 PDF 解锁工具移除保护,然后才能比较。

我的 PDF 最大能多大?

每个 PDF 最大 100 MB。处理时间取决于文件大小、页数以及您设备的性能。非常大的文件加载和渲染可能需要几秒钟。

比较是 100% 准确的吗?

对于视觉差异,是的。此工具进行精确的逐像素比较,检测所有视觉变化。但它比较的是视觉渲染,而非 PDF 的内部结构 · 因字体或 PDF 库导致的细微渲染差异可能显示为差异,尽管实际内容相同。

什么是PDF比较工具?

PDF比较工具接受两个PDF文件并向您展示它们之间发生了什么变化。难点在于定义什么是变化。对于看起来相同的文档,您希望工具说相同,即使底层字节因为它们是由不同软件生成而不同。对于包含真实编辑的文档,您希望工具准确突出显示文本、布局或图像发生变化的位置。不同的比较策略在捕捉真实变化和忽略噪声之间做出不同的权衡。

此工具使用视觉比较:来自两个PDF的每一页都渲染到像素网格中,两个网格叠加。匹配的像素显示为背景;不同的像素以红色突出显示。这捕捉每一个视觉变化,包括布局移动、字体替换、图像编辑和文本重写。它不捕捉不可见的变化(PDF元数据、隐藏的表单字段、嵌入的JavaScript),这是一个特性:那些在典型的文档审查中很少重要。

所有内容都在您的浏览器中使用pdf.js(Mozilla的PDF渲染器)和pdf-lib(PDF操作库)运行。两个PDF加载到内存中,渲染到画布元素,像素比较在您的机器上用JavaScript运行。没有文件上传到服务器。该工具处理高达100 MB的PDF,适用于标准数字PDF、扫描PDF和任何来源的PDF,只要它们没有密码加密。

工具内部有什么

顶部部分有两个并排的拖放区:将原始PDF拖到左侧,修订后的PDF拖到右侧。标签清楚地表明哪个是哪个,因此您不会意外地将添加的文本解释为删除的文本。两个文件都可以从文件管理器中拖动或使用文件选择器选择。一旦两个文件加载完成,该工具会报告每个文件的页数,这是真实变化是否发生的第一个信号。

在拖放区下方,视图模式切换在并排(两个页面相邻渲染)和叠加(两个页面合并并以红色突出显示差异)之间切换。并排最适合第一眼或共享屏幕截图。叠加是真正比较发生的地方:两个渲染之间任何不同的像素都以红色显示,因此您可以立即发现什么改变了而无需阅读两个版本。

页面导航让您一次浏览一页文档。如果两个PDF的页数不同,导航会停在较长的那个,缺失的页面显示为空白。按钮跳转到第一页或最后一页;页码输入让您直接转到任何特定页面。对于长文档,导航是瓶颈而不是渲染,所以工作流程是:加载、跳转到一页、比较、重复。

历史与背景

计算机科学中的差异问题(1976年)

比较一个文档的两个版本是一个老问题。第一个实用的解决方案是1976年道格拉斯·麦克罗伊在贝尔实验室编写的diff工具。Diff比较两个文本文件并打印不同的行,使用最长公共子序列算法。1986年Eugene Myers通过O(ND)论文改进了该算法,该论文成为几乎所有现代差异工具(包括git)的基础。文本差异是基础,但它只对文本工作,不对渲染文档工作。

视觉差异和像素比较(1990年代)

1990年代引入了比较渲染输出而不是源文本的视觉差异工具。WinMerge(1998)、BeyondCompare(Scooter Software,1996)和Araxis Merge(1996)在文本旁边添加了图像比较。像素逐像素差异在概念上很简单(比较每个像素位置,突出显示不匹配),但它在比较对人类看起来相同但因为抗锯齿或字体提示而不同的渲染时会产生噪声。像感知差异和结构相似性(Wang等2004)等改进试图过滤掉感知上不相关的差异。

Acrobat添加PDF比较(2015年)

Adobe在2015年向Acrobat Pro DC添加了比较文件功能。与纯视觉差异不同,Acrobat的比较是文本感知的:它识别插入、删除和替换的文本,并在侧边栏中呈现更改,类似于Word的跟踪更改视图。这对带有适当文本层的数字PDF效果很好,但在扫描PDF或具有自定义字体编码的PDF上会退化。Adobe的工具仅在桌面应用程序上运行;它在浏览器中不可用。

DiffPDF和命令行PDF差异工具(2010年代)

像DiffPDF(2010)和diff-pdf(基于Wine的包装器,2012)等开源命令行工具将PDF比较带入脚本工作流。这些工具通过文本(提取两个PDF并运行文本差异)或通过图像(光栅化两个PDF并运行图像差异)进行比较。它们在您想标记PDF回归的CI管道中很有用,但它们需要本地安装并且对非开发人员来说很笨拙。

基于浏览器的PDF渲染成熟(2013年)

Mozilla在2013年2月将pdf.js与Firefox 19一起发布,使基于JavaScript的PDF渲染达到生产就绪。Chrome在2013-2014年集成了PDFium(C++,源自Foxit)以达到类似效果。一旦浏览器可以原生渲染PDF,构建基于浏览器的PDF比较工具就变得可行:用JavaScript加载两个文件,将每个页面渲染到画布,比较画布像素缓冲区。此工具遵循这一脉络。

注重隐私的云替代方案(2020年起)

COVID时代的远程工作激增将许多PDF工具推向在线。大多数云PDF比较服务(Smallpdf、iLovePDF、PDF24)需要将两个文件上传到服务器进行处理,这对于像合同、医疗记录或财务报表等机密文档是不可接受的。在客户端运行的基于浏览器的工具是保护隐私的替代方案:文件从未离开您的设备,但您获得与云工具相同的比较体验。

实用工作流程

合同版本审查

对方发送了一份红线合同,声称只有一个条款发生了变化。加载原始PDF和修订后的PDF,切换到叠加模式,并浏览各页。红色突出显示显示每一次实际修改,而不仅仅是对方指出的那些。这捕捉了文本红线可能错过的偷偷潜入的变化(日期变动、数字调整、悄悄添加的条款)。保存任何意外红色区域的屏幕截图以供跟进。

设计和营销资料批准

设计师发送了小册子的第2版,声称他们解决了您的反馈。加载第1版和第2版,叠加每一页,并验证更改。像素差异捕捉容易在顺序阅读两个版本时错过的排版调整、颜色变化、图像交换和布局调整。对于多页资料,这比打印两者并并排放置要快得多。

技术文档回归检查

当您将技术文档发布为PDF(用户手册、API参考、内部SOP)时,将新版本与之前的版本进行比较可以捕捉意外的差异。像素比较足够敏感,可以捕捉到文本差异可能令人困惑地呈现的分页移动或重新编号的部分。对于有数百页的文档,首先在并排模式下扫描,然后叠加任何看起来不同的页面。

税务表格年度比较

税务表格(IRS 1040、UK SA100、French 2042等)每年都会变化。将今年的表格与去年的进行比较可以识别新的行项目、删除的扣除额和重新编号的部分。对于会计师和税务准备人员,这比阅读税务机关的表格变更说明要快。叠加立即突出显示每一处印刷变化。

学术论文修订跟踪

当一篇论文经过同行评审时,将原始提交与修订版本进行比较有助于验证哪些审稿人意见得到了处理。LaTeX生成的PDF通常足够干净,视觉差异可以捕捉每一处文本变化。如果图形或方程式已更新,像素比较会清楚地突出显示它们。比完整阅读两个版本节省时间。

法规和政策变更跟踪

政府法规、企业政策和标准文件(ISO、IEEE、IETF)通常以PDF形式发布。将新版本与之前的版本进行比较是识别实质性变化的最快方法。合规团队使用这个来向利益相关者简报变化的内容,而无需重新阅读整个文档。并排模式适合上下文;叠加模式适合发现每一个微小编辑。

常见陷阱

不同的生成器产生不同的渲染

从Microsoft Word导出的文档和从Google Docs导出的相同文档可能渲染相同的文本,但字间距、换行或字体替换略有不同。像素差异将这些标记为差异,即使文档内容未更改。如果您在比较从两个不同工具导出的相同源文档,请预期会有基线噪声。使用Adobe的文本感知比较或在提取后运行文本差异以过滤噪声。

不同分辨率的扫描PDF到处都看起来不同

如果一个PDF是300 DPI的扫描,另一个是相同物理文档的600 DPI扫描,渲染的像素将不会对齐。每一页都会显示为一片红色。通过以相同DPI重新扫描来匹配渲染分辨率,或者对两者运行OCR并比较文本而不是视觉渲染。视觉差异仅在两个PDF渲染到相似的像素网格时才有效。

页面旋转差异

如果一个PDF中的页面相对于另一个PDF中的同一页面旋转了90度,像素比较会将整个页面标记为不同。在比较之前检查两个PDF的页面旋转元数据。PDF阅读器会在屏幕上显示两个页面都直立,掩盖底层旋转。使用PDF元数据工具验证旋转,如有必要旋转一个PDF以匹配。

抗锯齿产生亚像素差异

即使比较两次渲染的相同PDF,浏览器抗锯齿也可能在字形边缘产生小的像素值差异。叠加可能在文本周围显示淡红色光环。这是渲染噪声,不是真正的变化。如果噪声压倒了信号,请考虑更高的比较阈值(将彼此5%以内的像素视为匹配)或以更高的分辨率光栅化,其中每个字形占据更多的像素。

布局移动级联红色突出显示

如果您在页面顶部附近添加一个段落,页面的其余部分会向下移动。插入段落下方的每一行现在都在不同的y坐标,像素差异将它们全部突出显示为不同。实际变化是一个段落,但可见差异是它下面的所有内容。这是文本感知差异(理解段落)通常比纯像素差异对内容密集型PDF给出更好结果的主要原因。

视觉差异错过不可见的变化

PDF可能有不可见的变化:元数据编辑、嵌入的JavaScript、隐藏的表单字段、设置为零不透明度的水印、附加的文件。视觉比较不会捕捉到任何这些,因为它们不渲染为像素。对于全面的审计,将视觉差异与PDF元数据工具(显示生产者、创建日期、标题、自定义字典条目)和PDF解锁工具(揭示加密标志)结合使用。视觉差异是必要的但不充分。

隐私和数据处理

您加载到工具中的两个PDF始终保留在您的设备上。pdf.js和pdf-lib是在您的浏览器中执行的JavaScript库;它们不会用文件内容发出任何网络请求。文件被读入内存,渲染到画布元素,像素比较在JavaScript中运行。我们从不上传任何文件,从不记录内容,从不分析其中的内容。这很重要,因为您最想比较的文档(合同、财务报告、法律通信、医疗记录)正是您绝不应该发送给第三方服务的文档。

页面加载后,工具离线工作。您可以断开互联网连接,拖入两个PDF,运行比较,并查看叠加,而您的数据从未触及另一台机器。比较结果(红色突出显示的叠加)是页面上的渲染图像;如果您想保留它,请截屏。没有任何东西保存在服务器端,也没有任何东西上传。

何时不应使用此工具

纯文本比较(改用diff-checker)

如果您的PDF仅包含文本,并且您想要逐行差异,其中插入和删除被标注出来,请先提取文本(PDF转文本)并通过文本差异工具运行结果。文本差异自然处理段落重排、布局移动和字体变化,这些像素差异都不能很好地处理。Absolutool diff-checker工具正是为文本做这件事。当布局和视觉元素重要时,像素差异是最好的,纯散文不是。

比较应该字节相同的PDF

如果您需要验证两个PDF是完全相同的文件(构建可重现性、文件完整性检查、欺诈检测),请使用哈希比较(SHA-256、MD5)而不是视觉差异。哈希检查更快、确定性强、不受渲染噪声影响。文件哈希工具在几秒钟内计算SHA-256哈希;如果哈希匹配,则文件相同;如果不同,则文件不同,无论它们如何渲染。

超出浏览器内存的非常大的PDF

同时加载两个100 MB的PDF,加上每个页面的渲染画布,消耗大量浏览器内存。在低规格的笔记本电脑和大多数移动设备上,这可能会使选项卡崩溃。对于非常大的PDF(建筑图纸、数千页手册),先用PDF分割工具分割每个PDF并比较匹配的块。或者使用桌面工具(如Adobe Acrobat Pro DC)进行内存密集型比较。

比较不同文件格式的PDF

如果一个文档是PDF,另一个是Word文件或HTML页面,此工具无法比较它们。先将两者转换为PDF(或两者转换为文本),以便比较相同类型。跨格式比较几乎总是产生巨大的视觉差异,因为渲染器完全不同。先转换为通用格式;然后进行比较。

更多问题

为什么叠加显示红色,即使PDF看起来相同?

像素完美比较捕捉人类无法看到的亚像素渲染差异。两个PDF可能由不同工具(Word vs LaTeX vs InDesign)生成,它们对字体进行不同的提示或对边缘进行不同的抗锯齿。内容相同;像素不同。对于这些情况,更喜欢从两个PDF提取文本后基于文本的差异,或者接受噪声是真实的,只查看大的红色区域。

我可以比较扫描的PDF吗?

是的,扫描的PDF可以工作,因为该工具比较的是渲染像素而不是文本。问题是两个扫描必须具有相同的分辨率和方向,否则比较将是无用的噪声。对于相同物理页面的扫描,此工具捕捉添加的手写、密文标记或印章等差异。对于不同DPI的不同页面的扫描,先对两者进行OCR并比较文本。

工具知道哪个PDF更旧吗?

不,工具对待两个PDF对称。它向您显示它们的不同之处;它不推断哪个是原始的,哪个是修订版。您决定将哪个文件放在哪一侧。左和右标签纯粹是位置性的。如果您需要时间上下文(哪个先来),请检查您的文件管理器中的文件修改时间或PDF元数据。

我可以将比较导出为报告吗?

不能直接:比较是在浏览器中实时渲染的。要捕获它,请截屏叠加页面并粘贴到报告文档中。对于更复杂的报告(带注释的差异PDF),Adobe Acrobat Pro DC的比较文件功能产生可打印的报告;此浏览器工具仅专注于实时视觉比较。

如果两个PDF的页数不同会怎样?

页面导航扩展到任一PDF的最大页数。当您到达只有一个PDF有的页面时,另一侧显示为空白。这是最简单的行为,通常也是最有用的:如果版本2在末尾添加了两页,您会看到这些页面作为添加的内容。如果页面插入到中间,每个后续页面都会显示为不同,因为它们已经移动;那是发生了插入的信号。

为什么是基于像素的比较而不是基于文本的?

像素比较捕捉所有视觉内容:文本编辑、布局移动、图像变化、字体替换、颜色调整、删除。基于文本的比较只捕捉文本变化,对布局和图像视而不见。对于文档审查(合同、报告、营销),视觉变化通常和文本一样重要。像素比较是更安全的默认值;对于纯散文比较,文本差异更精确。

相关工具