จะเปรียบเทียบความแตกต่างระหว่างสองไฟล์ PDF บน Windows ได้อย่างไร


205

คุณรู้วิธีที่ดีในการเปรียบเทียบไฟล์ PDF แบบเคียงข้างกันและแสดงการแก้ไขระหว่างสองไฟล์หรือไม่

ฉันกำลังมองหาซอฟต์แวร์ Windows เพื่อทำสิ่งนี้ให้สำเร็จ มันจะดีถ้าคุณสามารถโพสต์ผลิตภัณฑ์ทั้งฟรีและไม่ฟรี


1
ที่เกี่ยวข้อง: stackoverflow.com/questions/145657/…
Epaga

1
มีห้องสมุดฟรีเพื่อเปรียบเทียบ pdf พิกเซลต่อพิกเซล ตรวจสอบบล็อกนี้: testautomationguru.com/…
Vinoth S

คำตอบ:


109

ลองWinMergeด้วยปลั๊กอินxdocdiff ทั้งสองอย่างฟรี ไม่มีการเชื่อมต่อสตริง


ความคิดเห็นสองข้อด้านล่างแนะนำว่าพวกเขาไม่เห็นความแตกต่างใด ๆ นั่นหมายความว่าปลั๊กอินไม่ได้รับการติดตั้งอย่างถูกต้อง นี่คือวิธี:

  1. วางไฟล์ที่xdocdiffไฟล์ readme ของปลั๊กอินบอกว่าจะวางไว้ (มีสองตำแหน่งฉันจะไม่แสดงรายการที่นี่เนื่องจากชื่อไฟล์สามารถเปลี่ยนได้ ฯลฯ - อ่าน readme)

  2. ใน WinMerge ไปที่ปลั๊กอิน> รายการและทำเครื่องหมายที่ช่อง "เปิดใช้งานปลั๊กอิน" (ขั้นตอนนี้จะหายไปจากxdocdiffreadme)

  3. ใน WinMerge เลือกปลั๊กอิน> การเอาออกโดยอัตโนมัติ (สิ่งนี้ถูกปิดใช้งานก่อนขั้นตอนที่ 2)

จากนั้นเมื่อเปรียบเทียบคุณจะเห็นสิ่งที่ดูเหมือนไฟล์ข้อความในหน้าต่างเปรียบเทียบ


ลองสิ่งนี้ แต่ไม่เห็นความแตกต่างเมื่อไม่ได้ใช้งานปลั๊กอิน xdocdiff มีตัวเลือกให้เลือกใน UI ของ WinMerge หรือไม่
Umber Ferrule

1
วัตถุประสงค์ของการดูข้อความไบนารีใน PDF คืออะไร? ผมคาดว่าจะเห็นความแตกต่างของภาพเป็นกระทำโดยPDFC ฉันสุทธิ
JJD

มีวิธีใดบ้างที่จะทำให้คอลัมน์จัดการนี้แตก? ถ้าไม่มีมันจะเปลี่ยนน้ำตกเป็นหลาย ๆ
สจวร์ต

1
Plugins > List and tick the "Enable Plugins" checkboxเป็นสิ่งที่ขาดหายไปสำหรับฉัน!
Seph

ตัวละครหลายคนหายไปจากรูปแบบข้อความของไฟล์ PDF ที่แสดงใน WinMerge diff หน้าต่าง
CJA

168

บน Linux และ Windows คุณสามารถใช้diffpdf(ซึ่งแตกต่างจากที่diff-pdfกล่าวถึงในหัวข้อนี้)

ป้อนคำอธิบายรูปภาพที่นี่

บน Ubuntu ติดตั้งโดยใช้:

sudo apt-get install diffpdf

ดูเพิ่มเติมหน้านี้ UbuntuGeek เกี่ยวกับการเปรียบเทียบ PDS textually หรือสายตา

สำหรับ Windowsรุ่น Windows Diffpdf นี้ใช้งานได้ดีมาก คุณสามารถดาวน์โหลดได้จากhttp://soft.rubypdf.com/software/diffpdf (เลื่อนลงไปที่Win32 static version )


12
ชื่อที่เหมาะสมเป็นDiffPDF (เท่าที่เห็นในภาพ) และก็ขึ้นอยู่กับ Qt 4 และห้องสมุด Poppler ทำให้มันเป็นแบบพกพา ดูหน้าแรก DiffPDF: qtrac.eu/diffpdf.html ข้อมูลเกี่ยวกับ Windows สร้างอยู่ที่นี่: soft.rubypdf.com/software/diffpdf และคำแนะนำในการติดตั้งของคุณก็ใช้ได้กับ Debian ด้วย
przemoc

