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
- 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).
- 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.
- PDF‑Layout. PDF‑Ergebnisse werden anders angeordnet: Jede Komponente bleibt dort, wo sie auf der Quellseite war.
- Reihenfolge von Ersetzungen. In Text‑ und Inline‑PDF‑Ergebnissen wird ein ersetztes Wort oder ein Ausdruck jetzt zuerst alt, dann neu angezeigt.
- 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.TEXTzeigt nur den erkannten Text, wobei die Änderungen darin markiert sind. - Änderungsdetails. Jede Änderung ist ein
OcrChangeInfomit den Kästen, die sie auf beiden Bildern abdeckt (getSourceBoxes(),getTargetBoxes()) und der Erkennungs‑Confidence (getConfidence()). Die Kästen sind imTEXT‑Modus leer. - Sprache.
setLanguage(OcrLanguage)wählt die Sprache oder das Schriftsystem; Standard istLATIN. Andere Sprachen benötigen ein Erkennungs‑Modell, das beim ersten Gebrauch heruntergeladen wird.setDisableResourceDownloads(true)undsetResourcesPath(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.setHighlightColorfü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.