Bagaimana cara membandingkan perbedaan antara dua file PDF pada Windows?

205

Apakah Anda tahu cara yang baik untuk membandingkan file PDF berdampingan dan menunjukkan modifikasi di antara keduanya?

Saya mencari perangkat lunak Windows untuk mencapai ini. Alangkah baiknya jika Anda dapat memposting produk gratis dan tidak-bebas.

Nelson Reis
sumber
1
Ada perpustakaan GRATIS untuk membandingkan piksel pdf dengan piksel. Lihat blog ini: testautomationguru.com/...
Vinoth S

Jawaban:

109

Coba WinMerge dengan plugin xdocdiff . Keduanya sepenuhnya gratis. Tidak ada ikatan.


Beberapa komentar di bawah ini menunjukkan mereka tidak melihat perbedaan. Itu berarti plug-in tidak diinstal dengan benar. Begini caranya:

  1. Letakkan file di mana file xdocdiffreadme plugin mengatakan untuk meletakkannya (ada dua tempat; Saya tidak akan mencantumkannya di sini karena nama file dapat berubah, dll. - baca readme)

  2. Di WinMerge, buka Plugin> Daftar dan centang kotak centang "Aktifkan Plugin" (langkah ini hilang dari xdocdiffreadme)

  3. Di WinMerge, pilih Plugins> Automatic Unpacking (ini dinonaktifkan sebelum langkah 2)

Kemudian ketika membandingkan, Anda akan melihat seperti apa file teks di jendela perbandingan.

TJ Crowder
sumber
Mencoba ini tetapi tidak dapat melihat perbedaan ketika tidak menggunakan plugin xdocdiff. Apakah ada opsi untuk dipilih di UI WinMerge?
Umber Ferrule
1
Apa tujuan melihat teks biner dalam PDF? Saya berharap untuk melihat perbedaan visual seperti yang dilakukan oleh i-net PDFC .
JJD
Apakah ada cara untuk membuat kolom pegangan ini patah? Tanpanya satu perubahan kaskade menjadi beberapa.
Stuart
1
Plugins > List and tick the "Enable Plugins" checkboxadalah apa yang hilang untuk saya!
Seph
Banyak karakter yang hilang dari versi teks PDF yang ditampilkan di WinMerge diff windows
cja
168

Di Linux dan Windows Anda dapat menggunakan diffpdf(yang berbeda dari yang diff-pdfdisebutkan di utas ini).

masukkan deskripsi gambar di sini

Di Ubuntu instal menggunakan:

sudo apt-get install diffpdf

Lihat lebih lanjut halaman UbuntuGeek ini tentang membandingkan pds secara tekstual atau visual .

Untuk Windows , versi Windows Diffpdf ini bekerja sangat bagus. Anda dapat mengunduh dari http://soft.rubypdf.com/software/diffpdf (gulir ke bawah ke versi statis Win32 ).

emacsomancer
sumber
12
Nama yang tepat adalah DiffPDF (seperti yang terlihat pada tangkapan layar) dan didasarkan pada pustaka Qt 4 dan Poppler, sehingga mudah dibawa. Lihat beranda DiffPDF : qtrac.eu/diffpdf.html . Informasi tentang Windows build ada di sini: soft.rubypdf.com/software/diffpdf . Dan instruksi instalasi Anda juga berfungsi pada Debian.
przemoc
3
Halaman rumah DiffPDF sekarang memiliki tautan untuk Linux, penginstal Windows, dan penginstalan DMG Mac juga ( qtrac.eu/diffpdf.html ).
Studgeek
6
DiffPDF adalah alat paling canggih yang disajikan di sini, menurut pendapat saya. Tidak hanya menawarkan perbandingan grafis yang bagus, tetapi juga melacak perubahan lebih pintar dari yang lain, misalnya xdocdiff untuk WinMerge. Namun, ada satu masalah serius: Ini membatasi perbandingan ke halaman. Itu berarti, jika Anda memiliki beberapa teks pada halaman 2 dari dokumen A, tetapi teks ini pindah ke halaman 3 dalam dokumen B, maka alat berpikir itu pergi dalam A dan ditambahkan dalam B.
caw
7
Versi gratis yang lebih lama dapat ditemukan di sini
Shafik Yaghmour
3
Saya mencoba menggunakan ini untuk novel yang saya ekspor ke PDF. Sayangnya alat tersebut kehilangan jejak setelah sekitar 10 halaman dan menganggap semuanya "berbeda", meskipun bagian yang besar persis sama.
Eric J.
42