3
หน้าแรกของ DiffPDF มีลิงค์สำหรับตัวติดตั้ง Linux, Windows และ Mac DMG เช่นกัน ( qtrac.eu/diffpdf.html )
studgeek

6
DiffPDF เป็นเครื่องมือที่ทันสมัยที่สุดที่นำเสนอที่นี่ในความคิดของฉัน ไม่เพียง แต่ให้การเปรียบเทียบแบบกราฟิกที่ดี แต่ยังติดตามการเปลี่ยนแปลงที่ชาญฉลาดกว่าอย่างอื่นเช่น xdocdiff สำหรับ WinMerge อย่างไรก็ตามมีปัญหาร้ายแรงหนึ่งข้อ: จำกัด การเปรียบเทียบกับหน้าเว็บ ซึ่งหมายความว่าหากคุณมีข้อความในหน้า 2 ของเอกสาร A แต่ข้อความนี้ย้ายไปที่หน้า 3 ในเอกสาร B เครื่องมือจะคิดว่ามันหายไปใน A และเพิ่มใน B
caw

7
รุ่นฟรีที่เก่ากว่าสามารถพบได้ที่นี่
Shafik Yaghmour

3
ฉันพยายามใช้สิ่งนี้เป็นนวนิยายที่ฉันส่งออกเป็น PDF น่าเสียดายที่เครื่องมือหายไปหลังจากผ่านไปประมาณ 10 หน้าและถือว่าทุกอย่าง "แตกต่าง" แม้ว่าข้อความจำนวนมากจะเหมือนกันทุกประการ
Eric J.

42

ฉันเพิ่งพบสิ่งนี้และฉันรักมัน

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

ข้ามแพลตฟอร์มฟรีและทำงานได้ดี

นี่คือภาพหน้าจอของdiff-pdfการทำงาน - โปรดทราบว่าข้อความไม่แตกต่างกันใน PDF แต่เป็นแบบอักษรเท่านั้น (และการตั้งค่าเค้าโครงเหมือนกัน):

diff-pdf.png

การเรียกเพื่อให้ได้ภาพนั้นคือ:

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

 

... โดยที่ได้รับ 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}

10
เพียงแค่หนึ่งทราบเพิ่มเติมเกี่ยวกับdiff-pdf: DiffPDFเป็นที่ดีสำหรับการเปรียบเทียบภาพอย่างรวดเร็วด้านโดยด้านข้างของข้อความที่มีการเปลี่ยนแปลง แต่มันเป็นจริงเป็นไปไม่ได้สิ่งที่แก้ปัญหาเช่นการพูดการเปลี่ยนแปลงเล็ก ๆ ในระยะห่างระหว่างบรรทัด - diff-pdfในมืออื่น ๆ โดยทั่วไปทำให้เนื้อหาหน้า จากไฟล์ที่เปรียบเทียบทั้งสองในหน้าเดียวกัน (แต่มีสีต่างกัน) - ดังนั้นปัญหาการเว้นวรรคบรรทัดสามารถระบุได้ง่าย ... ไชโย!
sdaau

มันเยี่ยมมาก! มีอยู่เพื่อติดตามความคืบหน้าในไฟล์ขนาดใหญ่เมื่อส่งออกไปยังไฟล์ PDF (ไม่ได้ใช้ตัวเลือก - ดู)? ตัวเลือก verbose / v ดูเหมือนจะไม่ทำอะไรเลย นอกจากนี้เมื่อคุณเรียกใช้คำสั่งเพื่อสร้างการเปรียบเทียบ PDF มันจะทำงานในกระบวนการที่แยกต่างหากดังนั้นจึงไม่หยุดชั่วคราวพร้อมรับคำสั่งเหมือนปกติเกิดขึ้นเมื่อคุณดำเนินการบางอย่างจากพรอมต์
ลุ

นี่คือสิ่งที่ฉันต้องการ ฉันกำลังเปรียบเทียบรายงาน PDF เกี่ยวกับการประมวลผลตัวเลขดังนั้นฉันกำลังมองหาความแตกต่างของตัวเลขหนึ่งหลักในทั้งหน้า ปัญหาคือฉันไม่สามารถระบุตัวอักษรสีฟ้า แต่รู้ว่าความแตกต่างอยู่ที่ไหนก็เพียงพอที่จะค้นหาได้ในรายงานต้นฉบับ
manuelvigarcia

