Kami dengan senang hati mengumumkan rilis GroupDocs.Comparison for Java 26.11, tersedia sejak November 2026. Fitur utama adalah perbandingan gambar berbasis OCR: gambar kini dapat dibandingkan berdasarkan teks yang dikenali di dalamnya, bukan berdasarkan piksel. Perbandingan spreadsheet mengalami perombakan besar — baris dicocokkan berdasarkan konten, dan membandingkan lembar besar kini memakan hitungan detik bukan menit. Hasil PDF kini ditata dari halaman sumber, sama seperti di GroupDocs.Comparison untuk .NET, dan serangkaian perbaikan mencakup perbandingan teks, Word, presentasi, dan pratinjau HTML.

Apa yang baru di rilis ini

Kunci Ringkasan Kategori
COMPARISONNET-4925, COMPARISONNET-4934 Gambar dapat dibandingkan berdasarkan teks yang dikenali di dalamnya (OCR) bukan berdasarkan piksel Fitur
COMPARISONJAVA-1798, COMPARISONNET-4940, COMPARISONNET-4945 Baris spreadsheet dicocokkan berdasarkan konten: baris yang disisipkan atau dihapus tidak lagi menandai setiap baris berikutnya sebagai berubah Perbaikan
COMPARISONJAVA-1797, COMPARISONNET-4930 Perbandingan spreadsheet memakan hitungan detik bukan menit; diff teks lebih cepat di setiap format Perbaikan
COMPARISONJAVA-1796, COMPARISONNET-4946 Hasil XLSX: baris tanpa tinggi sendiri tetap menyesuaikan dengan kontennya Perbaikan
COMPARISONNET-4947 Hasil XLSX: angka dan tanggal yang tidak berubah mempertahankan tipe mereka alih-alih menjadi teks Perbaikan
COMPARISONNET-4944 StyleSettings.setHighlightColor mengisi latar belakang sel spreadsheet yang berubah Perbaikan
COMPARISONNET-4927, COMPARISONNET-4928, COMPARISONNET-4923 Teks: kata yang dipindahkan melintasi jeda baris tidak lagi dilaporkan dihapus dan dimasukkan kembali Perbaikan
COMPARISONNET-4403, COMPARISONNET-4891 Hasil PDF ditata dari halaman sumber: komponen pada posisinya, sel membungkus pada tepi masing‑masing Pembaruan
COMPARISONNET-4931 Hasil PDF inline menampilkan frasa yang diganti secara utuh: kata lama, lalu kata baru Perbaikan
COMPARISONNET-4896 Hasil PDF inline tidak lagi membungkus baris yang sedikit lebih panjang ke baris berikutnya Perbaikan
COMPARISONNET-4763 Hasil PDF tidak lagi menggambar kisi hitam di atas batas tabel Perbaikan
— Halaman PDF yang digambar melalui formulir (spreadsheet disimpan sebagai PDF) tidak lagi dianggap tidak berubah Perbaikan
— PDF: baris yang hanya berisi spasi tidak lagi dilaporkan sebagai perubahan Perbaikan
— PDF: daftar isi mempertahankan nomor halaman pada barisnya Perbaikan
COMPARISONNET-4926 Word: kolom atau baris tabel yang menjadi kosong tetap berada di tempat alih‑alih dihapus dan dimasukkan kembali Perbaikan
COMPARISONNET-4880 Presentasi: LoadOptions.setSkipExternalResources dan setWhitelistedResources kini berlaku Perbaikan
COMPARISONNET-4935 Pratinjau HTML: pratinjau bersamaan tidak lagi menimpa halaman satu sama lain; halaman yang diminta dipenuhi Perbaikan
COMPARISONJAVA-1794, COMPARISONJAVA-1795 Perpustakaan Aspose diperbarui Pembaruan

