Wir freuen uns, die Veröffentlichung von GroupDocs.Comparison for Java 26.11 bekannt zu geben, verfügbar seit November 2026. Das Hauptfeature ist OCR‑basierter Bildvergleich: Bilder können nun anhand des darin erkannten Textes verglichen werden, anstatt über ihre Pixel. Der Tabellenvergleich erhält ein umfassendes Update – Zeilen werden nach Inhalt abgeglichen, und das Vergleichen großer Tabellen dauert Sekunden statt Minuten. PDF‑Ergebnisse werden jetzt von der Quellseite aus angeordnet, genauso wie in GroupDocs.Comparison für .NET, und eine Reihe von Fehlerbehebungen deckt Text‑, Word‑, Präsentations‑ und HTML‑Vorschau‑Vergleiche ab.

Was ist neu in dieser Version

Schlüssel Zusammenfassung Kategorie
COMPARISONNET-4925, COMPARISONNET-4934 Bilder können anhand des darin erkannten Textes (OCR) statt ihrer Pixel verglichen werden Funktion
COMPARISONJAVA-1798, COMPARISONNET-4940, COMPARISONNET-4945 Tabellenzeilen werden nach Inhalt abgeglichen: Eine eingefügte oder gelöschte Zeile markiert nicht mehr jede nachfolgende Zeile als geändert Fehlerbehebung
COMPARISONJAVA-1797, COMPARISONNET-4930 Tabellenvergleich dauert Sekunden statt Minuten; schnellerer Text‑Diff in jedem Format Fehlerbehebung
COMPARISONJAVA-1796, COMPARISONNET-4946 XLSX‑Ergebnis: Zeilen ohne eigene Höhe passen sich ihrem Inhalt an Fehlerbehebung
COMPARISONNET-4947 XLSX‑Ergebnis: Unveränderte Zahlen und Datumsangaben behalten ihren Typ, statt zu Text zu werden Fehlerbehebung
COMPARISONNET-4944 StyleSettings.setHighlightColor füllt den Hintergrund geänderter Tabellenzellen Fehlerbehebung
COMPARISONNET-4927, COMPARISONNET-4928, COMPARISONNET-4923 Text: Wörter, die über Zeilenumbrüche verschoben werden, werden nicht mehr als gelöscht und erneut eingefügt gemeldet Fehlerbehebung
COMPARISONNET-4403, COMPARISONNET-4891 PDF‑Ergebnisse werden von der Quellseite aus angeordnet: Komponenten an ihren Positionen, Zellen umbrechen an ihrer eigenen Kante Aktualisierung
COMPARISONNET-4931 Inline‑PDF‑Ergebnis zeigt einen ersetzten Ausdruck komplett: zuerst die alten Wörter, dann die neuen Fehlerbehebung
COMPARISONNET-4896 Inline‑PDF‑Ergebnis bricht eine Zeile, die die Vergleichsoperation leicht verlängert hat, nicht mehr in die nächste Zeile um Fehlerbehebung
COMPARISONNET-4763 PDF‑Ergebnis zeichnet kein schwarzes Gitter mehr über die eigenen Tabellenränder Fehlerbehebung
— PDF‑Seiten, die über Formulare gezeichnet werden (Tabellen, die als PDF gespeichert wurden), werden nicht mehr als unverändert angesehen Fehlerbehebung
— PDF: Zeilen, die nur aus Leerzeichen bestehen, werden nicht mehr als Änderungen gemeldet Fehlerbehebung
— PDF: Ein Inhaltsverzeichnis behält seine Seitenzahlen in den jeweiligen Zeilen Fehlerbehebung
COMPARISONNET-4926 Word: Eine Tabellenspalte oder -zeile, die leer wurde, bleibt an ihrer Stelle, statt gelöscht und erneut eingefügt zu werden Fehlerbehebung
COMPARISONNET-4880 Präsentationen: LoadOptions.setSkipExternalResources und setWhitelistedResources wirken jetzt Fehlerbehebung
COMPARISONNET-4935 HTML‑Vorschau: Gleichzeitige Vorschauen überschreiben nicht mehr die Seiten des anderen; angeforderte Seiten werden berücksichtigt Fehlerbehebung
COMPARISONJAVA-1794, COMPARISONJAVA-1795 Aspose‑Bibliotheken aktualisiert Aktualisierung

Verhaltensänderungen, die vor dem Upgrade zu prüfen sind

  1. Neue Abhängigkeit. Das veröffentlichte POM deklariert eine neue Abhängigkeit, Aspose.OCR for Java, die nur für den OCR‑Vergleich verwendet wird. Sie bringt ONNX Runtime mit nativen Bibliotheken mit. Wenn Sie OCR nicht nutzen, können Sie sie ausschließen — alle anderen Vergleiche funktionieren ohne sie (siehe So erhalten Sie das Update).
  2. Tabellenänderungen. Wenn Zeilen eingefügt oder gelöscht wurden, meldet der Tabellenvergleich nun andere — und in der Regel deutlich weniger — Änderungen, weil Zeilen jetzt nach Inhalt abgeglichen werden.
  3. PDF‑Layout. PDF‑Ergebnisse werden anders angeordnet: Jede Komponente bleibt dort, wo sie auf der Quellseite war.
  4. Reihenfolge von Ersetzungen. In Text‑ und Inline‑PDF‑Ergebnissen wird ein ersetztes Wort oder ein Ausdruck jetzt zuerst alt, dann neu angezeigt.
  5. Evaluierungsmodus. Nur die ersten 2 Seiten eines PDFs werden im Evaluierungsmodus verglichen, wie in GroupDocs.Comparison für .NET.

Neue Funktion: Bilder anhand des erkannten Textes vergleichen (OCR)

Ein Bild kann nun anhand des Textes verglichen werden, den Aspose.OCR darin erkennt, anstatt über seine Pixel. Das ist die richtige Wahl für Scans, Fotos und Screenshots von Dokumenten, bei denen derselbe Text nie exakt dieselben Pixel erzeugt — eine Seite, die mit leichtem Versatz oder anderer Qualität erneut gescannt wird, zeigt nicht mehr überall Unterschiede.

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");
    }
}

Was Sie steuern können:

  • Anzeige‑Modus. SIDE_BY_SIDE (Standard) zeigt die beiden Bilder nebeneinander mit den geänderten Wörtern in Kästen. TEXT zeigt nur den erkannten Text, wobei die Änderungen darin markiert sind.
  • Änderungsdetails. Jede Änderung ist ein OcrChangeInfo mit den Kästen, die sie auf beiden Bildern abdeckt (getSourceBoxes(), getTargetBoxes()) und der Erkennungs‑Confidence (getConfidence()). Die Kästen sind im TEXT‑Modus leer.
  • Sprache. setLanguage(OcrLanguage) wählt die Sprache oder das Schriftsystem; Standard ist LATIN. Andere Sprachen benötigen ein Erkennungs‑Modell, das beim ersten Gebrauch heruntergeladen wird. setDisableResourceDownloads(true) und setResourcesPath(String) beschränken die Erkennung auf bereits vorhandene Modelle auf der Festplatte.

Aspose.OCR for Java muss im Klassenpfad liegen. Es ist eine Abhängigkeit des veröffentlichten POM, nicht Teil des JARs. Ohne diese Bibliothek schlägt ein OCR‑Vergleich mit einer Meldung fehl, die die fehlende Bibliothek nennt.

Tabellenvergleich

Zeilen nach Inhalt abgeglichen

