題 如何比較Windows上兩個PDF文件之間的差異?


您是否知道將PDF文件並排比較並顯示兩者之間的修改的好方法?

我正在尋找Windows軟件來實現這一目標。如果您可以發布免費和非免費產品,那將是很棒的。


190


起源


有關: stackoverflow.com/questions/145657/... - Epaga
有一個免費的庫來逐像素地比較pdf。查看此博客: testautomationguru.com/... - Vinoth S


答案:


嘗試 的WinMerge 隨著 xdocdiff 插入。兩者都完全免費。沒有任何附加條件。


以下幾條評論表明他們沒有看到任何差異。這意味著插件未正確安裝。這是如何做:

  1. 把文件放在哪裡 xdocdiff 插件的自述文件說要放它們(有兩個地方;我不會在這裡列出它們,因為文件名可以改變等等 - 閱讀自述文件)

  2. 在WinMerge中,轉到插件>列表並勾選“啟用插件”複選框(此步驟中缺少 xdocdiff 自述)

  3. 在WinMerge中,選擇插件>自動解包(在步驟2之前已禁用)

然後在比較時,您將在比較窗口中看到文本文件的外觀。


100



試過這個,但在不使用xdocdiff插件時看不出任何差異。在WinMerge的UI中有選擇嗎? - Umber Ferrule
查看PDF中的二進製文本的目的是什麼?我希望看到視覺上的差異 i-net PDFC。 - JJD
有沒有辦法讓這個句柄列斷裂?如果沒有它,一個變化就會變成幾個。 - Stuart
Plugins > List and tick the "Enable Plugins" checkbox 是我失踪的東西! - Seph
WinMerge diff窗口中顯示的PDF文本版本中缺少許多字符 - cja


在Linux和Windows上,您可以使用 diffpdf (與...不同 diff-pdf 在這個線程中提到)。

enter image description here

在Ubuntu上安裝使用:

sudo apt-get install diffpdf

進一步了解 這個UbuntuGeek頁面以文本或視覺方式比較pds

對於Windows,這個Diffpdf Windows版本非常棒。你可以從。下載 http://soft.rubypdf.com/software/diffpdf (向下滾動到 Win32靜態版)。


163



正確的名字是 DiffPDF (如截圖所示)它基於Qt 4和Poppler庫,因此它 是 便攜。請參閱DiffPDF主頁: qtrac.eu/diffpdf.html。有關Windows構建的信息如下: soft.rubypdf.com/software/diffpdf。你的安裝說明也適用於Debian。 - przemoc
DiffPDF主頁現在還包含用於Linux,Windows安裝程序和Mac DMG安裝的鏈接(qtrac.eu/diffpdf.html)。 - studgeek
在我看來,DiffPDF是這裡介紹的最先進的工具。它不僅提供了良好的圖形比較,而且比其他人更加巧妙地跟踪變化,例如: WinMerge的xdocdiff。但是,它有一個嚴重的問題:它限制了與頁面的比較。這意味著,如果您在文檔A的第2頁上有一些文本,但是此文本移動到文檔B中的第3頁,那麼該工具認為它在A中消失並在B中添加。 - caw
可以找到較舊的免費版本 這裡 - Shafik Yaghmour
我嘗試將它用於我導出為PDF的小說。不幸的是,該工具在大約10頁之後失去了軌道,並認為一切都是“不同的”,即使大段落完全相同。 - Eric J.


我最近發現了這個,我喜歡它。

https://github.com/vslavik/diff-pdf

跨平台,免費,並且運作良好。

這是截圖 diff-pdf 在行動 - 請注意PDF中的文本沒有不同,只有字體(相應地,佈局設置):

diff-pdf.png

獲得該圖像的調用是:

diff-pdf --view testA.pdf testB.pdf

...通過編譯這個簡單的Latex文件獲得testA.pdf / testB.pdf pdflatex (相應的每個pdf,見評論):

\documentclass[12pt]{article}


                        % without mathpazo: testA.pdf
\usepackage{mathpazo} % with mathpazo: testB.pdf
\usepackage{lipsum}


\title{A brand new test}
\author{Testulio}

\begin{document}

\maketitle

\lipsum[1-3]

\end{document}

37



還有一點需要注意 diff-pdf: DiffPDF 非常適合快速直觀地比較已更改的文本,但實際上不可能調試諸如行間距的微小變化之類的東西 - diff-pdf 另一方面,基本上將來自兩個比較文件的頁面內容放在同一頁面上(但顏色不同) - 因此可以輕鬆識別行間距問題...乾杯! - sdaau
這很棒!無論如何,在輸出到PDF文件(不使用--view選項)時跟踪大文件的進度?詳細選項/ v似乎沒有做任何事情。此外,當您運行命令以生成比較PDF時,它將在單獨的進程中運行,因此它不會像通常在從提示符執行某些操作時那樣暫停命令提示符。 - LukeS
這是我需要的。我正在比較關於數字執行的PDF報告,所以我在尋找整頁中一位數的差異。問題是,我無法識別青色字符,但知道差異在哪裡,足以在原始報告中找到它。 - manuelvigarcia


我們還需要對我們公司的PDF進行比較,並對我們找到的任何解決方案都不滿意,所以我們自己做了: i-net PDFC。這不是免費的,但我們確實提供了30天的試用期。