Perubahan perilaku yang perlu diperiksa sebelum memperbarui

  1. Dependensi baru. POM yang dipublikasikan menyatakan dependensi baru, Aspose.OCR for Java, yang hanya digunakan untuk perbandingan OCR. Dependensi ini membawa ONNX Runtime dengan pustaka native. Jika Anda tidak menggunakan OCR, Anda dapat mengecualikannya — semua perbandingan lain berfungsi tanpa itu (lihat Cara mendapatkan pembaruan).
  2. Perubahan spreadsheet. Ketika baris disisipkan atau dihapus, perbandingan spreadsheet melaporkan perubahan yang berbeda — dan biasanya jauh lebih sedikit — karena baris kini dicocokkan berdasarkan konten.
  3. Tata letak PDF. Hasil PDF ditata secara berbeda: setiap komponen tetap berada di tempatnya pada halaman sumber.
  4. Urutan penggantian. Pada hasil teks dan PDF inline, kata atau frasa yang diganti kini ditampilkan dulu yang lama, kemudian yang baru.
  5. Mode evaluasi. Hanya 2 halaman pertama PDF yang dibandingkan dalam mode evaluasi, seperti pada GroupDocs.Comparison untuk .NET.

Fitur baru: membandingkan gambar berdasarkan teks yang dikenali (OCR)

Sebuah gambar kini dapat dibandingkan berdasarkan teks yang dibaca Aspose.OCR di dalamnya, bukan berdasarkan pikselnya. Ini pilihan tepat untuk pemindaian, foto, dan tangkapan layar dokumen, di mana teks yang sama tidak pernah menghasilkan piksel yang sama — halaman yang dipindai ulang dengan sedikit pergeseran atau kualitas berbeda tidak lagi menunjukkan perbedaan di seluruh halaman.

try (Comparer comparer = new Comparer("source.png")) {
    comparer.add("target.png");

    OcrOptions ocr = new OcrOptions();
    ocr.setEnabled(true);
    ocr.setDisplayMode(OcrDisplayMode.SIDE_BY_SIDE);  // or TEXT

    CompareOptions options = new CompareOptions();
    options.setOcr(ocr);
    comparer.compare("result.png", options);

    for (ChangeInfo change : comparer.getChanges()) {
        OcrChangeInfo ocrChange = (OcrChangeInfo) change;
        System.out.println(change.getText() + ": confidence " + ocrChange.getConfidence()
                + ", " + ocrChange.getSourceBoxes().length + " box(es) on the source");
    }
}

Apa yang dapat Anda kontrol:

  • Mode tampilan. SIDE_BY_SIDE (default) menampilkan dua gambar berdampingan dengan kata yang berubah dibingkai. TEXT hanya menampilkan teks yang dikenali, dengan perubahan ditandai di dalamnya.
  • Detail perubahan. Setiap perubahan adalah OcrChangeInfo dengan kotak yang menutupi pada kedua gambar (getSourceBoxes(), getTargetBoxes()) dan tingkat kepercayaan pengenalan (getConfidence()). Kotak kosong dalam mode TEXT.
  • Bahasa. setLanguage(OcrLanguage) memilih bahasa atau skrip; defaultnya adalah LATIN. Bahasa lain memerlukan model pengenalan yang diunduh pada penggunaan pertama. setDisableResourceDownloads(true) dan setResourcesPath(String) membatasi pengenalan pada model yang sudah ada di disk.

Aspose.OCR for Java harus berada di classpath. Itu merupakan dependensi dari POM yang dipublikasikan, bukan bagian dari jar. Tanpa itu, perbandingan OCR gagal dengan pesan yang menyebutkan pustaka yang hilang.

Perbandingan spreadsheet

Baris dicocokkan berdasarkan konten

Sebelumnya, baris dipasangkan dengan baris pada indeks yang sama di workbook lain. Ketika sebuah baris disisipkan atau dihapus, setiap baris setelahnya dilaporkan sebagai ditulis ulang. Misalnya, workbook berisi enam baris dengan satu baris dihapus menghasilkan 91 perubahan; kini hanya menghasilkan 8 — enam sel pada baris yang dihapus, ditandai di tempat, dan jumlah baris pada lembar ringkasan.