Bisher wurden Zeilen mit der Zeile am gleichen Index in der anderen Arbeitsmappe gepaart. Wenn eine Zeile eingefügt oder gelöscht wurde, wurde jede nachfolgende Zeile als neu geschrieben gemeldet. Zum Beispiel erzeugte eine Arbeitsmappe mit sechs Zeilen, von denen eine gelöscht wurde, 91 Änderungen; jetzt erzeugt sie nur noch 8 — die sechs Zellen der gelöschten Zeile, markiert an ihrer Stelle, und die Zeilenzahl im Übersichtsblatt.

Zeilen und Spalten werden jetzt nach dem Inhalt ihrer Zellen ausgerichtet. Zeilen, die in beiden Dateien identisch sind, werden direkt gepaart, und nur das dazwischenliegende wird ausgerichtet. Die Anzahl der gemeldeten Änderungen für solche Dateien unterscheidet sich von früheren Versionen.

Sekunden statt Minuten

Der Tabellenvergleich konnte selbst bei identischen Dateien Minuten dauern: Zwei identische 200 × 20‑Tabellen brauchten 2,5 Minuten. Sie benötigen jetzt weniger als eine Sekunde (einige Sekunden für den ersten Vergleich nach JVM‑Start), und eine 400 × 20‑Tabelle mit einer gelöschten Zeile dauert etwa 7 Sekunden.

Der Wort‑Diff hinter jedem Vergleich wurde überarbeitet und liefert dasselbe Ergebnis wie zuvor, nur viel schneller — so profitieren auch Word‑, PDF‑ und Text‑Vergleiche. Identische Zeilen und Spalten werden ohne Scoring gepaart, sodass zwei identische Tabellen überhaupt nicht ausgerichtet werden.

Zeilenhöhen, Zahlentypen und Hervorhebungsfarbe

  • Zeilen ohne eigene Höhe passen sich jetzt im Ergebnis ihrem Inhalt an, sodass umgebrochene und großformatige Zellen nicht mehr abgeschnitten werden. Zeilen mit expliziter Höhe behalten diese.
  • Unveränderte Zahlen und Datumsangaben behalten ihren Typ, statt als Text zurückgeschrieben zu werden. Formelfelder werden weiterhin mit ihren berechneten Werten geschrieben.
  • StyleSettings.setHighlightColor füllt jetzt den Hintergrund geänderter Zellen:
StyleSettings deleted = new StyleSettings();
deleted.setHighlightColor(Color.PINK);

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

PDF-Ergebnisse

Layout von der Quellseite

Die PDF‑Engine legt Ergebnisse jetzt genauso an wie GroupDocs.Comparison für .NET:

  • jede Komponente des Ergebnisses steht dort, wo sie auf der Quellseite war; Bilder werden an ihren eigenen Koordinaten platziert, und die Vektorgrafiken der Seite werden übernommen;
  • eine Tabelle zeichnet ihr Gitter, und der Text jeder Zelle umbreicht an der eigenen Zellenkante, inklusive zusammengeführter Zellen;
  • Zeilen werden zu Absätzen gruppiert anhand des Abstands zwischen den Grundlinien, und Seitenränder stammen von der Seite selbst;
  • Seiten, die in beiden Dokumenten identisch sind, können überall im Dokument gefunden werden, nicht nur am Anfang, und werden nicht erneut verglichen.

Die Ergebnisse sehen anders aus als in früheren Versionen. Gelöschter Inhalt wird dort gezeichnet, wo er auf der Quellseite stand; wo das Ziel an derselben Stelle anderen Inhalt hat, können die beiden überlappen.

