Introducción
Ya sea que trabajes con contratos, políticas internas, especificaciones técnicas o textos de marketing, el patrón es el mismo: acumulas rápidamente varias versiones .docx y en algún momento necesitas ver qué cambió exactamente entre ellas. El cuadro de diálogo Compare integrado en Word está bien para una comprobación manual ocasional, pero no ayuda mucho cuando la comparación se vuelve parte de un proceso regular o tiene que automatizarse en el servidor.
GroupDocs.Comparison for .NET te permite ejecutar esa comparación desde código y producir el resultado en el formato que prefieran tus revisores. La biblioteca admite dos modos de salida de comparación para documentos Word:
- Modo de revisión — las diferencias se escriben como marcas de revisión (control de cambios) de Word. Los revisores abren el archivo, ven los familiares controles Revision → Accept / Reject y trabajan los cambios uno a uno.
- Modo de resaltado — el texto insertado, eliminado y modificado se muestra con resaltados de color directamente en el cuerpo del documento, de modo que las diferencias son visibles de un vistazo mientras lees el texto final.
En este artículo repasaremos ambos enfoques con ejemplos funcionales en C#, exploraremos la clase WordCompareOptions y sus propiedades, y discutiremos cuándo tiene más sentido cada modo.
Requisitos previos
Antes de comenzar:
- .NET 6.0 o posterior.
- GroupDocs.Comparison for .NET — instala vía NuGet:
dotnet add package GroupDocs.Comparison
- Un archivo de licencia (
GroupDocs.Comparison.lic). Sin él la biblioteca se ejecuta en modo de evaluación con marcas de agua y límites de tamaño. Puedes solicitar una licencia temporal para pruebas. - Dos archivos Word para comparar — los llamaremos
source.docxytarget.docx. Contenido de ejemplo:
source.docx |
target.docx |
|---|
Método 1: Comparación con Seguimiento de Revisiones
Cuándo usar: los revisores necesitan aceptar o rechazar cada cambio individualmente en Microsoft Word usando las herramientas integradas Revision → Accept / Reject — por ejemplo, durante negociaciones de contrato o ciclos de aprobación de políticas.
using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
var options = new WordCompareOptions
{
DetectStyleChanges = true,
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
};
comparer.Compare("result_revision.docx", options);
}
Documento resultante en modo de revisión (control de cambios):
Qué ocurre tras bambalinas:
ComparisonDisplayMode.Revisionsindica al motor que genere marcado nativo de control de cambios de Word.DetectStyleChanges = truehace que la comparación detecte diferencias de formato (negrita, tamaño de fuente, color) junto con ediciones de texto.- El archivo de salida se abre en Microsoft Word con el panel Review listo — cada inserción, eliminación y ajuste de estilo está listado y puede aceptarse o rechazarse.
Como el modo de revisión no necesita volver a renderizar el contenido del documento — simplemente adjunta metadatos de revisión — tiende a ser el más rápido de los dos modos.
Método 2: Comparación en Modo de Resaltado
Cuándo usar: los interesados quieren un documento limpio que muestre claramente qué cambió pero no están interesados en trabajar cada revisión. Un escenario típico es un gerente que abre la última versión en Word y escanea rápidamente las inserciones y eliminaciones resaltadas para entender el impacto de la actualización.
using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
var options = new WordCompareOptions
{
DetectStyleChanges = true,
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Highlight
};
comparer.Compare("result_highlighted.docx", options);
}
Documento resultante en modo de resaltado:
Qué ocurre tras bambalinas:
ComparisonDisplayMode.Highlightrenderiza las diferencias como resaltados de color en línea — rojo para eliminaciones, verde para inserciones, azul para cambios de estilo (colores predeterminados que pueden ajustarse medianteWordCompareOptions/CompareOptionsy sus correspondientesStyleSettings).- El documento está listo para leer o imprimir sin pasos extra.
- No se añade metadato de control de cambios al archivo.
El modo de resaltado realiza más trabajo internamente porque debe modificar el contenido real del documento y aplicar formato. Para archivos grandes puedes notar una diferencia de rendimiento significativa comparado con el modo de revisión.
Explorando WordCompareOptions
Ambos ejemplos anteriores usan WordCompareOptions — una clase que hereda configuraciones comunes de CompareOptions y agrega propiedades específicas para documentos Word. A través de este tipo controlas el modo de visualización (DisplayMode), si se rastrean cambios de estilo (DetectStyleChanges), qué nombre de autor aparece en las revisiones (RevisionAuthorName), cómo se manejan saltos de línea, marcadores, etc.
Además, la clase base CompareOptions expone estilos para elementos insertados, eliminados y modificados (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), de modo que puedes afinar colores y formato de los resaltados cuando lo necesites.
A continuación, un pequeño ejemplo de configuración de opciones para una verificación solo de texto en modo de revisión:
var options = new WordCompareOptions
{
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions,
DetectStyleChanges = false,
RevisionAuthorName = "QA Bot",
CompareBookmarks = true
};
Obteniendo Cambios Programáticamente
Independientemente del modo de salida que elijas (revisiones o resaltado), siempre puedes obtener una lista estructurada de diferencias detectadas mediante la API común Comparer.GetChanges. Este método funciona para Word y todos los demás formatos compatibles.
using (var comparer = new Comparer("source.docx"))
{
comparer.Add("target.docx");
comparer.Compare("result_revision.docx");
var changes = comparer.GetChanges(); // devuelve ChangeInfo[]
}
Esto es útil cuando necesitas procesar los cambios en tu propio flujo de trabajo — por ejemplo, generar un informe HTML personalizado, alimentar diferencias a un sistema de revisión o agregar estadísticas sobre ediciones. Consulta la referencia oficial de la API para más detalles: Comparer.GetChanges.
Trabajando con Documentos Protegidos con Contraseña
Si los documentos están protegidos con una contraseña, aún pueden compararse: la contraseña se pasa mediante LoadOptions al crear el Comparer. Este enfoque funciona de la misma manera para Word, PDF y otros formatos admitidos.
using GroupDocs.Comparison;
using GroupDocs.Comparison.Options;
using (var comparer = new Comparer("source_protected.docx",
new LoadOptions { Password = "secret" }))
{
comparer.Add("target_protected.docx");
var options = new WordCompareOptions
{
DisplayMode = WordCompareOptions.ComparisonDisplayMode.Revisions
};
comparer.Compare("result_protected.docx", options);
}
Obtener una Prueba Gratuita
Puedes descargar GroupDocs.Comparison for .NET desde la página oficial de lanzamientos. Para pruebas sin restricciones, solicita una licencia temporal — no se requiere tarjeta de crédito.
Preguntas Frecuentes
P: ¿Necesito Microsoft Word o Office instalado en el servidor?
R: No. GroupDocs.Comparison es una biblioteca .NET independiente; lee y escribe archivos DOCX por sí misma.
P: ¿Puedo comparar documentos en otros formatos además de Word?
R: Sí — la biblioteca admite PDFs, hojas de cálculo Excel, presentaciones, archivos de texto plano y muchos más. La lista completa está en la documentación.
P: ¿Qué ocurre si no establezco una licencia?
R: La biblioteca funciona en modo de evaluación. Los documentos de salida contendrán una marca de agua y solo se procesarán las primeras páginas. Una licencia temporal elimina estas restricciones para pruebas.
P: ¿Puedo personalizar los colores de resaltado?
R: Los colores predeterminados funcionan para la mayoría de los casos. Para un control avanzado de estilo, revisa la propiedad StyleSettings en CompareOptions.
Conclusión
GroupDocs.Comparison for .NET te brinda dos formas claras de comparar documentos Word desde código. El modo de revisión se integra directamente en el flujo de trabajo de revisión que tu equipo ya utiliza; el modo de resaltado proporciona un resumen visual instantáneo para quienes solo necesitan ver los cambios. La clase WordCompareOptions te permite afinar la salida — desde la detección de estilos y la atribución de autor hasta la comparación de marcadores y propiedades del documento.
Elige el modo que se ajuste a tu escenario, o genera ambos y permite que cada audiencia seleccione la vista que prefiera.