Aufgrund der Tatsache, dass PDF eines der am häufigsten verwendeten Formate der digitalen Welt ist, ist es oft erforderlich, zwei Versionen desselben Dokuments zu vergleichen. Dieser Artikel beschreibt, wie man zwei PDF-Dokumente vergleicht und die Unterschiede mit C# hervorhebt. Außerdem werden wir sehen, wie man passwortgeschützte PDF-Dateien vergleicht, Änderungen akzeptiert und ablehnt und auch den Vergleich von mehr als zwei PDF-Dateien mit C#-Beispielen.

Vergleichen Sie PDF-Dokumente, um Unterschiede mithilfe der .NET-API zu finden

Folgende Themen werden hier besprochen:

.NET-API zum Vergleichen von PDF-Dateien

GroupDocs.Comparison for .NET ist die API, die den Vergleich zwischen mehreren PDF-Dokumenten und vielen anderen Dateien desselben Dokumentformats in den .NET-Anwendungen ermöglicht. Ich werde diese API in den C#-Codebeispielen dieses Artikels verwenden, um PDF-Dokumente zu vergleichen.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Download-Bereich herunterladen oder die API in Ihrer .NET-Anwendung über NuGet installieren.

PM> Install-Package GroupDocs.Comparison

PDF-Dokumente mit C# vergleichen

Wenn Sie mehrere Kopien eines PDF-Dokuments haben, können Sie diese Dateien vergleichen, um die Unterschiede (Hinzufügungen, Löschungen) zu finden. Nach dem Vergleich des PDF-Inhalts können Sie ein neues Dokument erstellen, das alle identifizierten Änderungen hervorhebt. Im Folgenden finden Sie die Schritte zum Vergleichen zweier PDF-Dokumente und zum Hervorheben der Unterschiede mit C#.

  • Laden Sie das erste PDF-Dokument mit der Klasse Comparer.
  • Fügen Sie die zweite Datei mit der Methode Add() zu Comparer hinzu.
  • Vergleichen Sie beide PDF-Dateien und erhalten Sie die Zusammenfassung der Änderungen, indem Sie die Methode Compare() aufrufen.

Der folgende C#-Codeausschnitt zeigt, wie PDF-Dokumente verglichen und die Änderungen im resultierenden Dokument hervorgehoben werden.

/*
 * Vergleichen Sie zwei PDF-Dokumente und markieren Sie Änderungen mit C#
 */
using (Comparer comparer = new Comparer(@"path/document-ver1.pdf"))
{
    comparer.Add(@"path/document-ver2.pdf");
    comparer.Compare(@"path/compared-result.pdf");
}

Identifizierte Änderungen von PDF-Dateien mit C# akzeptieren oder ablehnen

Genau wie bei den Funktionen zum Nachverfolgen von Änderungen können Sie jede identifizierte Änderung in PDF-Dokumenten programmgesteuert akzeptieren oder ablehnen. Die folgenden Schritte zeigen, wie Sie die identifizierten Änderungen in den PDF-Dokumenten vergleichen und dann akzeptieren oder ablehnen.

  • Laden Sie die Quell- und Ziel-PDF-Dateien mit der Klasse Comparer.
  • Vergleich geladener Dokumente mit der Methode Compare().
  • Rufen Sie die identifizierten Änderungen mit der Methode GetChanges() ab.
  • Durchlaufen Sie nun die Änderungen und setzen Sie die ComparisonAction.
    • Wählen Sie für jede Änderung Akzeptieren oder Ablehnen aus.
  • Rufen Sie die Methode ApplyChanges() auf, um das resultierende Dokument mit den akzeptierten Änderungen zu erhalten.

Das folgende Code-Snippet vergleicht zwei PDF-Dokumente und akzeptiert dann eine identifizierte Änderung und lehnt dann eine andere mit C# ab.

