Jesteśmy szczęśliwi, mogąc ogłosić wydanie GroupDocs.Comparison for .NET 26.5, dostępne od maja 2026.
Wersja 26.5 GroupDocs.Comparison wprowadza ulepszenia dokładności renderowania PDF, zwiększoną czytelność porównywania CSV i arkuszy kalkulacyjnych, nowe możliwości API do obsługi rewizji i metadanych zmian w arkuszach oraz zaktualizowany model pakowania NuGet z obsługą wielu frameworków.
Poprawki i udoskonalenia
- [Feature] Pakowanie NuGet wielo‑frameworkowe i pakiety podzielone na TFM‑y. (COMPARISONNET-4770)
- [Enhancement] Porównywanie PDF: poprawa dokładności renderowania akapitów w trybie Inline. (COMPARISONNET-4751)
- [Enhancement] Ulepszenie wyników porównania dokumentów PDF zawierających tabele. (COMPARISONNET-4763)
- [Bug] Naprawa ArgumentOutOfRangeException przy porównywaniu PDF‑ów z formatowanymi tabelami. (COMPARISONNET-4762)
- [Feature] Opcjonalne zwalnianie przekazanego strumienia w RevisionHandler. (COMPARISONNET-4773)
- [Enhancement] Poprawa czytelności wyników porównania CSV dzięki znacznikom tekstowym. (COMPARISONNET-4769)
- [Feature] Rozszerzenie ChangeInfo o właściwości arkusza kalkulacyjnego. (COMPARISONNET-4767)
- [Bug] Metoda Compare zgłasza wyjątek przy wyjściu HTML. (COMPARISONNET-4764)
Główne funkcje
Pakowanie NuGet wielo‑frameworkowe i pakiety podzielone na TFM‑y
GroupDocs.Comparison przeszło na bardziej zaawansowany model dystrybucji pakietów NuGet. Główny pakiet teraz celuje w net462;net6.0;net8.0;net10.0, zastępując poprzednie cele net462;netstandard2.1.
Dodatkowo, aby zmniejszyć rozmiar pobierania, publikowane są dedykowane pakiety NuGet dla poszczególnych frameworków obok głównego pakietu. Instalując pakiet specyficzny dla platformy, pobierane są tylko binaria pasujące do docelowego frameworku użytkownika — nie są dołączane nieużywane zestawy platformowe.
| Pakiet | Framework docelowy |
|---|---|
GroupDocs.Comparison |
net462;net6.0;net8.0;net10.0 (wszystkie frameworki) |
GroupDocs.Comparison.net462 |
.NET Framework 4.6.2 |
GroupDocs.Comparison.net6 |
.NET 6.0 |
GroupDocs.Comparison.net8 |
.NET 8.0 |
GroupDocs.Comparison.net10 |
.NET 10.0 |
Uwaga: .NET Standard 2.1 nie jest już obsługiwany jako dedykowany cel. Projekty, które wcześniej korzystały z
netstandard2.1, powinny migrować do jednego z obsługiwanych TFM‑ów wymienionych powyżej.
Opcjonalne zwalnianie przekazanego strumienia w RevisionHandler
RevisionHandler przyjmuje teraz parametr leaveOpen, który kontroluje, czy podstawowy strumień zostanie zwolniony po zwolnieniu handlera. Gdy leaveOpen jest ustawione na true, strumień pozostaje otwarty po zwolnieniu RevisionHandler, co pozwala wywołującemu kontynuować jego użycie. Jest to przydatne w scenariuszach, w których cykl życia strumienia jest zarządzany zewnętrznie.
using FileStream revisionFileStream = new FileStream("source.docx", FileMode.Open, FileAccess.ReadWrite);
using (RevisionHandler revisionHandler = new RevisionHandler(revisionFileStream, leaveOpen: true))
{
List<RevisionInfo> revisionList = revisionHandler.GetRevisions();
foreach (var rev in revisionList)
{
if (rev.Type == RevisionType.Deletion)
rev.Action = RevisionAction.Accept;
}
ApplyRevisionOptions revisionChanges = new ApplyRevisionOptions { Changes = revisionList };
revisionHandler.ApplyRevisionChanges(resultPath, revisionChanges);
}
Rozszerzenie ChangeInfo o właściwości arkusza kalkulacyjnego
Do ChangeInfo dodano trzy nowe właściwości, które udostępniają metadane specyficzne dla arkusza kalkulacyjnego dla każdej wykrytej zmiany. Właściwości te są wypełniane przy porównywaniu plików Excel (.xlsx) i CSV (.csv) i pozwalają precyzyjnie zlokalizować każdą zmianę w siatce arkusza:
Row– indeks wiersza (zero‑based) zmienionej komórki.Column– indeks kolumny (zero‑based) zmienionej komórki.ColumnHeader– tekst nagłówka kolumny zawierającej zmienioną komórkę (jeśli dostępny).
Poniższy przykład pokazuje, jak porównać dwa pliki CSV i zserializować listę zmian — wraz z nowymi właściwościami arkusza — do formatu JSON:
string source = "source.csv";
string target = "target.csv";
string outFilePathJson = "result.json";
using (var comparer = new Comparer(source))
{
comparer.Add(target);
var doc = comparer.Compare();
var changes = doc.Changes;
var json = changes.Select(c => new
{
id = c.Id,
type = c.Type.ToString(),
componentType = c.ComponentType,
row = c.Row,
column = c.Column,
columnHeader = c.ColumnHeader,
sourceText = c.SourceText,
targetText = c.TargetText,
text = c.Text
});
File.WriteAllText(outFilePathJson,
JsonSerializer.Serialize(json, new JsonSerializerOptions { WriteIndented = true }));
}
Ulepszenia
Poprawa czytelności wyników porównania CSV dzięki znacznikom tekstowym
Wyjście porównania CSV używa teraz wbudowanych znaczników tekstowych, aby wstawiona i usunięta treść była od razu widoczna bez konieczności wyświetlania obok siebie:
- Wstawiony tekst jest otoczony nawiasami okrągłymi — np.
(nowa wartość) - Usunięty tekst jest otoczony nawiasami kwadratowymi — np.
[stara wartość]
Jak uzyskać aktualizację
Najnowszą wersję możesz pobrać z NuGet lub ściągnąć bezpośrednio ze strony GroupDocs.
NuGet
GroupDocs.Comparison for .NET 26.5
Bezpośrednie pobranie
Pobierz zestawy dla .NET i .NET Framework ze strony GroupDocs.Comparison for .NET 26.5.