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
- 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).
- Perubahan spreadsheet. Ketika baris disisipkan atau dihapus, perbandingan spreadsheet melaporkan perubahan yang berbeda — dan biasanya jauh lebih sedikit — karena baris kini dicocokkan berdasarkan konten.
- Tata letak PDF. Hasil PDF ditata secara berbeda: setiap komponen tetap berada di tempatnya pada halaman sumber.
- Urutan penggantian. Pada hasil teks dan PDF inline, kata atau frasa yang diganti kini ditampilkan dulu yang lama, kemudian yang baru.
- 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.TEXThanya menampilkan teks yang dikenali, dengan perubahan ditandai di dalamnya. - Detail perubahan. Setiap perubahan adalah
OcrChangeInfodengan kotak yang menutupi pada kedua gambar (getSourceBoxes(),getTargetBoxes()) dan tingkat kepercayaan pengenalan (getConfidence()). Kotak kosong dalam modeTEXT. - Bahasa.
setLanguage(OcrLanguage)memilih bahasa atau skrip; defaultnya adalahLATIN. Bahasa lain memerlukan model pengenalan yang diunduh pada penggunaan pertama.setDisableResourceDownloads(true)dansetResourcesPath(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.setHighlightColorkini 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.