activities
latest
false
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.
UiPath logo, featuring letters U and I in white

Activités de workflow

Dernière mise à jour 13 mars 2026

Comparer des documents PDF

Vérifie si deux documents sont équivalents, en utilisant plusieurs options de comparaison, y compris les types de comparaison suivants :

  • Comparer des mots.
  • Comparaison des lignes.
  • Comparaison des caractères en tant que variables char .
    Remarque :

    Le type de document pris en charge est PDF.

Définition

Espace de noms : UiPath.Testing.API

Assembly : UiPath.Testing.Activities.Api (dans UiPath.Testing.Activities.Api.dll)

ComparePdfDocuments(string, string, ComparisonType, CompareDocumentsOptions)

ComparisonResult ComparePdfDocuments(
    string baselinePath,
    string targetPath,
    [ComparisonType comparisonType],
    [CompareDocumentsOptions opts])
ComparisonResult ComparePdfDocuments(
    string baselinePath,
    string targetPath,
    [ComparisonType comparisonType],
    [CompareDocumentsOptions opts])

baselinePath Chaîne : le chemin d’accès du document de base utilisé comme référence pour la comparaison.

targetPath Chaîne : le chemin d'accès du document comparé au document de base.

comparisonType ComparisonType (Facultatif) : le type de comparaison à utiliser lors de la comparaison de documents. Les options suivantes sont disponibles :

  • ComparisonType.Char : compare chaque caractère (char) dans les documents.
  • ComparisonType.Line : compare chaque ligne dans les documents.
  • ComparisonType.Word : compare chaque mot dans les documents.

opts ComparerOptionsDocuments : les options de comparaison spécifiques qui doivent être utilisées pour cette opération. Pour créer un objet de type CompareDocumentsOptions, utilisez laclasse TestingOptions.CompareDocuments.

RetournerValeur

ComparisonResult

Le résultat de l’action de comparaison, stocké dans une variable ComparisonResult.

Exemples

1. Comparaison de fichiers PDF par caractères:

Dans cet exemple, nous comparez deux fichiers PDF, une facture légère et une facture d'eau. La comparaison se fait au niveau du caractère. Les variables firstBill et secondBill représentent les chemins d'accès de ces fichiers PDF. La règle de caractère générique et la règle de regex fournies avec les méthodes WithIgnoreWildcardRule et WithIgnoreRegexRule sont utilisées pour ignorer des modèles spécifiques dans la comparaison. Par exemple, la règle de caractère générique 2022 et la règle de regex \d{1,2}/\d{1,2}/\d{4} ignorent les dates, en supposant qu'elles sont au format JJ/MM/AAAA dans la comparaison, car elles peuvent différer dans deux factures distinctes et ne sont pas pertinentes pour la structure des factures.

Une fois la comparaison terminée, la méthode WithGenerateHtml crée un rapport HTML de la comparaison, et toutes les différences trouvées sont enregistrées dans les journaux à l'aide de la méthode Log.

var firstBill = @"C:\bills\2024.10\pdfs for compare\electricity_bill.pdf";
var secondBill = @"C:\bills\2024.10\pdfs for compare\water_bill.pdf";

var identicalCharCompareResult = testing.VerifyDocumentsEquivalence(
    firstBill, secondBill, 
    ComparisonType.Character, 
    TestingOptions.CompareDocuments()
        .WithGenerateHtml(@".\HtmlCompareResults\PDFCharCompare.html")
        .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
        .WithIgnoreRegexRule("RegexRule", @"\d{1,2}/\d{1,2}/\d{4}", true)
);

Log("pdf compare by char " + identicalCharCompareResult.AreEquivalent.ToString(),LogLevel.Error);
var firstBill = @"C:\bills\2024.10\pdfs for compare\electricity_bill.pdf";
var secondBill = @"C:\bills\2024.10\pdfs for compare\water_bill.pdf";

var identicalCharCompareResult = testing.VerifyDocumentsEquivalence(
    firstBill, secondBill, 
    ComparisonType.Character, 
    TestingOptions.CompareDocuments()
        .WithGenerateHtml(@".\HtmlCompareResults\PDFCharCompare.html")
        .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
        .WithIgnoreRegexRule("RegexRule", @"\d{1,2}/\d{1,2}/\d{4}", true)
);

Log("pdf compare by char " + identicalCharCompareResult.AreEquivalent.ToString(),LogLevel.Error);

2. Comparaison de fichiers PDF par mot:

