UiPath Documentation
activities
latest
false
Actividades del flujo de trabajo
Importante :
Este contenido se ha localizado parcialmente a partir de un sistema de traducción automática. La localización de contenidos recién publicados puede tardar entre una y dos semanas en estar disponible.

Comparar documentos PDF

Verifica si dos documentos son equivalentes, utilizando varias opciones de comparación, incluidos los siguientes tipos de comparación: Comparar palabras.

Verifica si dos documentos son equivalentes, utilizando varias opciones de comparación, incluidos los siguientes tipos de comparación:

  • Comparar palabras.
  • Comparar líneas.
  • Comparando caracteres como variables char .
    Nota:

    El tipo de documento admitido es PDF.

Definición​

Espacio de nombres: UiPath.Testing.API

Ensamblado: UiPath.Testing.Activities.Api (en 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 Cadena : la ruta del documento base que se utiliza como referencia para la comparación.

targetPath Cadena : la ruta del documento que se compara con el documento base.

comparisonType ComparisonType (Opcional): el tipo de comparación que se utilizará al comparar documentos. Las siguientes opciones están disponibles:

  • ComparisonType.Char: compara cada carácter (char) en los documentos.
  • ComparisonType.Line: compara cada línea en los documentos.
  • ComparisonType.Word: compara cada palabra en los documentos.

opts OpcionesDeCompararDocumentos : las opciones de comparación específicas que deben utilizarse para esta operación. Para crear un objeto de tipo CompareDocumentsOptions, utiliza laclase TestingOptions.CompareDocuments.

ValorDeRetorno​

ComparisonResult

El resultado de la acción de comparación, almacenado dentro de una variable ComparisonResult.

Ejemplos​

1. Comparar PDF por caracteres​

En este ejemplo, estamos comparando dos archivos PDF, una factura de luz y una factura de agua. La comparación se realiza a nivel de carácter. Las variables firstBill y secondBill representan las rutas de estos archivos PDF. La regla de comodín y la regla de expresión regular proporcionadas junto con los métodos WithIgnoreWildcardRule y WithIgnoreRegexRule se utilizan para ignorar patrones específicos en la comparación. Por ejemplo, la regla comodín 2022 y la regla regex \d{1,2}/\d{1,2}/\d{4} ignoran las fechas, suponiendo que estén en el formato MM/DD/AAAA en la comparación, ya que pueden diferir en dos facturas independientes y no son relevantes para la estructura de las facturas.

Una vez realizada la comparación, el método WithGenerateHtml crea un informe HTML de la comparación, y cualquier diferencia encontrada se registra en los registros utilizando el método 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. Comparar PDF por palabra​

En este ejemplo, estamos comparando los mismos archivos PDF que en el ejemplo anterior: una factura de luz y una factura de agua. La comparación se realiza a nivel de palabra. Las variables firstBill y secondBill representan las rutas de estos archivos PDF. La regla de comodín y la regla de expresión regular proporcionadas junto con los métodos WithIgnoreWildcardRule y WithIgnoreRegexRule se utilizan para ignorar patrones específicos en la comparación. Por ejemplo, la regla de comodín 2022 ignora las fechas, suponiendo que estén en el formato MM/DD/AAAA en la comparación, ya que pueden diferir en dos facturas independientes y no son relevantes para la estructura de las facturas. La regla regex [$]\d+\.\d{2} ignora los valores de moneda, suponiendo que estén en un formato similar a $XX.XX.

Una vez realizada la comparación, el método WithGenerateHtml crea un informe HTML de la comparación, y cualquier diferencia encontrada se registra en los registros utilizando el método 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. Comparar PDF por línea​

En este ejemplo, similar al anterior, comparamos dos archivos PDF, una factura de luz y una factura de agua. En este escenario, la comparación se realiza a nivel de línea. Las variables firstBill y secondBill representan las rutas de estos archivos PDF. La regla de comodín y la regla regex proporcionadas junto con los métodos WithIgnoreWildcardRule y WithIgnoreRegexRule se utilizan para ignorar patrones específicos en la comparación.

Por ejemplo, la regla del comodín 2022 ignora las fechas (suponiendo que están en el formato MM/DD/AAAA) en la comparación, ya que pueden diferir en dos facturas independientes y no son relevantes para la estructura de las facturas.La regla regex [$]\d+\.\d{2} ignora los valores de moneda, suponiendo que están en un formato similar a $XX.XX.

Una vez realizada la comparación, el método WithGenerateHtml crea un informe HTML de la comparación, y cualquier diferencia encontrada se registra en los registros utilizando el método 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);

En todos los ejemplos, la propiedad AreEquivalent devuelve si los documentos son iguales o no.

¿Te ha resultado útil esta página?

Conectar

¿Necesita ayuda? Soporte

¿Quiere aprender? UiPath Academy

¿Tiene alguna pregunta? Foro de UiPath

Manténgase actualizado