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:

  1. 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.
  2. 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.docx y target.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):

Comparison result in revision (track changes) mode

Qué ocurre tras bambalinas:

  • ComparisonDisplayMode.Revisions indica al motor que genere marcado nativo de control de cambios de Word.
  • DetectStyleChanges = true hace 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:

Comparison result in highlight mode

Qué ocurre tras bambalinas:

  • ComparisonDisplayMode.Highlight renderiza 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 mediante WordCompareOptions / CompareOptions y sus correspondientes StyleSettings).
  • 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.

Recursos Adicionales