Pendahuluan

PDF adalah standar de‑facto untuk kontrak, spesifikasi, laporan, dan pengajuan regulasi — dan dengan banyak versi yang beredar, melacak apa yang berubah antara dua file dengan cepat menjadi pekerjaan yang melelahkan. Menggulung dokumen berdampingan dan memberi anotasi perbedaan secara manual tidak skalabel, dan bahkan alat khusus seperti fitur Compare pada Adobe Acrobat memerlukan intervensi manual untuk setiap pasangan file.

GroupDocs.Comparison for .NET memungkinkan Anda menjalankan perbandingan PDF sepenuhnya dari kode dan memilih cara hasil ditampilkan. Versi 26.4 memperkenalkan kelas PdfCompareOptions khusus dengan tiga mode tampilan output:

  1. Inline (default) — satu PDF gabungan di mana penghapusan dan penyisipan disorot dengan warna berbeda pada halaman yang sama. Ini adalah perilaku klasik dan merupakan hasil paling mudah dibagikan sebagai file mandiri.
  2. Side‑by‑Side — setiap halaman hasil menampilkan halaman sumber dan target yang ditempatkan berdampingan, tanpa tumpang tindih konten. Ideal ketika dokumen sangat berbeda dan mencampur konten pada satu halaman akan membingungkan.
  3. Interleaved — hasil berisi halaman bergantian: halaman ganjil berasal dari sumber (penghapusan disorot), halaman genap dari target (penyisipan disorot). Perubahan direpresentasikan sebagai anotasi PDF native — tipe objek PDF bawaan yang membawa metadata seperti jenis perubahan dan nama penulis. Sebagian besar penampil PDF (Adobe Acrobat Reader, Foxit, dll.) memungkinkan pengguna membuka panel anotasi dan menerima atau menghapus anotasi secara individual, menjadikannya alur tinjauan ringan tanpa perangkat lunak tambahan. Membuka file ini dalam pembaca PDF dengan Two Page View menghasilkan perbandingan kiri/kanan yang alami.

Dalam artikel ini kami akan menelusuri ketiga mode dengan contoh C# yang dapat dijalankan, mengeksplorasi PdfCompareOptions dan propertinya, serta sekilas tentang cara melakukan tugas yang sama secara manual di Adobe Acrobat.


Membandingkan PDF di Adobe Acrobat

Sebelum menyelam ke pendekatan programatik, ada baiknya mengetahui apa yang ditawarkan Adobe Acrobat Pro secara default. Alat Compare Files bawaan Acrobat (tersedia di Tools → Compare Files) menghasilkan laporan side‑by‑side yang menyoroti perubahan teks, perbedaan gambar, dan pergeseran format.

Cara menjalankan perbandingan di Acrobat Pro:

  1. Buka Acrobat Pro dan pilih Tools → Compare Files.
  2. Pilih Older File (sumber) dan Newer File (target).
  3. Klik Compare. Acrobat menghasilkan laporan perbandingan interaktif dengan halaman ringkasan dan penanda perubahan inline.

Ini bekerja baik untuk tinjauan manual sesekali. Namun, alat perbandingan Acrobat memiliki keterbatasan signifikan ketika perbandingan harus menjadi bagian dari pipeline otomatis.

Ketika perbandingan harus terjadi di server, dalam pipeline CI/CD, atau sebagai bagian dari alur kerja tinjauan khusus, pustaka berbasis kode adalah alat yang tepat.


Prasyarat

Sebelum Anda mulai:

  • .NET 6.0 atau yang lebih baru.
  • GroupDocs.Comparison for .NET 26.4 atau yang lebih baru — instal via NuGet:
dotnet add package GroupDocs.Comparison
  • File lisensi (GroupDocs.Comparison.lic). Tanpa lisensi pustaka berjalan dalam mode evaluasi dengan watermark dan batas jumlah halaman. Anda dapat meminta lisensi sementara untuk pengujian.
  • Dua file PDF untuk dibandingkan — kami akan menyebutnya source.pdf dan target.pdf. Contoh konten:
source.pdf target.pdf

Mode 1: Perbandingan Inline (Default)

Kapan digunakan: Anda menginginkan satu file PDF mandiri yang dapat dibuka siapa saja dan langsung melihat apa yang berubah — tanpa memerlukan penampil khusus atau tata letak dua halaman. Skenario tipikal adalah berbagi draf kontrak ber‑redline dengan pihak lawan.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.pdf"))
{
    comparer.Add("target.pdf");

    var options = new PdfCompareOptions
    {
        DisplayMode = PdfCompareOptions.ComparisonDisplayMode.Inline
    };

    comparer.Compare("result_inline.pdf", options);
}

Catatan: Inline adalah nilai default DisplayMode, sehingga blok options di atas bersifat opsional. Pemanggilan sederhana comparer.Compare("result_inline.pdf") menghasilkan output yang sama.

Dokumen hasil dalam mode Inline:

PDF comparison result in Inline mode

Apa yang terjadi di balik layar:

  • Konten yang dihapus dari dokumen sumber disorot dengan satu warna (merah secara default).
  • Konten yang disisipkan dari dokumen target disorot dengan warna lain (hijau secara default).
  • Kedua set perubahan berada pada halaman yang sama, sehingga hasilnya kompak namun dapat terlihat ramai ketika dokumen sangat berbeda. Dengan edit teks yang substansial, konten yang dihapus dan disisipkan dapat tumpang tindih secara fisik pada halaman — misalnya, paragraf yang diganti ditampilkan di atas paragraf asli, menghasilkan kekacauan yang tidak dapat dibaca. Pada kasus seperti itu mode SideBySide atau Interleaved lebih cocok.

Mode 2: Perbandingan Side‑by‑Side

Kapan digunakan: Kedua dokumen sangat berbeda dan menempatkan penghapusan serta penyisipan pada halaman yang sama akan membuat hasil sulit dibaca. Side‑by‑Side menjaga konten sumber dan target terpisah secara ketat, memudahkan pemindaian tiap halaman sekilas.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.pdf"))
{
    comparer.Add("target.pdf");

    var options = new PdfCompareOptions
    {
        DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide
    };

    comparer.Compare("result_side_by_side.pdf", options);
}

Dokumen hasil dalam mode Side‑by‑Side:

PDF comparison result in Side-by-Side mode

Apa yang terjadi di balik layar:

  • Setiap halaman hasil pada dasarnya adalah kanvas lebar yang dibagi menjadi dua setengah.
  • Setengah kiri menampilkan halaman sumber yang bersangkutan dengan penghapusan disorot.
  • Setengah kanan menampilkan halaman target dengan penyisipan disorot.
  • Konten dari dua dokumen tidak pernah tumpang tindih, sehingga bahkan halaman yang banyak diedit tetap dapat dibaca.

Mode 3: Perbandingan Interleaved

Kapan digunakan: Anda ingin meninjau perubahan halaman demi halaman dalam pembaca PDF standar menggunakan Two Page View (atau mode “Facing Pages”). Setiap halaman sumber berada di kiri, halaman target yang bersesuaian di kanan — tata letak fisik mencerminkan apa yang ditampilkan Side‑by‑Side pada satu kanvas, namun setiap halaman dipertahankan dalam ukuran penuh.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.pdf"))
{
    comparer.Add("target.pdf");

    var options = new PdfCompareOptions
    {
        DisplayMode = PdfCompareOptions.ComparisonDisplayMode.Interleaved,
        AnnotationAuthorName = "GroupDocs"
    };

    comparer.Compare("result_interleaved.pdf", options);
}

Dokumen hasil dalam mode Interleaved (ditampilkan dalam Two Page View):

PDF comparison result in Interleaved mode viewed in Two Page View

Apa yang terjadi di balik layar:

  • Dokumen hasil berisi 2 × N halaman untuk pasangan sumber/target berjumlah N halaman.
  • Halaman bernomor ganjil (1, 3, 5 …) adalah halaman sumber dengan penghapusan disorot.
  • Halaman bernomor genap (2, 4, 6 …) adalah halaman target dengan penyisipan disorot.
  • AnnotationAuthorName menempelkan nama penulis pada anotasi PDF yang dihasilkan selama perbandingan — berguna ketika hasil masuk ke alur kerja tinjauan di mana komentar dari beberapa penulis harus dapat dibedakan.

Tip: buka hasil di Adobe Acrobat Reader atau penampil apa pun yang mendukung View → Page Display → Two Page View untuk mendapatkan tata letak kiri/kanan secara otomatis.


Membatasi Perbandingan pada Rentang Halaman

Ketiga mode mendukung penyaringan rentang halaman melalui properti PagesSetup. Ini berguna ketika hanya bab atau bagian tertentu dari dokumen besar yang berubah dan Anda ingin melewatkan sisanya.

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source.pdf"))
{
    comparer.Add("target.pdf");

    var options = new PdfCompareOptions
    {
        DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide,
        PagesSetup = new PagesSetup
        {
            StartPage = 3,
            EndPage = 10
        }
    };

    comparer.Compare("result_pages_3_to_10.pdf", options);
}

Ketika PagesSetup bernilai null (atau tidak diset), semua halaman dibandingkan — perilaku yang sama seperti pada versi sebelumnya.


Menjelajahi PdfCompareOptions

PdfCompareOptions adalah subclass khusus PDF dari CompareOptions, mengikuti pola yang sama seperti WordCompareOptions yang diperkenalkan pada versi 26.2. Ia mengelompokkan semua pengaturan khusus PDF dalam satu tempat sehingga Anda tidak secara tidak sengaja menerapkan opsi khusus Word atau spreadsheet pada pekerjaan PDF.

Properti Tipe Deskripsi
DisplayMode ComparisonDisplayMode Mengontrol tata letak hasil: Inline (default), SideBySide, atau Interleaved.
PagesSetup PagesSetup Rentang halaman yang akan dibandingkan. Jika null, semua halaman diproses.
CompareImagesPdf bool Apakah menyertakan gambar ter‑embed dalam perbandingan.
AnnotationAuthorName string Nama penulis yang dicetak pada anotasi PDF (digunakan pada mode Interleaved).
ImagesInheritanceMode enum Mengontrol dokumen mana yang menyediakan gambar ketika perbandingan gambar dinonaktifkan.

Contoh konfigurasi lengkap:

var options = new PdfCompareOptions
{
    DisplayMode = PdfCompareOptions.ComparisonDisplayMode.Interleaved,
    CompareImagesPdf = true,
    AnnotationAuthorName = "Review Bot",
    PagesSetup = new PagesSetup { StartPage = 1, EndPage = 5 }
};

Properti dasar yang diwarisi dari CompareOptionsInsertedItemStyle, DeletedItemStyle, ChangedItemStyle — juga tersedia, memungkinkan Anda mengganti warna sorotan default bila diperlukan.


Mengambil Perubahan secara Programatik

Terlepas dari mode tampilan, Anda dapat memperoleh daftar terstruktur semua perbedaan yang terdeteksi melalui Comparer.GetChanges(). Ini berguna untuk membuat laporan khusus, memasukkan hasil ke sistem tinjauan, atau mengumpulkan statistik tentang ruang lingkup edit.

using (var comparer = new Comparer("source.pdf"))
{
    comparer.Add("target.pdf");

    comparer.Compare("result.pdf");

    var changes = comparer.GetChanges(); // mengembalikan ChangeInfo[]
    Console.WriteLine($"Total changes detected: {changes.Length}");
}

Lihat referensi API resmi untuk detailnya: Comparer.GetChanges.


Bekerja dengan PDF yang Dilindungi Kata Sandi

PDF yang dilindungi kata sandi didukung sepenuhnya. Berikan kata sandi melalui LoadOptions saat membuat Comparer:

using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;

using (var comparer = new Comparer("source_protected.pdf",
    new LoadOptions { Password = "secret" }))
{
    comparer.Add("target_protected.pdf", new LoadOptions { Password = "secret" });

    var options = new PdfCompareOptions
    {
        DisplayMode = PdfCompareOptions.ComparisonDisplayMode.SideBySide
    };

    comparer.Compare("result_protected.pdf", options);
}

Dapatkan Versi Percobaan Gratis

Anda dapat mengunduh GroupDocs.Comparison for .NET dari halaman rilis resmi. Untuk pengujian tanpa batas, minta lisensi sementara — tidak memerlukan kartu kredit.


Pertanyaan yang Sering Diajukan

T: Apakah saya memerlukan Adobe Acrobat atau perangkat lunak PDF lain yang terpasang di server?
J: Tidak. GroupDocs.Comparison adalah pustaka .NET mandiri yang membaca dan menulis file PDF tanpa ketergantungan pihak ketiga.

T: Mode tampilan mana yang sebaiknya saya gunakan secara default?
J: Mulailah dengan Inline — ia menghasilkan hasil paling kompak dan paling mudah dibagikan. Beralih ke SideBySide ketika edit berat membuat tampilan inline sulit dibaca, atau gunakan Interleaved ketika peninjau akan membuka hasil dalam pembaca PDF dengan Two Page View.

T: Bisakah saya membandingkan dokumen dalam format selain PDF?
J: Ya — pustaka mendukung dokumen Word, spreadsheet Excel, presentasi PowerPoint, file teks biasa, dan banyak lagi. Daftar lengkap ada di dokumentasi.

T: Apa yang terjadi jika saya tidak memasang lisensi?
J: Pustaka berjalan dalam mode evaluasi. Dokumen output akan berisi watermark dan hanya beberapa halaman pertama yang diproses. Lisensi sementara menghapus pembatasan ini untuk pengujian.

T: Bisakah saya membandingkan hanya gambar di dalam PDF dan mengabaikan perubahan teks?
J: Gunakan CompareImagesPdf = true pada PdfCompareOptions untuk menyertakan perbandingan gambar. Untuk fokus eksklusif pada gambar Anda dapat menggabungkannya dengan properti ImagesInheritanceMode; lihat referensi API untuk detailnya.


Kesimpulan

GroupDocs.Comparison for .NET 26.4 memberi Anda kontrol kode yang tepat atas cara hasil perbandingan PDF disajikan. Mode Inline mencakup kasus penggunaan paling umum — PDF ber‑redline tunggal yang dapat dibagikan. SideBySide menjaga konten yang banyak diubah tetap bersih dan dapat dibaca. Interleaved berpasangan secara alami dengan mode Two Page View pada penampil PDF mana pun untuk penelusuran halaman demi halaman berukuran penuh. Di atas itu, penyaringan rentang halaman memungkinkan Anda menargetkan tepat bagian yang penting, dan PdfCompareOptions mengkonsolidasikan semua pengaturan khusus PDF dalam satu kelas yang mudah ditemukan.

Pilih mode yang sesuai dengan alur kerja Anda, atau hasilkan ketiganya dan biarkan masing‑masing audiens memilih tampilan yang mereka sukai.

Sumber Daya Tambahan