Estamos felices de anunciar el lanzamiento de GroupDocs.Comparison for .NET 26.5, disponible a partir de ** mayo de 2026**.
La versión 26.5 de GroupDocs.Comparison aporta mejoras en la precisión de renderizado de PDF, mayor legibilidad en la comparación de CSV y hojas de cálculo, nuevas capacidades de API para el manejo de revisiones y metadatos de cambios en hojas de cálculo, y un modelo de empaquetado NuGet actualizado con soporte multi‑framework.
Correcciones y mejoras
- [Feature] Empaquetado NuGet multi‑framework y paquetes divididos por TFM. (COMPARISONNET-4770)
- [Enhancement] Comparación de PDF: mejorar la precisión del renderizado de párrafos en modo Inline. (COMPARISONNET-4751)
- [Enhancement] Mejorar los resultados de comparación para documentos PDF con tablas. (COMPARISONNET-4763)
- [Bug] Solucionar ArgumentOutOfRangeException al comparar PDFs con tablas con estilo. (COMPARISONNET-4762)
- [Feature] Soporte para la eliminación opcional del stream pasado en RevisionHandler. (COMPARISONNET-4773)
- [Enhancement] Mejorar la legibilidad del resultado de comparación de CSV con marcadores de texto. (COMPARISONNET-4769)
- [Feature] Ampliar ChangeInfo con propiedades de hoja de cálculo. (COMPARISONNET-4767)
- [Bug] El método Compare lanza una excepción para salida HTML. (COMPARISONNET-4764)
Funcionalidades principales
Empaquetado NuGet multi‑framework y paquetes divididos por TFM
GroupDocs.Comparison ha pasado a un modelo de entrega de paquetes NuGet más avanzado. El paquete principal ahora tiene como destinos net462;net6.0;net8.0;net10.0, reemplazando los destinos anteriores net462;netstandard2.1.
Además, para reducir el tamaño de descarga, se publican paquetes NuGet dedicados por framework junto al paquete principal. Al instalar el paquete específico de plataforma, solo se descargan los binarios que coinciden con el framework de destino del usuario, sin incluir ensamblados de plataforma no utilizados.
| Paquete | Framework de destino |
|---|---|
GroupDocs.Comparison |
net462;net6.0;net8.0;net10.0 (todos los 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 |
Nota: .NET Standard 2.1 ya no se admite como objetivo dedicado. Los proyectos que antes dependían de
netstandard2.1deben migrar a uno de los TFMs compatibles listados arriba.
Soporte para la eliminación opcional del stream pasado en RevisionHandler
RevisionHandler ahora acepta un parámetro leaveOpen que controla si el stream subyacente se elimina cuando el manejador se elimina. Cuando leaveOpen se establece en true, el stream permanece abierto después de que RevisionHandler se elimina, lo que permite al llamador seguir utilizándolo. Esto es útil en escenarios donde el ciclo de vida del stream se gestiona externamente.
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);
}
Ampliar ChangeInfo con propiedades de hoja de cálculo
Se han añadido tres nuevas propiedades a ChangeInfo para exponer metadatos específicos de hoja de cálculo para cada cambio detectado. Estas propiedades se rellenan al comparar archivos Excel (.xlsx) y CSV (.csv) y permiten localizar con precisión cada cambio dentro de la cuadrícula de la hoja:
Row– índice de fila (base cero) de la celda modificada.Column– índice de columna (base cero) de la celda modificada.ColumnHeader– texto del encabezado de la columna que contiene la celda modificada (cuando está disponible).
El ejemplo a continuación muestra cómo comparar dos archivos CSV y serializar la lista de cambios —incluyendo las nuevas propiedades de hoja de cálculo— a 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 }));
}
Mejoras
Mejorar la legibilidad del resultado de comparación de CSV con marcadores de texto
La salida de comparación de CSV ahora utiliza marcadores de texto en línea para que el contenido insertado y eliminado sea visible de inmediato sin necesidad de una vista lado a lado:
- El texto insertado se envuelve entre paréntesis —por ejemplo,
(nuevo valor) - El texto eliminado se envuelve entre corchetes —por ejemplo,
[valor antiguo]
Cómo obtener la actualización
Puedes obtener la última versión desde NuGet o descargarla directamente desde el sitio web de GroupDocs.
NuGet
GroupDocs.Comparison for .NET 26.5
Descarga directa
Descarga los ensamblados para .NET y .NET Framework desde la página GroupDocs.Comparison for .NET 26.5.