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

  1. 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).
  2. 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.
  3. PDF layout. PDF‑resultaten worden anders opgemaakt: elk component blijft op de positie waar het op de bronpagina stond.
  4. Order of replacements. In tekst‑ en inline PDF‑resultaten wordt een vervangen woord of zin nu eerst oud, dan nieuw weergegeven.
  5. 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. TEXT toont alleen de herkende tekst, met de wijzigingen gemarkeerd.
  • Change details. Elke wijziging is een OcrChangeInfo met de vakken die het op beide afbeeldingen bestrijkt (getSourceBoxes(), getTargetBoxes()) en de herkennings‑confidence (getConfidence()). De vakken zijn leeg in TEXT‑modus.
  • Language. setLanguage(OcrLanguage) selecteert de taal of het script; de standaard is LATIN. Andere talen hebben een herkenningsmodel nodig dat bij eerste gebruik wordt gedownload. setDisableResourceDownloads(true) en setResourcesPath(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.setHighlightColor vult 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.

Bronnen