Dans cet exemple, nous comparez les mêmes fichiers PDF que dans l'exemple précédent : une facture de lumière et une facture d'eau. La comparaison se fait au niveau des mots. Les variables firstBill et secondBill représentent les chemins d'accès de ces fichiers PDF. La règle de caractère générique et la règle de regex fournies avec les méthodes WithIgnoreWildcardRule et WithIgnoreRegexRule sont utilisées pour ignorer des modèles spécifiques dans la comparaison. Par exemple, la règle de caractère générique 2022 ignore les dates, en supposant qu'elles sont au format JJ/MM/AAAA dans la comparaison, car elles peuvent différer dans deux factures distinctes et ne sont pas pertinentes par rapport à la structure des factures. La règle Regex [$]\d+\.\d{2} ignore les valeurs de devise, supposant qu'elles sont dans un format similaire à $XX.XX.

Une fois la comparaison terminée, la méthode WithGenerateHtml crée un rapport HTML de la comparaison, et toutes les différences trouvées sont enregistrées dans les journaux à l'aide de la méthode Log.

var firstBill = @"C:\bills\2024.10\pdfs for compare\electricity_bill.pdf";
var secondBill = @"C:\bills\2024.10\pdfs for compare\water_bill.pdf";

var differentWordCompareResult = testing.VerifyDocumentsEquivalence(
    firstBill, secondBill, 
    ComparisonType.Word, 
    TestingOptions.CompareDocuments()
        .WithGenerateHtml(@".\HtmlCompareResults\PDFWordCompareDiff.html")
        .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
        .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
);

Log("pdf compare by Word " + differentWordCompareResult.AreEquivalent.ToString(), LogLevel.Error);
var firstBill = @"C:\bills\2024.10\pdfs for compare\electricity_bill.pdf";
var secondBill = @"C:\bills\2024.10\pdfs for compare\water_bill.pdf";

var differentWordCompareResult = testing.VerifyDocumentsEquivalence(
    firstBill, secondBill, 
    ComparisonType.Word, 
    TestingOptions.CompareDocuments()
        .WithGenerateHtml(@".\HtmlCompareResults\PDFWordCompareDiff.html")
        .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
        .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
);

Log("pdf compare by Word " + differentWordCompareResult.AreEquivalent.ToString(), LogLevel.Error);

3. Comparaison de fichiers PDF par ligne:

Dans cet exemple, similaire au précédent, nous comparez deux fichiers PDF, une facture de lumière et une facture d'eau. Dans ce scénario, la comparaison s'effectue au niveau de la ligne. Les variables firstBill et secondBill représentent les chemins d'accès de ces fichiers PDF. La règle de caractère générique et la règle de regex fournies avec les méthodes WithIgnoreWildcardRule et WithIgnoreRegexRule sont utilisées pour ignorer des modèles spécifiques dans la comparaison.

Par exemple, la règle de caractère générique 2022 ignore les dates (en supposant qu’elles sont au format JJ/MM/AAAA) dans la comparaison, car elles peuvent différer dans deux factures distinctes et ne sont pas pertinentes par rapport à la structure des factures. La règle Regex [$]\d+\.\d{2} ignore les valeurs de devise, car elle suppose qu’elles sont dans un format similaire à $XX.XX.

Une fois la comparaison terminée, la méthode WithGenerateHtml crée un rapport HTML de la comparaison, et toutes les différences trouvées sont enregistrées dans les journaux à l'aide de la méthode Log.

var firstBill = @"C:\bills\2024.10\pdfs for compare\electricity_bill.pdf";
var secondBill = @"C:\bills\2024.10\pdfs for compare\water_bill.pdf";

var largeLineCompareResult = testing.VerifyDocumentsEquivalence(
    firstBill, secondBill, 
    ComparisonType.Line, 
    TestingOptions.CompareDocuments()
        .WithGeneratePdf(@".\PDFCompareResults",@".\PDFCompareResults")
        .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
        .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
);

Log("Pdf compare by line " + largeLineCompareResult.AreEquivalent.ToString(), LogLevel.Error);
var firstBill = @"C:\bills\2024.10\pdfs for compare\electricity_bill.pdf";
var secondBill = @"C:\bills\2024.10\pdfs for compare\water_bill.pdf";

var largeLineCompareResult = testing.VerifyDocumentsEquivalence(
    firstBill, secondBill, 
    ComparisonType.Line, 
    TestingOptions.CompareDocuments()
        .WithGeneratePdf(@".\PDFCompareResults",@".\PDFCompareResults")
        .WithIgnoreWildcardRule("WildcardRule", "*2022*", true)
        .WithIgnoreRegexRule("RegexRule", @"[$]\d+\.\d{2}", true)
);

Log("Pdf compare by line " + largeLineCompareResult.AreEquivalent.ToString(), LogLevel.Error);

Dans tous les exemples, la propriété AreEquivalent renvoie si les documents sont égaux ou non.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour