activities
latest
false
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.
UiPath logo, featuring letters U and I in white

Workflow-Aktivitäten

Letzte Aktualisierung 5. Sep. 2025

PDF-Dokumente vergleichen

Überprüft, ob zwei Dokumente gleichwertig sind, indem mehrere Vergleichsoptionen verwendet werden, einschließlich der folgenden Vergleichstypen:
  • Vergleichen von Wörtern.
  • Vergleichen von Zeilen.
  • Vergleichen von Zeichen als char -Variablen.
Hinweis: Der unterstützte Dokumenttyp ist PDF.

Definition

Namespace: UiPath.Testing.API

Assembly: UiPath.Testing.Activities.Api (in 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 String
Der Pfad des Basisdokuments, das als Referenz zum Vergleichen verwendet wird.
targetPath String
Der Pfad des Dokuments, der mit dem Basisdokument verglichen wird.
comparisonType ComparisonType (Optional)
Der Vergleichstyp, der beim Vergleichen von Dokumenten verwendet werden soll. Die folgenden Optionen sind verfügbar:
  • ComparisonType.Char: Vergleicht jedes Zeichen (char) in den Dokumenten.
  • ComparisonType.Line: Vergleicht jede Zeile in den Dokumenten.
  • ComparisonType.Word: Vergleicht jedes Wort in den Dokumenten.
Optionen CompareDocumentsOptions
Die spezifischen Vergleichsoptionen, die für diesen Vorgang verwendet werden sollen. Um ein Objekt vom Typ CompareDocumentsOptions zu erstellen, verwenden Sie die Klasse TestingOptions.CompareDocuments.

Rückgabewert

ComparisonResult

Das Ergebnis der Vergleichsaktion, das in einer ComparisonResult-Variablen gespeichert wird.

Beispiele

  1. Vergleichen von PDF-Dokumenten nach Zeichen:
    In diesem Beispiel vergleichen wir zwei PDF-Dateien, eine Stromrechnung und eine Wasserrechnung. Der Vergleich erfolgt auf Zeichenebene. Die Variablen firstBill und secondBill stellen die Pfade dieser PDF-Dateien dar. Die Platzhalterregel und die Regel für reguläre Ausdrücke, die zusammen mit den Methoden WithIgnoreWildcardRule und WithIgnoreRegexRule bereitgestellt werden, werden verwendet, um bestimmte Muster im Vergleich zu ignorieren. Beispielsweise ignorieren die Platzhalterregel 2022 und die Regel für reguläre Ausdrücke \d{1,2}/\d{1,2}/\d{4} Daten, vorausgesetzt, sie haben im Vergleich das Format MM/TT/JJJJ, da sie sich in zwei separaten Rechnungen unterscheiden können und für die Struktur nicht relevant sind der Rechnungen.
    Sobald der Vergleich abgeschlossen ist, erstellt die WithGenerateHtml -Methode einen HTML-Bericht des Vergleichs und alle gefundenen Unterschiede werden in den Protokollen mithilfe der Methode Log aufgezeichnet.
    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. Vergleichen von PDFs nach Wort:
    In diesem Beispiel vergleichen wir die gleichen PDF-Dateien wie im vorherigen Beispiel: eine Stromrechnung und eine Wasserrechnung. Der Vergleich erfolgt auf Wortebene. Die Variablen firstBill und secondBill stellen die Pfade dieser PDF-Dateien dar. Die Platzhalterregel und die Regel für reguläre Ausdrücke, die zusammen mit den Methoden WithIgnoreWildcardRule und WithIgnoreRegexRule bereitgestellt werden, werden verwendet, um bestimmte Muster im Vergleich zu ignorieren. Beispielsweise ignoriert die Platzhalterregel 2022 Datumsangaben, vorausgesetzt, sie haben im Vergleich das Format MM/TT/JJJJ, da sie sich in zwei separaten Rechnungen unterscheiden können und für die Struktur der Rechnungen nicht relevant sind. Die Regel für reguläre Ausdrücke [$]\d+\.\d{2} ignoriert Währungswerte und geht davon aus, dass sie ein ähnliches Format wie $XX.XX haben.
    Sobald der Vergleich abgeschlossen ist, erstellt die WithGenerateHtml -Methode einen HTML-Bericht des Vergleichs und alle gefundenen Unterschiede werden in den Protokollen mithilfe der Methode Log aufgezeichnet.
    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. Vergleichen von PDFs nach Zeile:
    In diesem Beispiel vergleichen wir, ähnlich wie im vorherigen, zwei PDF-Dateien, eine Stromrechnung und eine Wasserrechnung. In diesem Szenario erfolgt der Vergleich auf Zeilenebene. Die Variablen firstBill und secondBill stellen die Pfade dieser PDF-Dateien dar. Die Platzhalterregel und die Regel für reguläre Ausdrücke, die zusammen mit den Methoden WithIgnoreWildcardRule und WithIgnoreRegexRule bereitgestellt werden, werden verwendet, um bestimmte Muster im Vergleich zu ignorieren.
    Beispielsweise ignoriert die Platzhalterregel 2022 Daten (vorausgesetzt, sie sind im Format MM/TT/JJJJ) im Vergleich, da sie sich in zwei separaten Rechnungen unterscheiden können und für die Struktur der Rechnungen nicht relevant sind. Die Regel für reguläre Ausdrücke [$]\d+\.\d{2} ignoriert Währungswerte und geht davon aus, dass sie ein ähnliches Format wie $XX.XX haben.
    Sobald der Vergleich abgeschlossen ist, erstellt die WithGenerateHtml -Methode einen HTML-Bericht des Vergleichs und alle gefundenen Unterschiede werden in den Protokollen mithilfe der Methode Log aufgezeichnet.
    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);
    
In allen Beispielen gibt die Eigenschaft AreEquivalent zurück, ob die Dokumente gleich sind oder nicht.

War diese Seite hilfreich?

Hilfe erhalten
RPA lernen – Automatisierungskurse
UiPath Community-Forum
Uipath Logo
Vertrauen und Sicherheit
© 2005–2025 UiPath. Alle Rechte vorbehalten