Kleinere Korrekturen

  • Ersetzte Ausdrücke. Eine Ersetzung mehrerer Wörter wurde paarweise gezeichnet, sodass „Richard McClintock“ zu „Vasily Pupkin“ als „Vasily Richard Pupkin McClintock“ gelesen wurde. Das Inline‑Ergebnis zeigt jetzt zuerst den alten Ausdruck, dann den neuen.
  • Leicht verlängerte Zeilen. In einem Inline‑Ergebnis bricht eine Zeile, die durch eine Ersetzung um ein Wort länger wurde, ihr letztes Wort nicht mehr in eine eigene Zeile über der nächsten Zeile um.
  • Tabellengitter. Ein Tabellenrahmen, dessen Farbe nicht erkannt werden konnte, wird nicht mehr schwarz über die eigenen Rahmen der Quelle gemalt.
  • Seiten, die über Formulare gezeichnet werden. Seiten, die alles über Formulare darstellen (wie eine als PDF gespeicherte Tabelle), wurden als unverändert angesehen. Die Formulare werden jetzt ebenfalls verglichen, sodass ihre Änderungen gemeldet werden.
  • Leere Zeilen. Zeilen, die nur aus Leerzeichen bestehen, werden nicht mehr als Änderungen gemeldet.
  • Inhaltsverzeichnisse. Die Seitenzahl einer geänderten Inhaltsverzeichnis‑Zeile bleibt in ihrer Zeile.

Weitere Korrekturen

Text über Zeilenumbrüche

Eine Bearbeitung, die eine Zeile einer Textdatei verlängert oder verkürzt, schiebt Wörter über die nachfolgenden Zeilenumbrüche. Zeilenweise verglichen wurden diese Wörter als gelöscht aus einer Zeile und eingefügt in die nächste gemeldet. Zeilen werden jetzt zusammengeführt, solange das weniger Änderungen ergibt, als ein Durchlauf verglichen und wieder auf die Zeilen des Ziels zurückgelegt wird. Eine Ersetzung wird zuerst alt, dann neu gemeldet, und die HTML‑Ansicht eines Textvergleichs wendet angenommene und abgelehnte Änderungen genauso an wie das Text‑Ergebnis. Der Vergleich einer Datei mit mehreren Zielen erfolgt weiterhin zeilenweise.

Word: geleerte Tabellenspalte oder -zeile

Wenn eine Spalte oder Zeile einer Tabelle leer wurde, wurde sie als gelöscht und eine leere als eingefügt gemeldet, wodurch die nachfolgenden Zellen verschoben wurden. Sie bleibt jetzt an ihrer Stelle, wobei ihr Inhalt als gelöscht gemeldet wird.

Präsentationen: externe Ressourcen

LoadOptions.setSkipExternalResources und setWhitelistedResources, die in 26.10 hinzugefügt wurden, hatten keinen Effekt auf Präsentationen. Sie wirken jetzt auf Präsentationen ebenso wie auf Word‑ und HTML‑Dokumente, und die Ergebnis‑Präsentation ruft niemals externe Ressourcen ab. Ein Bild, das nicht geladen wurde, wird als leeres Bild verglichen.

HTML-Vorschau

Vorschauseiten eines HTML‑Dokuments wurden mit festen Dateinamen im Temp‑Verzeichnis gerendert, sodass zwei gleichzeitige Vorschauen die Seiten des anderen überschrieben und die angeforderten Seitenzahlen ignoriert wurden. Seiten werden jetzt im Speicher gerendert, nur die angeforderten werden zurückgegeben, und sie werden auf weißem Hintergrund statt auf transparentem Hintergrund gerendert.

Aspose-Bibliotheken aktualisiert

Bibliothek Vorher Jetzt
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

Die Bibliotheken sind wie zuvor im JAR gebündelt. Aspose.OCR 26.10.0 ist neu und kommt als Abhängigkeit im POM.

So erhalten Sie das Update

Maven

Fügen Sie das GroupDocs‑Repository und die Abhängigkeit zu Ihrer pom.xml hinzu:

<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>

Wenn Sie den OCR‑Vergleich nicht nutzen, können Sie Aspose.OCR und seine nativen Bibliotheken ausschließen:

<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>

Direkter Download

Laden Sie das JAR von der GroupDocs.Comparison for Java 26.11 Download‑Seite herunter.

Ressourcen