它是用Java編寫的,所以它是跨平台的。

screenshot

它的特殊之處在於它比較內容而不僅僅是文本(或者只是將pdf轉換為圖像並比較圖像)。它還有一個很好的視覺比較工具。


22



很好的軟件。 - Umber Ferrule
我無法讓這個工作。加載這兩個文件,然後單擊比較按鈕,沒有任何反應。 - Craig Fisher
正確處理跨頁面差異。具有導出/打印功能。不同的比較配置文件(包括自定義)鼠標懸停為您提供有關更改內容的更多詳細信看起來很棒。缺點是試用/成本,不處理移動。絕對優於IMO投票的工具。 - Jonathan Gawrych
@JonathanGawrych謝謝你的客氣話!你的“動作”是什麼意思?也許我們可以添加這個功能...... - Epaga
@Epaga如果一段文本從一個頁面移動到另一個頁面,它將顯示為刪除和添加。例如,比較c ++提案 N4663 和 N4680。請參閱第19頁左右,示例從第11段移至第8段,但它被視為添加/刪除。要查看實際差異,需要手動檢測移動的內容,然後將示例複製到另一個diff工具,以查看事物是否已添加到示例中(unhandled_exception,return_void等) - Jonathan Gawrych


您還可以使用Adobe Acrobat X.它在“查看 - >比較文檔”下內置了PDF比較功能。


12



Acrobat或Acrobat Reader? Reader軟件沒有這個 - Jason S
AcrobatX Pro是唯一具有此功能的版本。 “只是簡單的AcrobatX”沒有。 - Carl Witthoft
在Acrobat 9 Pro中,它位於“文檔”菜單下。 - svinto
adobe.com/products/acrobat/file-compare-two-pdf-files.html - Iman Abidi


我最近想要這些(diff PDFs)這些要求:

  • 忽略空格,換行符,分頁符等
  • 很容易看到只有幾個單詞改變了,而不僅僅是整行/段落。
  • 顏色差異輸出

我安裝了pdftotext,wdiff和colordiff,可以在各種包管理器中找到。 (使用macports: sudo port install poppler wdiff colordiff

然後:

wdiff <(pdftotext old.pdf -) <(pdftotext new.pdf -) | colordiff

現在,我可以看到哪些字,顏色很好,已經改變了。

更多細節: http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/

變異:

運用 dwdiff 可以產生稍好的效果。

我也想要HTML輸出,所以這個小腳本創建了一個帶有一點CSS的基本網頁。

bash pc-script.bash old.pdf new.pdf > q.htlm

然後打開 q.html 使用您的Web瀏覽器。

pc-script.bash 文件:

#!/bin/bash

OLD="$1"
NEW="$2"

cat <<EOF
<html><head><meta charset="UTF-8"/><title>Changes from $OLD to $NEW</title></head><style>
.plus  { color: green; background: #E7E7E7;                                }
.minus { color: red;   background: #D7D7D7; text-decoration: line-through; }
</style><body><h1>Changes from [ <span class="minus">$OLD</span> ] to [ <span class="plus">$NEW</span> ]</h1><pre>
EOF

dwdiff -i -A best -P      \
  --start-delete='<span class="minus">' --stop-delete='</span>' \
  --start-insert='<span class="plus" >' --stop-insert='</span>' \
  <( pdftotext -enc UTF-8 -layout "$OLD" - )   \
  <( pdftotext -enc UTF-8 -layout "$NEW" - )   \

cat <<EOF
</pre></body></html>
EOF

可以看到輸出的一個例子 這裡


8





如果您要比較pdf中的文本,那麼 超越比較 做這個。

不是免費的,但有三十天的審判。


7



是的, New > Text Compare 幫助我看到兩個PDF文件之間的文本基本差異。 - Ryan


偉大的工具,易於使用: Compare-It v4(來自 http://www.grigsoft.com/

比較許多不同類型的文件。 它有一些內置的轉換器,包括一個用於PDF文件。

我已經使用了很多次,效果令人滿意。

真的應該試試這個。試用版允許無限時間比較。


6



這對我來說是最好最簡單的。謝謝! - Ankur Jain
我發現使用的最簡單,最簡單的工具。我希望我能不止一次地投票! - Chad
對於PDF,比較似乎是文本的。最後一次發佈於2010年。你可以支付它,但確定有什麼區別 - 我沒有看到任何限制? - Zitrax


不知道,但也有comparePDF(不是免費的,但可以30天試用): http://www.compare-pdf.com/download.htm


2





免費,不是最好但是......

我打開兩個文件,讓它們相互分開。

不是最實用的解決方案,但它的工作原理!

我沒有看到PDF文件的好DIFF包,雖然手動和煩人,我的方式工作!


1



哼......不是我想要的,但謝謝。 - Nelson Reis
對不起,我知道不是一個好的答案,只是說我從來沒有找到一個很好的PDF文件工具。 - William Hilsum
這就是我害怕...再次感謝! - Nelson Reis
交叉雙眼使兩個副本重疊,任何差異都會出現閃爍。 :d - endolith
此方法的優化版本:通過CTRL + L在Acrobat reader全屏幕中打開兩個PDF文件,然後使用CTRL + F6在PDF文件之間切換,移動的任何內容都不同... - Bernard Vander Beken