22

นอกจากนี้เรายังจำเป็นที่จะเปรียบเทียบไฟล์ PDF ที่ บริษัท ของเราและไม่พอใจกับการใด ๆ ของการแก้ปัญหาที่เราพบเพื่อให้เราทำของเราเอง: PDFC ฉันสุทธิ ไม่ฟรี แต่เราให้ทดลองใช้ 30 วัน

มันเขียนด้วยภาษาจาวาดังนั้นมันจึงข้ามแพลตฟอร์ม

ภาพหน้าจอ

สิ่งที่ทำให้มันพิเศษคือมันเปรียบเทียบเนื้อหาเมื่อเทียบกับข้อความเท่านั้น (หรือเพียงแค่แปลงไฟล์ PDF เป็นภาพและเปรียบเทียบภาพ) นอกจากนี้ยังมีเครื่องมือเปรียบเทียบภาพที่ดี


1
เป็นซอฟต์แวร์ที่ดี
Umber Ferrule

ฉันทำงานนี้ไม่ได้ โหลดไฟล์สองไฟล์และคลิกที่ปุ่มเปรียบเทียบและไม่มีอะไรเกิดขึ้น
Craig Fisher

1
จัดการความแตกต่างข้ามหน้าได้อย่างถูกต้อง มีฟังก์ชั่นการส่งออก / พิมพ์ โปรไฟล์การเปรียบเทียบที่แตกต่างกัน (รวมถึงกำหนดเอง) เลื่อนเมาส์ไปที่รายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่เปลี่ยนแปลง ดูดี. ข้อเสียคือการทดลอง / ค่าใช้จ่ายและไม่จัดการกับการเคลื่อนไหว เหนือกว่าเครื่องมืออื่น ๆ ที่ได้รับการโหวตสูงกว่า IMO
Jonathan Gawrych

@ JonathanGawrych ขอบคุณสำหรับคำพูดดี ๆ ! คุณหมายถึงอะไรโดย "ย้าย" ใช่มั้ย บางทีเราสามารถเพิ่มฟังก์ชันการทำงานนั้นได้ ...
Epaga

@Epaga หากส่วนข้อความถูกย้ายจากหน้าหนึ่งไปอีกหน้าหนึ่งจะถูกแสดงเป็นการลบและการเพิ่ม ยกตัวอย่างเปรียบเทียบค ++ ข้อเสนอN4663และN4680 ดูรอบ ๆ หน้า 19 ตัวอย่างจะถูกย้ายจากย่อหน้าที่ 11 ถึง 8 อย่างไรก็ตามจะถือว่าเป็นการเพิ่ม / ลบ หากต้องการดูความแตกต่างที่แท้จริงเราจะต้องตรวจจับสิ่งที่ย้ายด้วยตนเองจากนั้นคัดลอกตัวอย่างไปยังเครื่องมือ diff อื่นเพื่อดูว่ามีการเพิ่มสิ่งต่าง ๆ ลงในตัวอย่าง (unhandled_exception, return_void ฯลฯ )
Jonathan Gawrych

12

คุณยังสามารถใช้ Adobe Acrobat X ได้มันมีฟังก์ชั่นการเปรียบเทียบ PDF ในตัวภายใต้ "ดู -> เปรียบเทียบเอกสาร


1
Acrobat หรือ Acrobat Reader ซอฟต์แวร์ Reader ไม่มีสิ่งนี้
Jason S

4
AcrobatX Pro เป็นรุ่นเดียวที่มีคุณสมบัตินี้ "เพียงแค่ธรรมดา AcrobatX" ไม่ได้
Carl Witthoft

2
ใน Acrobat 9 Pro อยู่ภายใต้เมนูเอกสาร
svinto


10

ฉันต้องการทำสิ่งนี้ (diff PDF) เมื่อเร็ว ๆ นี้ด้วยข้อกำหนดเหล่านี้:

  • ละเว้นพื้นที่ว่างตัวแบ่งบรรทัดตัวแบ่งหน้า ฯลฯ
  • ดูได้ง่าย ๆ เมื่อคำสองสามคำเปลี่ยนไปไม่ใช่แค่ทั้งบรรทัด / ย่อหน้า
  • เอาท์พุท diff สี

ฉันติดตั้ง 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ด้วยเว็บเบราว์เซอร์ของคุณ

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