Baris dan kolom kini disejajarkan berdasarkan konten sel mereka. Baris yang sama di kedua file dipasangkan langsung, dan hanya yang berada di antara mereka yang disejajarkan. Jumlah perubahan yang dilaporkan untuk file semacam itu berbeda dari versi sebelumnya.

Detik, bukan menit

Perbandingan spreadsheet dapat memakan menit bahkan untuk file yang identik: dua lembar 200 × 20 yang identik memakan 2,5 menit. Sekarang mereka memakan kurang dari satu detik (beberapa detik untuk perbandingan pertama setelah JVM dimulai), dan lembar 400 × 20 dengan satu baris dihapus memakan sekitar 7 detik.

Diff kata di balik setiap perbandingan telah direka ulang dan menghasilkan hasil yang sama seperti sebelumnya, hanya jauh lebih cepat — sehingga perbandingan Word, PDF, dan teks juga mendapat manfaat. Baris dan kolom yang identik dipasangkan tanpa skor, sehingga dua lembar identik tidak disejajarkan sama sekali.

Tinggi baris, tipe angka, dan warna sorotan

  • Baris tanpa tinggi sendiri kini dibiarkan menyesuaikan dengan kontennya dalam hasil, sehingga sel yang dibungkus dan berukuran font besar tidak lagi terpotong. Baris dengan tinggi eksplisit mempertahankan tinggi tersebut.
  • Angka dan tanggal yang tidak berubah mempertahankan tipe mereka alih‑alih ditulis kembali sebagai teks. Sel formula masih ditulis dengan nilai yang dihitung.
  • StyleSettings.setHighlightColor kini mengisi latar belakang sel yang berubah:
StyleSettings deleted = new StyleSettings();
deleted.setHighlightColor(Color.PINK);

CompareOptions options = new CompareOptions();
options.setDeletedItemStyle(deleted);

Hasil PDF

Tata letak dari halaman sumber

Mesin PDF kini menata hasil dengan cara yang sama seperti GroupDocs.Comparison untuk .NET:

  • setiap komponen hasil berada di tempatnya pada halaman sumber; gambar ditempatkan pada koordinatnya masing‑masing, dan grafik vektor halaman dibawa ke hasil;
  • sebuah tabel menggambar gridnya, dan teks setiap sel membungkus pada tepi sel itu sendiri, termasuk sel yang digabung;
  • garis dikelompokkan menjadi paragraf berdasarkan jarak antar‑baseline, dan margin halaman diambil dari halaman itu sendiri;
  • halaman yang sama di kedua dokumen dapat ditemukan di mana saja dalam dokumen, bukan hanya di awal, dan tidak dibandingkan lagi.

Hasil terlihat berbeda dari versi sebelumnya. Konten yang dihapus digambar di tempatnya pada halaman sumber; jika target memiliki konten lain di tempat itu, keduanya dapat tumpang tindih.

Perbaikan kecil

  • Frasa yang diganti. Penggantian beberapa kata digambar satu pasang pada satu waktu, sehingga “Richard McClintock” menjadi “Vasily Pupkin” terbaca “Vasily Richard Pupkin McClintock”. Hasil inline kini menampilkan frasa lama, lalu yang baru.
  • Garis yang sedikit lebih panjang. Pada hasil inline, garis yang menjadi satu kata lebih panjang karena penggantian tidak lagi membungkus kata terakhirnya ke baris terpisah di bawah.
  • Grid tabel. Garis batas tabel yang warnanya tidak terdeteksi tidak lagi dilukis hitam di atas batas tabel sumber.
  • Halaman yang digambar melalui formulir. Halaman yang menggambar semuanya melalui formulir, seperti spreadsheet yang disimpan sebagai PDF, tidak lagi dianggap tidak berubah. Formulir kini juga dibandingkan, sehingga perubahan mereka dilaporkan.
  • Baris kosong. Baris yang hanya berisi spasi tidak lagi dilaporkan sebagai perubahan.
  • Daftar isi. Nomor halaman pada baris daftar isi yang berubah tetap berada pada barisnya.