Saya baru-baru ini menemukan ini dan saya menyukainya.

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

Lintas platform, gratis, dan berfungsi dengan baik.

Berikut ini adalah screenshot dari diff-pdftindakan - perhatikan bahwa teks tidak berbeda dalam PDF, tetapi hanya font (dan juga pengaturan tata letak):

diff-pdf.png

Panggilan untuk mendapatkan gambar itu adalah:

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

 

... tempat testA.pdf / testB.pdf diperoleh dengan menyusun file Lateks sederhana ini pdflatex(sesuai untuk setiap pdf, lihat komentar):

\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}
Sathya
sumber
10
Hanya satu catatan lagi tentang diff-pdf: DiffPDF sangat bagus untuk perbandingan visual yang cepat dengan sisi-sisi dari teks yang diubah, tetapi secara praktis tidak mungkin untuk men-debug hal-hal seperti, katakanlah, perubahan kecil dalam penspasian garis - diff-pdfdi sisi lain, pada dasarnya menempatkan konten halaman dari kedua file yang dibandingkan pada halaman yang sama (tetapi dengan warna berbeda) - sehingga masalah penspasian baris dapat dengan mudah diidentifikasi ... Ceria!
sdaau
Ini bagus! Apakah ada cara untuk melacak progres pada file besar saat mengeluarkan ke file PDF (tidak menggunakan opsi --view)? Opsi verbose / v sepertinya tidak melakukan apa-apa. Juga ketika Anda menjalankan perintah untuk menghasilkan PDF membandingkan itu berjalan dalam proses terpisah sehingga tidak menghentikan prompt perintah seperti biasanya terjadi ketika Anda menjalankan sesuatu dari prompt.
LukeS
Ini yang saya butuhkan. Saya membandingkan laporan PDF tentang eksekusi numerik, jadi saya mencari perbedaan dalam satu digit di seluruh halaman. Masalahnya adalah, saya tidak dapat mengidentifikasi karakter cyan, tetapi mengetahui di mana perbedaannya, sudah cukup untuk menemukannya di laporan asli.
manuelvigarcia
22

Kami juga perlu membandingkan PDF di perusahaan kami dan tidak puas dengan solusi yang kami temukan, jadi kami membuat sendiri: i-net PDFC . Ini tidak gratis, tetapi kami menawarkan uji coba 30 hari.

Ini ditulis dalam Java, jadi ini cross-platform.

tangkapan layar

Apa yang membuatnya istimewa adalah bahwa membandingkan konten yang bertentangan dengan hanya teks (atau hanya mengkonversi pdf ke gambar dan membandingkan gambar). Ini juga memiliki alat perbandingan visual yang bagus.

Epaga
sumber
1
Sedikit perangkat lunak yang bagus.
Umber Ferrule
Saya tidak bisa melakukan ini. Memuat dua file dan mengklik tombol bandingkan dan tidak ada yang terjadi.
Craig Fisher
1
Menangani perbedaan lintas halaman dengan benar. Memiliki fungsi ekspor / cetak. Profil perbandingan yang berbeda (termasuk custom). Arahkan mouse memberi Anda lebih banyak detail tentang apa yang berubah. Tampak hebat. Kerugiannya adalah uji coba / biaya dan tidak menangani gerakan. Jelas lebih unggul daripada alat-alat yang lebih tinggi memilih IMO.
Jonathan Gawrych
@JonathanGawrych terima kasih atas kata-kata yang baik! Apa yang Anda maksud dengan "gerakan", tepatnya? Mungkin kita bisa menambahkan fungsionalitas itu ...
Epaga
@ Epaga Jika suatu bagian teks dipindahkan dari satu halaman ke halaman lainnya, ini akan ditampilkan sebagai hapus dan tambahan. Misalnya membandingkan proposal c ++ N4663 dan N4680 . Lihat di sekitar halaman 19, sebuah contoh dipindahkan dari paragraf 11 ke 8, namun diperlakukan sebagai tambahan / penghapusan. Untuk melihat perbedaan yang sebenarnya, seseorang perlu secara manual mendeteksi sesuatu yang dipindahkan, kemudian menyalin contoh ke alat diff lain untuk melihat hal-hal ditambahkan ke contoh (unhandled_exception, return_void, dll.)
Jonathan Gawrych
12

Anda juga dapat menggunakan Adobe Acrobat X. Ini memiliki fungsi perbandingan PDF yang dibangun di bawah "Lihat -> Bandingkan Dokumen.

Babak Farrokhi
sumber
1
Acrobat atau Acrobat Reader? perangkat lunak Pembaca tidak memiliki ini
Jason S
4
AcrobatX Pro adalah satu-satunya versi yang memiliki fitur ini. "Just plain AcrobatX" tidak.
Carl Witthoft
2
Di Acrobat 9 Pro itu di bawah menu Dokumen.
svinto
10

Saya ingin melakukan ini (beda PDF) baru-baru ini dengan persyaratan:

  • abaikan spasi putih, pemisah baris, pemisah halaman, dll.
  • dengan mudah melihat ketika hanya beberapa kata yang berubah, tidak hanya seluruh baris / paragraf.
  • keluaran warna diff

Saya menginstal pdftotext, wdiff, dan colordiff, tersedia di berbagai manajer paket. (Dengan macports: sudo port install poppler wdiff colordiff)

Kemudian:

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

Sekarang saya bisa melihat kata-kata mana yang berwarna indah, yang telah berubah.

Lebih detail: http://philfreo.com/blog/how-to-view-a-color-diff-of-text-from-two-pdfs/

Variasi:

Menggunakan dwdiffdapat menghasilkan hasil yang sedikit lebih baik.

Saya juga ingin output HTML sehingga skrip kecil ini membuat halaman web dasar dengan sedikit CSS.

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

Kemudian buka q.htmldengan browser web Anda.

pc-script.bash mengajukan:

#!/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

Contoh output bisa dilihat di sini

masukkan deskripsi gambar di sini

philcolbourn
sumber
@philcolbourn Google+ sedang ditutup, mungkin berbagi tangkapan layar melalui imgur?
myrdd
fwiw, saya menemukan repo kecil ini: github.com/tpltnt/cli-diffpdf/blob/master/cli-diffpdf.sh
myrdd
Jika Anda menggunakan Windows, Mac, Fedora, openSUSE atau Anda mampu mengkompilasi binari dari sumber untuk sistem Anda, diff-pdf adalah solusi yang lebih baik yang menyelesaikan ini tanpa perlu menginstal tiga dependensi berbeda. Jangan bingung dengan diffpdf yang disebutkan dalam jawaban lain, yang berfungsi hanya melalui GUI.
Hashim
Perhatikan bahwa pc-script.bashskrip tidak luput dari karakter untuk HTML.
Federico
7

Jika Anda membandingkan teks di dalam pdf, maka Beyond Compare melakukannya.

Tidak gratis, tetapi ada uji coba tiga puluh hari.

sgmoore
sumber
Yap, New > Text Comparemembantu saya melihat perbedaan mendasar dalam teks antara 2 file PDF.
Ryan
6