ตัวอย่างของเอาต์พุตสามารถดูได้ที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


@philcolbourn Google+ กำลังปิดตัวลงอาจแชร์ภาพหน้าจอผ่าน imgur หรือไม่
myrdd

fwiw ฉันสะดุดกับ repo เล็ก ๆ นี้: github.com/tpltnt/cli-diffpdf/blob/master/cli-diffpdf.sh
myrdd

หากคุณใช้ Windows, Mac, Fedora, openSUSE หรือคุณสามารถรวบรวมไบนารีจากแหล่งที่มาสำหรับระบบของคุณdiff-pdfเป็นทางออกที่ดีกว่าที่จะประสบความสำเร็จโดยไม่ต้องติดตั้งการพึ่งพาที่แตกต่างกันสามแบบ เพื่อไม่ให้สับสนกับ diffpdf ที่กล่าวถึงในคำตอบอื่นซึ่งทำงานผ่าน GUI เท่านั้น
Hashim

โปรดทราบว่าpc-script.bashสคริปต์ไม่ได้ยกเว้นอักขระสำหรับ HTML
Federico

7

หากคุณกำลังเปรียบเทียบข้อความในรูปแบบ pdf แล้วBeyond Compareจะเป็นเช่นนี้

ไม่ฟรี แต่มีการทดลองใช้สามสิบวัน


ใช่New > Text Compareช่วยฉันเห็นความแตกต่างพื้นฐานของข้อความระหว่างไฟล์ PDF 2 ไฟล์
Ryan

6

เครื่องมือที่ยอดเยี่ยมและใช้งานง่าย: Compare-It v4 (จากhttp://www.grigsoft.com/ )

เปรียบเทียบไฟล์หลายประเภท มันมีตัวแปลงบางส่วนในตัวรวมถึงตัวแปลงสำหรับไฟล์ PDF

ฉันใช้มันสองสามครั้งกับผลลัพธ์ที่น่าพอใจ

ควรลองสิ่งนี้จริงๆ รุ่นทดลองช่วยให้สามารถเปรียบเทียบได้ไม่ จำกัด เวลา


1
นี่คือสิ่งที่ดีที่สุดและง่ายที่สุดสำหรับฉัน ขอบคุณ!
Ankur Jain

เครื่องมือที่ง่ายที่สุดและง่ายที่สุดที่ฉันพบว่าใช้ ฉันหวังว่าฉันจะสามารถลงคะแนนได้มากกว่าหนึ่งครั้ง!
ชาด

สำหรับ PDF การเปรียบเทียบดูเหมือนจะเป็นข้อความ รุ่นล่าสุดในปี 2010 คุณสามารถชำระเงินได้ แต่แน่ใจว่าแตกต่างกันอย่างไร - ฉันไม่เห็นข้อ จำกัด ใด ๆ
Zitrax


1

ฟรีไม่ใช่สิ่งที่ดีที่สุด แต่ ...

ฉันเปิดเอกสารทั้งสองขึ้นและให้แยกหน้าจอออกจากกัน

ไม่ใช่วิธีแก้ปัญหาที่ใช้งานได้จริง แต่ใช้งานได้!

ฉันไม่ได้เห็นแพ็คเกจ DIFF ที่ดีสำหรับไฟล์ PDF และในขณะที่มีคู่มือและน่ารำคาญวิธีการทำงานของฉัน!


ไม่ ... สิ่งที่ฉันกำลังมองหา แต่ขอบคุณ
เนลสันเรส์

ขออภัยฉันรู้ว่าไม่ใช่คำตอบที่ดี แต่เพิ่งบอกว่าฉันไม่เคยพบเครื่องมือที่ดีสำหรับไฟล์ PDF
William Hilsum

3
ข้ามดวงตาของคุณเพื่อให้สำเนาสองชุดซ้อนทับกันและความแตกต่างใด ๆ จะดูเหมือนว่าจะสั่นไหว : D
endolith

รุ่นที่เหมาะสมของวิธีการนี้: เปิดทั้งสองไฟล์ PDF ในโปรแกรมอ่าน acrobat เต็มหน้าจอผ่าน CTRL + L จากนั้นใช้ CTRL + F6 เพื่อสลับระหว่างไฟล์ PDF ทุกอย่างที่ย้ายแตกต่างกัน ...
Bernard Vander Beken

1

ที่นี่คุณสามารถอัปโหลดไฟล์ PDF สองไฟล์และรับหนึ่งในสามซึ่งจะแสดงให้คุณเห็นถึงความแตกต่างระหว่างทั้งสอง

ทำงานได้บนทุกแพลตฟอร์มไม่มีอะไรที่จะเรียนรู้หรือติดตั้งและฟรี

https://synodins.com/apps/pdf_difference/intro.html


0

โซลูชันที่ดีกว่า:

  1. แปลงไฟล์ PDF ไปยังเอกสาร Microsoft Word ใช้หนึ่งในเว็บไซต์ที่ทำเช่นนี้ได้ฟรี
  2. ใช้ฟังก์ชันการเปรียบเทียบเอกสารใน Word

การจัดรูปแบบใน PDF นั้นซับซ้อนและประเภทของการเปลี่ยนแปลงที่คุณกำลังมองหาซึ่งอาจเป็นสิ่งที่ตกลง


ในกรณีนี้มันคงเป็นเรื่องยากเนื่องจากมีเอกสาร PDF จำนวนมากและการแก้ไขเกิดขึ้นบ่อยมาก แต่ขอบคุณสำหรับคำแนะนำ
เนลสันเรส์

ยังไม่ยอดเยี่ยมสำหรับเอาต์พุต LaTeX - ฉันไม่พบตัวแปลงเหล่านี้ตัวใดตัวหนึ่งที่จัดการ ligatures เป็นต้นอย่างถูกต้อง
Chris H

0

เชิงพาณิชย์: คุณสามารถใช้โปรแกรม Adobe Acrobat เดิมมืออาชีพสำหรับมหันต์ $ 449:
เปรียบเทียบแก้ไขไฟล์ PDF เป็นรุ่นก่อนหน้านี้

หากคุณตัดสินใจเกี่ยวกับ Acrobat ความคิดเห็นในหน้านี้เกี่ยวข้องกับการใช้งาน


"สำหรับราคา $ 449" ... และพื้นที่ว่างในดิสก์กี่ MB
ฮิวจ์อัลเลน

3
@Hugh Allen: นรกของพื้นที่ดิสก์จำนวนมากและไม่กี่หมื่นรายการในรีจิสทรี bloatware ที่แท้จริง
harrymc

อัปเดตบทความช่วยเหลือสำหรับ Adobe Acrobat XI: adobe.com/uk/products/acrobat/file-compare-two-pdf-files.html
Squig

และมันก็มีบั๊กกี้อยู่ดี: forums.adobe.com/thread/647854?tstart=0
Michal Sokolowski


0

สำหรับรูปแบบดั้งเดิมของการเลื่อนแบบซิงโครไนซ์ระหว่างไฟล์ PDF สองไฟล์คุณสามารถใช้สคริปต์ autohotkey ต่อไปนี้ที่ฉันเขียน ถือว่าคุณมีหน้าต่าง SumatraPDF สองหน้าต่างที่เปิดอยู่ กดขวาเพื่อไปยังหน้าถัดไปในทั้งสองหน้าต่างกดซ้ายสำหรับหน้าก่อนหน้า

#IfWinActive ,SumatraPDF
Right::
orig := WinExist("A")
WinGet, outvar, List, SumatraPDF
win1 := outvar1
win2 := outvar2
WinActivate, ahk_id %win1%
sendinput {Right}
WinActivate, ahk_id %win2%
sendinput {Right}
WinActivate, ahk_id %orig%
return

Left::
orig := WinExist("A")
WinGet, outvar, List, SumatraPDF
win1 := outvar1
win2 := outvar2
WinActivate, ahk_id %win1%
sendinput {Left}
WinActivate, ahk_id %win2%
sendinput {Left}
WinActivate, ahk_id %orig%
return

0

ฉันใช้โซลูชันนี้ (ไม่เหมาะ แต่สำหรับฉันเพียงพอ):

  • แปลง PDF เป็นข้อความธรรมดา (ในกรณีของฉันกับ Adobe Reader, แอพฟรี)
  • ใช้ opendiff (มาพร้อมกับ XCode, ฟรี) และดูการเปลี่ยนแปลง


0

นอกจากนี้ยังมีออนไลน์ฟรีhttps://www.diffchecker.com/diff

แต่จะเน้นเฉพาะความแตกต่างของข้อความโดยไม่มีรูปภาพและการจัดรูปแบบ และมันอ่อนแอเกินไปในการจับคู่ส่วนที่ไม่เปลี่ยนแปลงในไฟล์ขนาดใหญ่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.