คุณรู้วิธีที่ดีในการเปรียบเทียบไฟล์ PDF แบบเคียงข้างกันและแสดงการแก้ไขระหว่างสองไฟล์หรือไม่
ฉันกำลังมองหาซอฟต์แวร์ Windows เพื่อทำสิ่งนี้ให้สำเร็จ มันจะดีถ้าคุณสามารถโพสต์ผลิตภัณฑ์ทั้งฟรีและไม่ฟรี
คุณรู้วิธีที่ดีในการเปรียบเทียบไฟล์ PDF แบบเคียงข้างกันและแสดงการแก้ไขระหว่างสองไฟล์หรือไม่
ฉันกำลังมองหาซอฟต์แวร์ Windows เพื่อทำสิ่งนี้ให้สำเร็จ มันจะดีถ้าคุณสามารถโพสต์ผลิตภัณฑ์ทั้งฟรีและไม่ฟรี
คำตอบ:
ลองWinMergeด้วยปลั๊กอินxdocdiff ทั้งสองอย่างฟรี ไม่มีการเชื่อมต่อสตริง
ความคิดเห็นสองข้อด้านล่างแนะนำว่าพวกเขาไม่เห็นความแตกต่างใด ๆ นั่นหมายความว่าปลั๊กอินไม่ได้รับการติดตั้งอย่างถูกต้อง นี่คือวิธี:
วางไฟล์ที่xdocdiff
ไฟล์ readme ของปลั๊กอินบอกว่าจะวางไว้ (มีสองตำแหน่งฉันจะไม่แสดงรายการที่นี่เนื่องจากชื่อไฟล์สามารถเปลี่ยนได้ ฯลฯ - อ่าน readme)
ใน WinMerge ไปที่ปลั๊กอิน> รายการและทำเครื่องหมายที่ช่อง "เปิดใช้งานปลั๊กอิน" (ขั้นตอนนี้จะหายไปจากxdocdiff
readme)
ใน WinMerge เลือกปลั๊กอิน> การเอาออกโดยอัตโนมัติ (สิ่งนี้ถูกปิดใช้งานก่อนขั้นตอนที่ 2)
จากนั้นเมื่อเปรียบเทียบคุณจะเห็นสิ่งที่ดูเหมือนไฟล์ข้อความในหน้าต่างเปรียบเทียบ
Plugins > List and tick the "Enable Plugins" checkbox
เป็นสิ่งที่ขาดหายไปสำหรับฉัน!
บน 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 )
ฉันเพิ่งพบสิ่งนี้และฉันรักมัน
https://github.com/vslavik/diff-pdf
ข้ามแพลตฟอร์มฟรีและทำงานได้ดี
นี่คือภาพหน้าจอของdiff-pdf
การทำงาน - โปรดทราบว่าข้อความไม่แตกต่างกันใน PDF แต่เป็นแบบอักษรเท่านั้น (และการตั้งค่าเค้าโครงเหมือนกัน):
การเรียกเพื่อให้ได้ภาพนั้นคือ:
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}
diff-pdf
: DiffPDFเป็นที่ดีสำหรับการเปรียบเทียบภาพอย่างรวดเร็วด้านโดยด้านข้างของข้อความที่มีการเปลี่ยนแปลง แต่มันเป็นจริงเป็นไปไม่ได้สิ่งที่แก้ปัญหาเช่นการพูดการเปลี่ยนแปลงเล็ก ๆ ในระยะห่างระหว่างบรรทัด - diff-pdf
ในมืออื่น ๆ โดยทั่วไปทำให้เนื้อหาหน้า จากไฟล์ที่เปรียบเทียบทั้งสองในหน้าเดียวกัน (แต่มีสีต่างกัน) - ดังนั้นปัญหาการเว้นวรรคบรรทัดสามารถระบุได้ง่าย ... ไชโย!
นอกจากนี้เรายังจำเป็นที่จะเปรียบเทียบไฟล์ PDF ที่ บริษัท ของเราและไม่พอใจกับการใด ๆ ของการแก้ปัญหาที่เราพบเพื่อให้เราทำของเราเอง: PDFC ฉันสุทธิ ไม่ฟรี แต่เราให้ทดลองใช้ 30 วัน
มันเขียนด้วยภาษาจาวาดังนั้นมันจึงข้ามแพลตฟอร์ม
สิ่งที่ทำให้มันพิเศษคือมันเปรียบเทียบเนื้อหาเมื่อเทียบกับข้อความเท่านั้น (หรือเพียงแค่แปลงไฟล์ PDF เป็นภาพและเปรียบเทียบภาพ) นอกจากนี้ยังมีเครื่องมือเปรียบเทียบภาพที่ดี
คุณยังสามารถใช้ Adobe Acrobat X ได้มันมีฟังก์ชั่นการเปรียบเทียบ PDF ในตัวภายใต้ "ดู -> เปรียบเทียบเอกสาร
ฉันต้องการทำสิ่งนี้ (diff PDF) เมื่อเร็ว ๆ นี้ด้วยข้อกำหนดเหล่านี้:
ฉันติดตั้ง 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
ตัวอย่างของเอาต์พุตสามารถดูได้ที่นี่
pc-script.bash
สคริปต์ไม่ได้ยกเว้นอักขระสำหรับ HTML
หากคุณกำลังเปรียบเทียบข้อความในรูปแบบ pdf แล้วBeyond Compareจะเป็นเช่นนี้
ไม่ฟรี แต่มีการทดลองใช้สามสิบวัน
New > Text Compare
ช่วยฉันเห็นความแตกต่างพื้นฐานของข้อความระหว่างไฟล์ PDF 2 ไฟล์
เครื่องมือที่ยอดเยี่ยมและใช้งานง่าย: Compare-It v4 (จากhttp://www.grigsoft.com/ )
เปรียบเทียบไฟล์หลายประเภท มันมีตัวแปลงบางส่วนในตัวรวมถึงตัวแปลงสำหรับไฟล์ PDF
ฉันใช้มันสองสามครั้งกับผลลัพธ์ที่น่าพอใจ
ควรลองสิ่งนี้จริงๆ รุ่นทดลองช่วยให้สามารถเปรียบเทียบได้ไม่ จำกัด เวลา
ไม่ทราบ แต่มีการเปรียบเทียบ PDF (ไม่ฟรี แต่สามารถทดลองใช้ได้ 30 วัน): http://www.compare-pdf.com/download.htm
ฟรีไม่ใช่สิ่งที่ดีที่สุด แต่ ...
ฉันเปิดเอกสารทั้งสองขึ้นและให้แยกหน้าจอออกจากกัน
ไม่ใช่วิธีแก้ปัญหาที่ใช้งานได้จริง แต่ใช้งานได้!
ฉันไม่ได้เห็นแพ็คเกจ DIFF ที่ดีสำหรับไฟล์ PDF และในขณะที่มีคู่มือและน่ารำคาญวิธีการทำงานของฉัน!
ที่นี่คุณสามารถอัปโหลดไฟล์ PDF สองไฟล์และรับหนึ่งในสามซึ่งจะแสดงให้คุณเห็นถึงความแตกต่างระหว่างทั้งสอง
ทำงานได้บนทุกแพลตฟอร์มไม่มีอะไรที่จะเรียนรู้หรือติดตั้งและฟรี
โซลูชันที่ดีกว่า:
การจัดรูปแบบใน PDF นั้นซับซ้อนและประเภทของการเปลี่ยนแปลงที่คุณกำลังมองหาซึ่งอาจเป็นสิ่งที่ตกลง
เชิงพาณิชย์: คุณสามารถใช้โปรแกรม Adobe Acrobat เดิมมืออาชีพสำหรับมหันต์ $ 449:
เปรียบเทียบแก้ไขไฟล์ PDF เป็นรุ่นก่อนหน้านี้
หากคุณตัดสินใจเกี่ยวกับ Acrobat ความคิดเห็นในหน้านี้เกี่ยวข้องกับการใช้งาน
Diff Doc - ไม่ฟรี
สำหรับรูปแบบดั้งเดิมของการเลื่อนแบบซิงโครไนซ์ระหว่างไฟล์ 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
ฉันใช้โซลูชันนี้ (ไม่เหมาะ แต่สำหรับฉันเพียงพอ):