Alat hebat dan mudah digunakan: Compare-It v4 (dari http://www.grigsoft.com/ )

Membandingkan berbagai jenis file. Ini memiliki beberapa konverter bawaan, termasuk satu untuk file PDF.

Saya sudah menggunakannya beberapa kali dengan hasil yang memuaskan.

Benar-benar harus mencoba ini. Versi percobaan memungkinkan perbandingan untuk waktu yang tidak terbatas.

WimV
sumber
1
Ini yang terbaik dan termudah bagi saya. Terima kasih!
Ankur Jain
Alat termudah dan paling sederhana yang saya temukan untuk digunakan. Saya berharap saya dapat memperbaiki ini lebih dari sekali!
Chad
Untuk PDF perbandingan tampaknya bersifat tekstual. Rilis terakhir pada tahun 2010. Anda dapat membayar untuk itu tetapi yakin apa bedanya - saya tidak melihat adanya batasan?
Zitrax
1

Gratis, Bukan yang terbaik tapi ...

Saya membuka kedua dokumen dan meminta mereka membagi layar satu sama lain.

Bukan solusi yang paling praktis, tetapi berhasil!

Saya belum melihat paket DIFF yang baik untuk file PDF dan sementara manual dan menjengkelkan, cara saya berfungsi!

William Hilsum
sumber
Hum ... tidak cukup apa yang saya cari, tapi terima kasih.
Nelson Reis
Maaf, saya tahu bukan jawaban yang baik tetapi hanya mengatakan bahwa saya belum pernah menemukan alat yang baik untuk file PDF.
William Hilsum
3
silangkan mata Anda sehingga kedua salinan saling tumpang tindih, dan segala perbedaan akan tampak berkedip. : D
endolith
Versi yang dioptimalkan dari metode ini: buka kedua file PDF di layar penuh acrobat reader melalui CTRL + L, kemudian gunakan CTRL + F6 untuk beralih di antara file PDF, apa pun yang bergerak berbeda ...
Bernard Vander Beken
1

Di sini Anda dapat mengunggah dua pdf dan mendapatkan kembali yang ketiga yang akan menampilkan kepada Anda perbedaan di antara keduanya.

Bekerja pada semua platform, tidak ada yang belajar atau menginstal dan gratis.

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

Hermann Ingjaldsson
sumber
0

Solusi lain yang kurang ideal:

  1. Konversi kedua PDF ke dokumen Microsoft Word menggunakan salah satu situs web yang melakukan ini secara gratis .
  2. Gunakan fungsi perbandingan dokumen di Word.

Bergantung pada seberapa kompleks pemformatan dalam PDF dan jenis perubahan yang Anda cari, ini mungkin OK.

Dave Webb
sumber
Dalam hal ini akan sulit, karena ada banyak dokumen PDF dan modifikasi sering terjadi. Tapi terima kasih untuk sarannya.
Nelson Reis
Juga tidak bagus untuk keluaran LaTeX - Saya belum menemukan salah satu konverter ini yang menangani ligatures dll dengan benar.
Chris H
0

Komersial: Anda dapat menggunakan Adobe Acrobat Professional asli, dengan harga $ 449:
Bandingkan PDF yang direvisi dengan versi sebelumnya .

Jika Anda memutuskan Acrobat, komentar di halaman ini berkaitan dengan penggunaannya.

harrymc
sumber
"seharga $ 449" ... dan berapa MB ruang disk?
Hugh Allen
3
@ Hugh Allen: Persetan banyak ruang disk dan beberapa puluh ribu entri dalam registri. Sebuah bloatware asli.
harrymc
Artikel bantuan terbaru untuk Adobe Acrobat XI: adobe.com/uk/products/acrobat/file-compare-two-pdf-files.html
Squig
Dan itu buggy toh: forums.adobe.com/thread/647854?tstart=0
Michal Sokolowski
0

Diff Doc - tidak gratis.

Benteng
sumber
0

Untuk bentuk sinkronisasi yang sangat primitif antara dua file pdf, Anda dapat menggunakan skrip autohotkey berikut yang saya tulis. Ini mengasumsikan Anda memiliki dua jendela SumatraPDF terbuka. Tekan kanan untuk pergi ke halaman berikutnya di kedua jendela, tekan kiri untuk halaman sebelumnya.

#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
ivanatpr
sumber
0

Saya menggunakan solusi ini (tidak ideal, tetapi bagi saya cukup):

  • Konversi PDF ke teks biasa (dalam kasus saya dengan Adobe Reader, aplikasi gratis)
  • Gunakan opendiff (disertakan dengan XCode, gratis) dan lihat perubahannya
Ciryon
sumber
0

pdf-diff adalah paket Python untuk tujuan ini.

Ioannis Filippidis
sumber
Apakah ini hanya teks atau grafis?
endolith
0

Ada juga https://www.diffchecker.com/diff online gratis .

Tetapi hanya menyoroti perbedaan teks tanpa gambar dan pemformatan. Dan terlalu lemah dalam mencocokkan fragmen yang tidak berubah dalam file besar.

Vadzim
sumber