We zijn verheugd de release van GroupDocs.Comparison for Java 26.11 aan te kondigen, beschikbaar vanaf November 2026. De belangrijkste functie is OCR‑gebaseerde afbeeldingvergelijking: afbeeldingen kunnen nu worden vergeleken op basis van de tekst die erin is herkend in plaats van op basis van hun pixels. Spreadsheet‑vergelijking krijgt een grote revisie — rijen worden gematcht op inhoud, en het vergelijken van grote bladen duurt seconden in plaats van minuten. PDF‑resultaten worden nu opgemaakt vanaf de bronpagina, op dezelfde manier als in GroupDocs.Comparison for .NET, en een reeks correcties dekt tekst, Word, presentatie en HTML‑voorbeeldvergelijking.
Wat is nieuw in deze release
| Sleutel | Samenvatting | Categorie |
|---|---|---|
| COMPARISONNET-4925, COMPARISONNET-4934 | Afbeeldingen kunnen nu worden vergeleken op basis van de tekst die in hen is herkend (OCR) in plaats van op basis van hun pixels | Functie |
| COMPARISONJAVA-1798, COMPARISONNET-4940, COMPARISONNET-4945 | Spreadsheet‑rijen worden gematcht op inhoud: een ingevoegde of verwijderde rij markeert niet langer elke volgende rij als gewijzigd | Correctie |
| COMPARISONJAVA-1797, COMPARISONNET-4930 | Spreadsheet‑vergelijking duurt seconden in plaats van minuten; snellere tekst‑diff in elk formaat | Correctie |
| COMPARISONJAVA-1796, COMPARISONNET-4946 | XLSX‑resultaat: rijen zonder eigen hoogte passen zich aan hun inhoud aan | Correctie |
| COMPARISONNET-4947 | XLSX‑resultaat: ongewijzigde getallen en datums behouden hun type in plaats van tekst te worden | Correctie |
| COMPARISONNET-4944 | StyleSettings.setHighlightColor vult de achtergrond van gewijzigde spreadsheet‑cellen |
Correctie |
| COMPARISONNET-4927, COMPARISONNET-4928, COMPARISONNET-4923 | Tekst: woorden die over regeleinden worden verplaatst, worden niet langer gemeld als verwijderd en opnieuw ingevoegd | Correctie |
| COMPARISONNET-4403, COMPARISONNET-4891 | PDF‑resultaten worden opgemaakt vanaf de bronpagina: componenten op hun positie, cellen breken af op hun eigen rand | Update |
| COMPARISONNET-4931 | Inline PDF‑resultaat toont een vervangen zin volledig: eerst de oude woorden, daarna de nieuwe | Correctie |
| COMPARISONNET-4896 | Inline PDF‑resultaat breekt een regel die de vergelijking iets langer maakte niet langer af naar de volgende regel | Correctie |
| COMPARISONNET-4763 | PDF‑resultaat tekent geen zwart raster meer over de eigen randen van een tabel | Correctie |
| — | PDF‑pagina’s die via formulieren worden getekend (spreadsheets opgeslagen als PDF) worden niet langer als ongewijzigd beschouwd | Correctie |
| — | PDF: regels die alleen uit spaties bestaan, worden niet langer gemeld als wijzigingen | Correctie |
| — | PDF: een inhoudsopgave behoudt haar paginanummers op hun regels | Correctie |
| COMPARISONNET-4926 | Word: een tabelkolom of -rij die leeg werd, blijft op zijn plaats in plaats van verwijderd en opnieuw ingevoegd | Correctie |
| COMPARISONNET-4880 | Presentaties: LoadOptions.setSkipExternalResources en setWhitelistedResources zijn nu van toepassing |
Correctie |
| COMPARISONNET-4935 | HTML‑voorbeeld: gelijktijdige voorbeelden overschrijven elkaars pagina’s niet meer; gevraagde pagina’s worden gerespecteerd | Correctie |
| COMPARISONJAVA-1794, COMPARISONJAVA-1795 | Aspose‑bibliotheken bijgewerkt | Update |
Gedragsveranderingen om te controleren vóór het upgraden
- New dependency. Het gepubliceerde POM declareert een nieuwe afhankelijkheid, Aspose.OCR for Java, die alleen door OCR‑vergelijking wordt gebruikt. Het brengt ONNX Runtime met native bibliotheken mee. Als u OCR niet gebruikt, kunt u het uitsluiten — elke andere vergelijking werkt zonder (zie Hoe de update te krijgen).
- Spreadsheet changes. Wanneer rijen werden ingevoegd of verwijderd, rapporteert spreadsheet‑vergelijking nu andere — en meestal veel minder — wijzigingen, omdat rijen nu op inhoud worden gematcht.
- PDF layout. PDF‑resultaten worden anders opgemaakt: elk component blijft op de positie waar het op de bronpagina stond.
- Order of replacements. In tekst‑ en inline PDF‑resultaten wordt een vervangen woord of zin nu eerst oud, dan nieuw weergegeven.
- Evaluation mode. Alleen de eerste 2 pagina’s van een PDF worden vergeleken in evaluatiemodus, zoals in GroupDocs.Comparison for .NET.
Nieuwe functie: afbeeldingen vergelijken op basis van herkende tekst (OCR)
Een afbeelding kan nu worden vergeleken op basis van de tekst die Aspose.OCR erin leest, in plaats van op basis van de pixels. Dit is de juiste keuze voor scans, foto’s en screenshots van documenten, waarbij dezelfde tekst nooit exact dezelfde pixels oplevert — een pagina die opnieuw wordt gescand met een lichte verschuiving of andere kwaliteit toont niet langer overal verschillen.
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");
}
}
Wat u kunt aanpassen:
- Display mode.
SIDE_BY_SIDE(default) toont de twee afbeeldingen naast elkaar met de gewijzigde woorden in een kader.TEXTtoont alleen de herkende tekst, met de wijzigingen gemarkeerd. - Change details. Elke wijziging is een
OcrChangeInfomet de vakken die het op beide afbeeldingen bestrijkt (getSourceBoxes(),getTargetBoxes()) en de herkennings‑confidence (getConfidence()). De vakken zijn leeg inTEXT‑modus. - Language.
setLanguage(OcrLanguage)selecteert de taal of het script; de standaard isLATIN. Andere talen hebben een herkenningsmodel nodig dat bij eerste gebruik wordt gedownload.setDisableResourceDownloads(true)ensetResourcesPath(String)beperken herkenning tot modellen die al op schijf aanwezig zijn.
Aspose.OCR for Java moet op het classpath staan. Het is een afhankelijkheid van het gepubliceerde POM, niet onderdeel van de jar. Zonder deze bibliotheek faalt een OCR‑vergelijking met een bericht dat de ontbrekende bibliotheek benoemt.
Spreadsheet-vergelijking
Rijen gematcht op inhoud
Voorheen werden rijen gekoppeld aan de rij met dezelfde index in de andere werkmap. Wanneer een rij werd ingevoegd of verwijderd, werd elke daaropvolgende rij gemeld als herschreven. Bijvoorbeeld, een werkmap van zes rijen waarvan één werd verwijderd, leverde 91 wijzigingen op; nu levert het 8 op — de zes cellen van de verwijderde rij, gemarkeerd op hun plaats, en het rijaantal op het samenvattingsblad.
Rijen en kolommen worden nu uitgelijnd op basis van de inhoud van hun cellen. Rijen die in beide bestanden gelijk zijn, worden direct gekoppeld, en alleen wat ertussen ligt, wordt uitgelijnd. Het aantal gemelde wijzigingen voor dergelijke bestanden verschilt van eerdere versies.
Seconden in plaats van minuten
Spreadsheet‑vergelijking kon minuten duren zelfs voor identieke bestanden: twee identieke 200 × 20‑bladen duurden 2,5 minuut. Ze duren nu minder dan een seconde (een paar seconden voor de eerste vergelijking na het starten van de JVM), en een 400 × 20‑blad met één rij verwijderd duurt ongeveer 7 seconden.
Het woord‑diff achter elke vergelijking is opnieuw ontworpen en levert hetzelfde resultaat als voorheen, alleen veel sneller — waardoor Word, PDF en tekstvergelijking ook profiteren. Identieke rijen en kolommen worden gekoppeld zonder scoring, zodat twee identieke bladen helemaal niet worden uitgelijnd.
Rijhoogtes, getaltypes en markeerkleur
- Rijen zonder eigen hoogte passen zich nu aan hun inhoud aan in het resultaat, zodat ingepakte en grote‑letter‑cellen niet meer worden afgesneden. Rijen met een expliciete hoogte behouden deze.
- Ongewijzigde getallen en datums behouden hun type in plaats van als tekst te worden weggeschreven. Formulecellen worden nog steeds weggeschreven met hun berekende waarden.
StyleSettings.setHighlightColorvult nu de achtergrond van gewijzigde cellen:
StyleSettings deleted = new StyleSettings();
deleted.setHighlightColor(Color.PINK);
CompareOptions options = new CompareOptions();
options.setDeletedItemStyle(deleted);
PDF-resultaten
Layout van de bronpagina
De PDF‑engine legt nu resultaten op dezelfde manier vast als GroupDocs.Comparison for .NET:
- elk component van het resultaat staat waar het op de bronpagina stond; afbeeldingen worden geplaatst op hun eigen coördinaten, en de vector‑graphics van de pagina worden overgenomen;
- een tabel tekent haar raster, en de tekst van elke cel breekt af op de eigen rand van de cel, inclusief samengevoegde cellen;
- regels worden gegroepeerd in alinea’s op basis van de afstand tussen de basislijnen, en paginamarges komen van de pagina zelf;
- pagina’s die in beide documenten gelijk zijn, worden overal in het document gevonden, niet alleen aan het begin, en worden niet opnieuw vergeleken.
Resultaten zien er anders uit dan in eerdere versies. Verwijderde inhoud wordt getekend waar deze op de bronpagina stond; waar het doel andere inhoud op die plek heeft, kunnen de twee overlappen.
Kleine correcties
- Replaced phrases. Een vervanging van meerdere woorden werd één paar tegelijk getekend, waardoor “Richard McClintock” dat “Vasily Pupkin” werd, “Vasily Richard Pupkin McClintock” leerde lezen. Het inline‑resultaat toont nu de oude zin, daarna de nieuwe.
- Lines made slightly longer. In een inline‑resultaat wordt een regel die door een vervanging één woord langer werd niet langer afgebroken naar een eigen regel op de volgende regel.
- Table grids. Een tabelrand waarvan de kleur niet kon worden gedetecteerd, wordt niet langer zwart over de eigen randen van de bron getekend.
- Pages drawn through forms. Pagina’s die alles via formulieren tekenen, zoals een spreadsheet opgeslagen als PDF, werden als ongewijzigd beschouwd. De formulieren worden nu ook vergeleken, zodat hun wijzigingen worden gerapporteerd.
- Blank lines. Regels die alleen uit spaties bestaan, worden niet langer gemeld als wijzigingen.
- Tables of contents. Het paginanummer van een gewijzigde regel in de inhoudsopgave blijft op zijn regel staan.
Andere correcties
Tekst over regeleinden
Een bewerking die een regel van een tekstbestand verlengt of verkort, duwt woorden over de regeleinden heen. Bij vergelijking regel voor regel werden die woorden gemeld als verwijderd uit de ene regel en ingevoegd in de volgende. Regels worden nu samengevoegd wanneer dat minder wijzigingen oplevert, als één doorloop vergeleken en teruggeplaatst op de regels van het doel. Een vervanging wordt eerst oud, dan nieuw gerapporteerd, en de HTML‑weergave van een tekstvergelijking past geaccepteerde en afgewezen wijzigingen op dezelfde manier toe als het tekstresultaat. Het vergelijken van één bestand met meerdere doelen blijft regel‑voor‑regel.
Word: geleegde tabelkolom of -rij
Wanneer een kolom of rij van een tabel leeg werd, werd deze gemeld als verwijderd en een lege als ingevoegd, waardoor de cellen erna verschoven. Nu blijft de kolom/rij op zijn plaats, met de inhoud gemeld als verwijderd.
Presentaties: externe bronnen
LoadOptions.setSkipExternalResources en setWhitelistedResources, toegevoegd in 26.10, hadden geen effect op presentaties. Ze gelden nu voor presentaties net als voor Word‑ en HTML‑documenten, en de resultaat‑presentatie haalt nooit externe bronnen op. Een afbeelding die niet geladen kon worden, wordt vergeleken als een lege afbeelding.
HTML-voorbeeld
Voorbeeldpagina’s van een HTML‑document werden weggeschreven naar vaste bestandsnamen in de tijdelijke map, waardoor twee voorbeelden tegelijk elkaars pagina’s overschreven en de gevraagde paginanummers werden genegeerd. Pagina’s worden nu in het geheugen gerenderd, alleen de gevraagde worden geretourneerd, en ze worden op wit in plaats van een transparante achtergrond gerenderd.
Aspose-bibliotheken bijgewerkt
| Bibliotheek | Voor | Nu |
|---|---|---|
| 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 |
De bibliotheken worden, zoals voorheen, in de jar gebundeld. Aspose.OCR 26.10.0 is nieuw en komt als afhankelijkheid in het POM.
Hoe de update te krijgen
Maven
Voeg de GroupDocs‑repository en de afhankelijkheid toe aan uw pom.xml:
<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>
Als u OCR‑vergelijking niet gebruikt, kunt u Aspose.OCR en de native bibliotheken uitsluiten:
<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>
Directe download
Download de JAR van de GroupDocs.Comparison for Java 26.11 download page.