Perbaikan lain

Teks melintasi jeda baris

Suntingan yang memperpanjang atau memendekkan satu baris file teks memindahkan kata melintasi jeda baris setelahnya. Jika dibandingkan baris per baris, kata‑kata itu dilaporkan dihapus dari satu baris dan disisipkan ke baris berikutnya. Sekarang baris‑baris tersebut digabung selama itu menghasilkan lebih sedikit perubahan, dibandingkan sebagai satu rangkaian dan ditata kembali pada baris target. Penggantian dilaporkan dulu yang lama, kemudian yang baru, dan tampilan HTML dari perbandingan teks menerapkan perubahan yang diterima dan ditolak dengan cara yang sama seperti hasil teks. Membandingkan satu file dengan beberapa target masih membandingkan baris per baris.

Word: kolom atau baris tabel yang dikosongkan

Ketika kolom atau baris tabel menjadi kosong, sebelumnya dilaporkan sebagai dihapus dan yang kosong sebagai disisipkan, sehingga sel‑sel setelahnya bergeser. Sekarang tetap di tempat, dengan kontennya dilaporkan sebagai dihapus.

Presentasi: sumber daya eksternal

LoadOptions.setSkipExternalResources dan setWhitelistedResources, yang ditambahkan pada 26.10, tidak berpengaruh pada presentasi. Sekarang mereka berlaku pada presentasi seperti pada dokumen Word dan HTML, dan presentasi hasil tidak pernah mengambil sumber daya eksternal. Gambar yang tidak dimuat dibandingkan sebagai gambar kosong.

Pratinjau HTML

Halaman pratinjau dokumen HTML sebelumnya dirender ke nama file tetap di direktori sementara, sehingga dua pratinjau sekaligus menimpa halaman satu sama lain dan nomor halaman yang diminta diabaikan. Sekarang halaman dirender di memori, hanya yang diminta yang dikembalikan, dan mereka dirender dengan latar putih alih‑alih latar transparan.

Perpustakaan Aspose diperbarui

Perpustakaan Sebelumnya Sekarang
Aspose.BarCode 25.5 26.6
Aspose.CAD 24.6.1 26.8
Aspose.Cells 26.3 26.9
Aspose.Diagram 25.7 26.9
Aspose.Email 26.1 26.8
Aspose.PDF 26.2 26.8.1
Aspose.PSD 25.10 26.8
Aspose.Slides 26.2 26.9
Aspose.Words 26.3 26.8

Perpustakaan tetap dibundel dalam jar seperti sebelumnya. Aspose.OCR 26.10.0 baru dan hadir sebagai dependensi dalam POM.

Cara mendapatkan pembaruan

Maven

Tambahkan repositori GroupDocs dan dependensi ke pom.xml Anda:

<repositories>
    <repository>
        <id>groupdocs-artifacts-repository</id>
        <name>GroupDocs Artifacts Repository</name>
        <url>https://releases.groupdocs.com/java/repo/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-comparison</artifactId>
        <version>26.11</version>
    </dependency>
</dependencies>

Jika Anda tidak menggunakan perbandingan OCR, Anda dapat mengecualikan Aspose.OCR dan pustaka native‑nya:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-comparison</artifactId>
    <version>26.11</version>
    <exclusions>
        <exclusion>
            <groupId>com.aspose</groupId>
            <artifactId>aspose-ocr</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Unduhan langsung

Unduh JAR dari halaman unduhan GroupDocs.Comparison for Java 26.11.

Sumber daya