/*
 * Akzeptieren und Ablehnen identifizierter Änderungen durch Vergleichen von PDF-Dokumenten mit C#
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    comparer.Compare();
    ChangeInfo[] changes = comparer.GetChanges();
    
    // Ablehnen der ersten identifizierten Änderung und sie wird nicht zum Ergebnisdokument hinzugefügt
    changes[0].ComparisonAction = ComparisonAction.Reject;
    comparer.ApplyChanges(@"path/rejected-change-result.pdf", new ApplyChangeOptions { Changes = changes, SaveOriginalState = true });

    changes = comparer.GetChanges();
    changes[0].ComparisonAction = ComparisonAction.Accept;
    comparer.ApplyChanges(@"path/accepted-change-result.pdf", new ApplyChangeOptions { Changes = changes });
}

Vergleichen Sie mehr als zwei PDF-Dateien mit C#

Ebenso können Sie mehr als zwei Dokumente vergleichen. Im Folgenden sind die Schritte aufgeführt, die mehrere PDF-Dokumente auf Unterschiede vergleichen und die identifizierten Änderungen hervorheben.

  • Laden Sie die ersten PDF-Dateien mit der Klasse Comparer.
  • Fügen Sie mit der Methode Add() andere Dokumente zu Comparer hinzu.
  • Vergleichen Sie alle PDF-Dateien mit der Methode Compare() und erhalten Sie die Änderungen und eine Zusammenfassung der Änderungen.

Das folgende Beispiel zeigt, wie Sie mehrere PDF-Dateien in C# vergleichen und die Änderungen im resultierenden Dokument erhalten.

/*
 * Vergleichen Sie mehrere PDF-Dokumente mit C#
 */
using (Comparer comparer = new Comparer(@"path/document-1.pdf"))
{
    comparer.Add(@"path/document-2.pdf");
    comparer.Add(@"path/document-3.pdf");
    comparer.Add(@"path/document-4.pdf");

    comparer.Compare(@"path/compare-result.pdf");
}

Vergleichen Sie passwortgeschützte PDF-Dokumente mit C#

Sie können die passwortgeschützten Dateien vergleichen, indem Sie beim Laden dieser Dokumente einfach ihre Passwörter angeben. Die folgenden Schritte zeigen, wie wir den PDF-Inhalt passwortgeschützter Dokumente mit C# vergleichen können.

  • Bereiten Sie die Ladeoptionen für Quell- und Zieldokumente vor, indem Sie das Passwort angeben.
  • Laden Sie das Quelldokument mit der Klasse Comparer.
  • Fügen Sie das Zieldokument mit den vorbereiteten Ladeoptionen zu Comparer hinzu.
  • Rufen Sie die Zusammenfassung der Unterschiede ab, indem Sie die Methode Compare() aufrufen.

Das folgende Beispiel vergleicht zwei kennwortgeschützte PDF-Dateien und hebt die identifizierten Unterschiede in einem separaten Dokument mit C# hervor.

/*
 * Vergleichen Sie passwortgeschützte PDF-Dokumente mit C#
 */
using (Comparer comparer = new Comparer(@"path/protected-document-1.pdf", new LoadOptions(){ Password = "SourceFilePassword" }))
{
    comparer.Add(@"path/protected-document-2.pdf", new LoadOptions() { Password = "TargetFilePassword" });
    comparer.Compare(@"path/compared-protected-docs-result.pdf");
}

Holen Sie sich eine kostenlose API-Lizenz

Sie können eine kostenlose temporäre Lizenz erhalten, um die API ohne die Evaluierungseinschränkungen zu verwenden.

Fazit

Abschließend haben wir gelernt, wie man zwei oder mehr PDF-Dateien mit C# vergleicht. Darüber hinaus haben wir die Unterschiede hervorgehoben und die identifizierten Änderungen programmatisch akzeptiert oder abgelehnt. Zuletzt haben wir gesehen, wie man passwortgeschützte PDF-Dokumente innerhalb von .NET-Anwendungen vergleicht.

Mehrere andere Anpassungen sind verfügbar, um die Vergleichsergebnisse zu steuern. Sie können die Vergleichsempfindlichkeit einstellen, nur die Zusammenfassungsseite anzeigen, Lücken ignorieren usw. Weitere Informationen zu GroupDocs.Comparison für .NET finden Sie in der Dokumentation. Sie können Ihre eigenen Dokumentvergleichsanwendungen für verschiedene Dokumentformate erstellen. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch