Le GroupDocs.Comparison pour .NET est une bibliothèque C# qui vous permet de comparer des documents et de trouver des différences. Comparez et fusionnez Microsoft Word, Excel, PowerPoint, OpenDocument, PDF, Texte, HTML et de nombreux autres documents, récupérez une liste des modifications entre les documents source et cible, appliquez ou rejetez les modifications et enregistrez les résultats avec GroupDocs .API de comparaison. En plus de cela, GroupDocs.Comparison peut identifier les changements de style et de formatage - comme le gras, l’italique, le soulignement, le barré, les types de police, etc.

Les algorithmes de détection des changements utilisés par GroupDocs.Comparison permettent de détecter les différences dans les différentes parties et blocs du document :

  • Blocs de texte - paragraphes, mots et caractères ;
  • Les tables;
  • Images;
  • Formes etc…

Voici quelques étapes simples pour comparer deux fichiers texte et montrer les différences :

  • Instancier l’objet Comparer avec le chemin ou le flux du document source ;
  • Appelez la méthode Add et spécifiez le chemin ou le flux du document cible ;
  • Appelez la méthode Comparer.

L’extrait de code suivant illustre le cas le plus simple de comparaison de documents à l’aide de quelques lignes de code.

Comparer les documents du fichier local

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
}

Comparer les documents du flux

using (Comparer comparer = new Comparer(File.OpenRead(“source.docx”)))
{
    comparer.Add(File.OpenRead(“target.docx”));
    comparer.Compare(File.Create(“result.docx”));
}

Supposons que vous ayez deux contrats au format DOCX qui ont été conclus au cours d’années différentes. Si vous utilisez le code ci-dessus pour comparer ces contrats, vous obtenez un fichier DOCX où les éléments supprimés sont marqués en rouge, les ajoutés en bleu et les modifiés en vert comme indiqué ci-dessous :

Accepter ou rejeter les différences détectées

GroupDocs.Comparison offre la possibilité d’appliquer ou d’ignorer des modifications spécifiques entre les documents source et cible et d’enregistrer le document résultant avec (ou sans) les modifications sélectionnées.

Voici les étapes pour appliquer/rejeter les modifications apportées au document résultant.

L’exemple de code suivant montre comment accepter/rejeter les différences détectées.

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(File.Create(“result.docx”), new SaveOptions(), new ApplyChangeOptions() { Changes = changes });
}

Générer un aperçu des pages du document

GroupDocs.Comparison permet de générer des aperçus de page pour les documents source, cible et résultant à l’aide de la méthode GeneratePreview d’une classe Document.

La classe PreviewOptions est utilisée pour gérer le processus de génération d’aperçu - spécifiez les numéros de page souhaités, le format d’image, etc.

Voici les étapes pour générer un aperçu de document avec l’API GroupDocs.Comparison :

  • Créez une nouvelle instance de la classe Comparer et transmettez le chemin du document source en tant que paramètre du constructeur ;
  • Ajouter le(s) document(s) cible(s) à la comparaison à l’aide de la méthode Ajouter ;
  • Les propriétés Source et Targets de l’objet Comparer permettent d’accéder aux documents source et cible et fournissent la méthode GeneratePreview ;
  • Instanciez l’objet PreviewOptions avec :
    • délégué pour chaque création de flux de page (voir gestionnaire d’événement CreatePageStream) ;
    • format d’aperçu de l’image - PNG / JPG / BMP ;
    • numéros de page à traiter ;
    • taille personnalisée des images d’aperçu (si nécessaire).
  • Appelez la méthode GeneratePreview du document Source et Targets et transmettez-lui PreviewOptions.

Obtenir des aperçus de page pour le document résultant

using (Comparer comparer = new Comparer(“source.docx”))
{
    comparer.Add(“target.docx”);
    comparer.Compare(“result.docx”);
    Document document = new Document(File.OpenRead(“result.docx”));
    PreviewOptions previewOptions = new PreviewOptions(pageNumber =>
    {
        var pagePath = Path.Combine(“C:\\”, $"result\_{pageNumber}.png");
        return File.Create(pagePath);
    });
    previewOptions.PreviewFormat = PreviewFormats.PNG;
    previewOptions.PageNumbers = new int[] { 1, 2 };
    document.GeneratePreview(previewOptions);
}

Comparez plusieurs documents

GroupDocs.Comparison permet de comparer plus de deux documents. L’exemple de code suivant montre comment comparer plusieurs documents par programmation.

using (Comparer comparer = new Comparer(“source.docx”)
{
    comparer.Add(“target1.docx”);
    comparer.Add(“target2.docx”);
    comparer.Add(“target3.docx”);
    comparer.Compare(“result.docx”);
}

Installation

NuGet est le moyen le plus simple de télécharger et d’installer GroupDocs.Comparison pour .NET. Veuillez obtenir une licence temporaire pour tester la bibliothèque sans aucune restriction fonctionnelle.

Veuillez consulter la documentation pour en savoir plus sur la bibliothèque. Nous proposons également une assistance technique gratuite, alors n’hésitez pas à nous contacter - nous serons heureux de vous aider.