Bandingkan Dokumen

Membandingkan dokumen merupakan proses yang mengidentifikasi perubahan antara dua dokumen dan memuat perubahan tersebut sebagai revisi. Proses ini membandingkan dua dokumen, termasuk versi dari satu dokumen tertentu, kemudian perubahan antara kedua dokumen tersebut akan ditampilkan sebagai revisi pada dokumen pertama.

Metode perbandingan dicapai dengan membandingkan kata-kata pada tingkat karakter atau pada tingkat kata. Jika sebuah kata mengandung perubahan minimal satu karakter, pada hasilnya, perbedaan tersebut akan ditampilkan sebagai perubahan keseluruhan kata, bukan karakter. Proses perbandingan ini merupakan tugas yang biasa dilakukan dalam industri hukum dan keuangan.

Daripada mencari perbedaan antar dokumen atau versi berbeda secara manual, Anda dapat menggunakan Aspose.Words untuk membandingkan dokumen dan mendapatkan perubahan konten dalam format, header/footer, tabel, dan lainnya.

Artikel ini menjelaskan cara membandingkan dokumen dan cara menentukan properti perbandingan tingkat lanjut.

Batasan dan Format File yang Didukung

Membandingkan dokumen adalah fitur yang sangat kompleks. Ada beragam bagian dari kombinasi konten yang perlu dianalisis untuk mengenali semua perbedaan. Alasan kompleksitas ini adalah karena Aspose.Words bertujuan untuk mendapatkan hasil perbandingan yang sama dengan algoritma perbandingan Microsoft Word.

Batasan umum untuk dua dokumen yang dibandingkan adalah keduanya tidak boleh direvisi sebelum memanggil metode perbandingan karena batasan ini ada di Microsoft Word.

Bandingkan Dua Dokumen

Saat Anda membandingkan dokumen, perbedaan antara dokumen terakhir dan dokumen sebelumnya akan terlihat sebagai revisi terhadap dokumen sebelumnya. Saat Anda memodifikasi dokumen, setiap pengeditan akan memiliki revisi tersendiri setelah menjalankan metode perbandingan.

Aspose.Words memungkinkan Anda mengidentifikasi perbedaan dokumen menggunakan metode compare – ini mirip dengan fitur perbandingan dokumen Microsoft Word. Memungkinkan Anda memeriksa dokumen atau versi dokumen untuk menemukan perbedaan dan perubahan, termasuk modifikasi format seperti perubahan font, perubahan spasi, penambahan kata dan paragraf.

Dari hasil perbandingan, dokumen dapat ditentukan sama atau tidak sama. Yang dimaksud dengan dokumen “setara” adalah metode perbandingan tidak mampu merepresentasikan perubahan sebagai revisi. Artinya teks dokumen dan format teksnya sama. Namun mungkin terdapat perbedaan lain antar dokumen. Misalnya, Microsoft Word hanya mendukung revisi format untuk gaya, dan Anda tidak dapat mewakili penyisipan/penghapusan gaya. Jadi dokumen dapat memiliki kumpulan gaya yang berbeda, dan metode compare tetap tidak menghasilkan revisi.

Contoh kode berikut menunjukkan cara memeriksa apakah dua dokumen sama atau tidak:

Contoh kode berikut menunjukkan cara menerapkan metode Compare ke dua dokumen:

# The source document doc1.
doc1 = aw.Document()
builder = aw.DocumentBuilder(doc1)
builder.writeln("This is the original document.")

# The target document doc2.
doc2 = aw.Document()
builder = aw.DocumentBuilder(doc2)
builder.writeln("This is the edited document.")

# If either document has a revision, an exception will be thrown.
if (doc1.revisions.count == 0 and doc2.revisions.count == 0) :
    doc1.compare(doc2, "authorName", datetime.today())

# If doc1 and doc2 are different, doc1 now has some revisions after the comparison, which can now be viewed and processed.
self.assertEqual(2, doc1.revisions.count)

for r in doc1.revisions :
    print(f"Revision type: {r.revision_type}, on a node of type \"{r.parent_node.node_type}\"")
    print(f"\tChanged text: \"{r.parent_node.get_text()}\"")

# All the revisions in doc1 are differences between doc1 and doc2, so accepting them on doc1 transforms doc1 into doc2.
doc1.revisions.accept_all()

# doc1, when saved, now resembles doc2.
doc1.save(docs_base.artifacts_dir + "Document.Compare.docx")
doc1 = aw.Document(docs_base.artifacts_dir + "Document.Compare.docx")
self.assertEqual(0, doc1.revisions.count)
self.assertEqual(doc2.get_text().strip(), doc1.get_text().strip())

Tentukan Properti Perbandingan Lanjutan

Ada banyak properti berbeda dari kelas CompareOptions yang dapat Anda terapkan saat ingin membandingkan dokumen.

Misalnya, Aspose.Words memungkinkan Anda mengabaikan perubahan yang dibuat selama operasi perbandingan untuk tipe objek tertentu dalam dokumen asli. Anda dapat memilih properti yang sesuai untuk jenis objek, seperti ignore_headers_and_footers, ignore_formatting, ignore_comments, dan lainnya dengan mengaturnya ke True.

Selain itu, Aspose.Words menyediakan properti granularity yang dapat digunakan untuk menentukan apakah akan melacak perubahan berdasarkan karakter atau kata.

Properti umum lainnya adalah pilihan dokumen mana yang menunjukkan perubahan perbandingan. Misalnya, “Kotak dialog Bandingkan dokumen” di Microsoft Word memiliki opsi “Tampilkan perubahan” – ini juga mempengaruhi hasil perbandingan. Aspose.Words menyediakan properti target yang melayani tujuan ini.

Contoh kode berikut menunjukkan cara mengatur properti perbandingan lanjutan: