Nous sommes heureux d’annoncer la sortie de GroupDocs.Comparison for .NET 26.5, disponible depuis mai 2026.
GroupDocs.Comparison version 26.5 apporte des améliorations de la précision du rendu PDF, une meilleure lisibilité de la comparaison CSV et des feuilles de calcul, de nouvelles capacités d’API pour la gestion des révisions et les métadonnées des modifications de feuilles de calcul, ainsi qu’un modèle de packaging NuGet mis à jour avec prise en charge multi‑framework.
Fixes and enhancements
- [Feature] Packaging NuGet multi‑framework et packages séparés par TFM. (COMPARISONNET-4770)
- [Enhancement] Comparaison PDF : amélioration de la précision du rendu des paragraphes en mode Inline. (COMPARISONNET-4751)
- [Enhancement] Amélioration des résultats de comparaison pour les documents PDF contenant des tableaux. (COMPARISONNET-4763)
- [Bug] Correction d’une ArgumentOutOfRangeException lors de la comparaison de PDF avec des tableaux stylisés. (COMPARISONNET-4762)
- [Feature] Prise en charge de la libération optionnelle du flux passé dans RevisionHandler. (COMPARISONNET-4773)
- [Enhancement] Amélioration de la lisibilité du résultat de comparaison CSV avec des marqueurs de texte. (COMPARISONNET-4769)
- [Feature] Extension de ChangeInfo avec des propriétés de feuille de calcul. (COMPARISONNET-4767)
- [Bug] La méthode Compare lève une exception pour la sortie HTML. (COMPARISONNET-4764)
Major Features
Multi-framework NuGet packaging and TFM-split packages
GroupDocs.Comparison est passé à un modèle de distribution NuGet plus avancé. Le package principal cible désormais net462;net6.0;net8.0;net10.0, remplaçant les cibles précédentes net462;netstandard2.1.
De plus, afin de réduire la taille du téléchargement, des packages NuGet dédiés par framework sont maintenant publiés en parallèle du package principal. Lors de l’installation du package spécifique à la plateforme, seuls les binaires correspondant au framework cible de l’utilisateur sont téléchargés — aucune assembly de plateforme inutilisée n’est incluse.
| Package | Framework cible |
|---|---|
GroupDocs.Comparison |
net462;net6.0;net8.0;net10.0 (tous les frameworks) |
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 |
Note : .NET Standard 2.1 n’est plus pris en charge en tant que cible dédiée. Les projets qui dépendaient auparavant de
netstandard2.1doivent migrer vers l’un des TFMs pris en charge listés ci‑dessus.
Support optional disposal of passed stream in RevisionHandler
RevisionHandler accepte désormais un paramètre leaveOpen qui contrôle si le flux sous‑jacent est libéré lorsque le gestionnaire est disposé. Lorsque leaveOpen est défini sur true, le flux reste ouvert après la libération du RevisionHandler, permettant à l’appelant de continuer à l’utiliser. Cela est utile dans les scénarios où le cycle de vie du flux est géré à l’extérieur.
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);
}
Extend ChangeInfo with Spreadsheet Properties
Trois nouvelles propriétés ont été ajoutées à ChangeInfo pour exposer les métadonnées spécifiques aux feuilles de calcul pour chaque modification détectée. Ces propriétés sont renseignées lors de la comparaison de fichiers Excel (.xlsx) et CSV (.csv) et vous permettent de localiser précisément chaque modification dans la grille de la feuille de calcul :
Row– indice de ligne (base zéro) de la cellule modifiée.Column– indice de colonne (base zéro) de la cellule modifiée.ColumnHeader– texte de l’en‑tête de la colonne contenant la cellule modifiée (si disponible).
L’exemple ci‑dessous montre comment comparer deux fichiers CSV et sérialiser la liste des modifications — incluant les nouvelles propriétés de feuille de calcul — en 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