Introducción
Ya sea que trabajes con contratos, políticas internas, especificaciones técnicas o copias 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 incorporado en Word es suficiente para una verificación manual ocasional, pero no ayuda mucho cuando la comparación pasa a ser parte de un proceso regular o necesita automatizarse del lado del servidor.
GroupDocs.Comparison for .NET te permite ejecutar esa comparación desde código y generar el resultado en el formato que prefieran tus revisores. La biblioteca admite dos modos de salida 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 Review → Accept / Reject y procesan los cambios uno por 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 recorreremos ambos enfoques con ejemplos funcionales en C#, exploraremos la clase WordCompareOptions y sus propiedades, y discutiremos cuándo tiene más sentido cada modo.
Prerrequisitos
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 incorporadas Review → Accept / Reject — por ejemplo, durante negociaciones de contratos 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 (seguimiento de cambios):
Qué ocurre bajo el capó:
ComparisonDisplayMode.Revisionsindica al motor que genere marcas nativas de control de cambios de Word.DetectStyleChanges = truehace que la comparación detecte diferencias de formato (negrita, tamaño de fuente, color) junto con las 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 aparece 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 — suele ser el más rápido de los dos modos.
Método 2: Comparación en Modo 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 individualmente. 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 bajo el capó:
ComparisonDisplayMode.Highlightrepresenta 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 susStyleSettingsrelacionados).- El documento está listo para leerse o imprimirse sin pasos adicionales.
- 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. En 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 la configuración común 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 los elementos insertados, eliminados y modificados (InsertedItemStyle, DeletedItemStyle, ChangedItemStyle), de modo que puedas afinar colores y formato de los resaltados cuando sea necesario.
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
};
Obtención de Cambios Programáticamente
Independientemente del modo de salida que elijas (revisiones o resaltado), siempre puedes obtener una lista estructurada de las 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 post‑procesar los cambios en tu propio flujo de trabajo — por ejemplo, generar un informe HTML personalizado, alimentar las 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.
Trabajo con Documentos Protegidos por Contraseña
Si los documentos están protegidos con contraseña, aún pueden compararse: la contraseña se pasa mediante LoadOptions al crear el Comparer. Este enfoque funciona igual para Word, PDF y otros formatos compatibles.
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);
}
Obtén 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 PDF, 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 configuro 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 son adecuados para la mayoría de los casos. Para un control avanzado de estilos, revisa la propiedad StyleSettings en CompareOptions.
Conclusión
GroupDocs.Comparison for .NET te ofrece dos formas claras de diferenciar documentos Word desde código. El modo de revisión se integra directamente en el flujo de revisión que tu equipo ya utiliza; el modo de resaltado entrega 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 estilo 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 elija la vista que prefiera.