Vorlagen werden häufig verwendet, um benutzerdefinierte Dokumente zu erstellen. Dieser Artikel enthält Anleitungen zum Suchen und Ersetzen von Text und Wörtern in PDF-Dokumenten mit C#. Wir werden separat besprechen, wie Wörter und Phrasen programmgesteuert ersetzt werden, Wörter durch Suche mit Berücksichtigung der Groß-/Kleinschreibung ersetzt werden und mithilfe regulärer Ausdrücke ersetzt werden. Schließlich lernen wir auch, wie man die gesuchte Zeichenfolge mit C# versteckt.

Folgende Themen werden im Folgenden behandelt:

.NET Schwärzungs-API zum Ersetzen von Text

GroupDocs präsentiert GroupDocs.Redaction for .NET, die API zum Schwärzen, Ausblenden oder Entfernen von Inhalten und sogar Metadaten von Dokumenten, Präsentationen, Tabellenkalkulationen, PDF-Dateien und Bildern in .NET-Anwendungen. Weitere Einzelheiten zur API finden Sie in der zugehörigen Dokumentation.

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

PM> Install-Package GroupDocs.Redaction

Es ist nicht erforderlich, einen PDF-Editor oder eine andere Software von Drittanbietern zum Schwärzen zu installieren. Das Folgende ist der Screenshot eines PDF-Dokuments, das in den folgenden Beispielen verwendet wird. Derselbe Ansatz funktioniert für andere Dokumentformate mit kaum oder gar keinen Änderungen im Code.

Suchen und Ersetzen von Wörtern oder Ausdrücken in PDF mit C#

Sie können diese Funktion verwenden, um vertrauliche Daten auszublenden und auch ein neues benutzerdefiniertes Dokument aus der Vorlage zu erstellen. Im folgenden Schritt wird erläutert, wie Sie ein beliebiges Wort/einen beliebigen Ausdruck in einem PDF-Dokument mit anderem Text in der C#-Anwendung finden.

Der folgende Code sucht und ersetzt das Wort in C#. Genauer gesagt verbirgt es alle Vorkommen von „John Doe“, indem es durch das Wort „[censored]“ ersetzt wird.

// Finden Sie den genauen Ausdruck und ersetzen Sie ihn mit C# durch einen anderen Text
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Die Ausgabe des Codes ist wie folgt.

Suchen und Ersetzen von Groß- und Kleinschreibung in PDF mit C#

Sie können die Suche und Schwärzung unter Berücksichtigung der Groß-/Kleinschreibung durchführen. Der folgende Code ersetzt die Groß-/Kleinschreibung des Wortes „John Doe“, aber nicht „john doe“ in C#.

// Finden Sie den genauen Ausdruck (Groß-/Kleinschreibung beachten) und ersetzen Sie ihn mit C# durch einen anderen Text
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Die Ausgabe des Codes ist wie folgt.

Text in PDF durch reguläre Ausdrücke (RegEx) mit C# ersetzen

Sie können auch jedes bestimmte Textmuster mit regulären Ausdrücken ersetzen. Mit den folgenden Schritten können Sie PDFs nach der Suche mit regulären Ausdrücken (RegEx) in Ihrer .NET-Anwendung schwärzen.

  • Laden Sie das PDF-Dokument mit der Klasse Redactor.
  • Finden Sie die Regex-Übereinstimmung mithilfe der Klasse RegexRedaction mit ReplacementOptions.
  • Fügen Sie die Änderungen mit der Methode Apply() in das Dokument ein.
  • Speichern Sie das redigierte Dokument mit der geeigneten Methode Save().

Der folgende Code zeigt, wie Sie mit RegEx ein bestimmtes Textmuster in einem PDF-Dokument finden und es später mit C# durch einen anderen Text ersetzen/ausblenden.

// Suchen Sie Text mit regulären Ausdrücken und ersetzen Sie ihn mit C# durch anderen Text
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Die Ausgabe des obigen Codes ist wie folgt.

Ersetzen Sie den Text durch ein farbiges Feld in C#

Wenn Sie nur die gesuchten Inhalte (private Informationen) Ihrer PDF-Datei ausblenden möchten, können Sie diese einfach mit einem Cover versehen. Die API ermöglicht es Ihnen, den gesuchten Text auszublenden. Der folgende C#-Code platziert das schwarze Rechteck über dem erwähnten privaten Text.

// Finden Sie Text in PDF und blenden Sie ihn aus, indem Sie mit C # ein Rechteck darüber zeichnen
using (Redactor redactor = new Redactor(@"path/document.pdf"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
  redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
}

Die Ausgabe des obigen Codes ist wie folgt.

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 mit verschiedenen Suchtechniken bestimmten Text in PDF-Dateien findet. Später haben wir besprochen, wie PDF-Dateien entweder durch Ersetzen oder Ausblenden des Textes in der .NET-Anwendung mit C# redigiert werden können. Genauer gesagt haben wir einfach nach den Wörtern und Phrasen gesucht, mit Groß- und Kleinschreibung gesucht und reguläre Ausdrücke in C# verwendet. Zuletzt haben wir die Suchergebnisse entweder durch einen anderen Text ersetzt oder sie mit einem rechteckigen Kästchen darüber ausgeblendet.

Weitere Einzelheiten zur API finden Sie in der Dokumentation. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch