Es kann viele Gründe geben, ein Wort oder einen Satz im Dokument zu ersetzen. Unabhängig davon, ob Sie den vertraulichen Inhalt löschen möchten, bevor Sie das Dokument öffentlich freigeben, oder ob Sie alle privaten Informationen wie E-Mail-IDs oder Sozialversicherungsnummern ausblenden/entfernen möchten, müssen Sie den Inhalt des Dokuments redigieren. In diesem Artikel erfahren Sie, wie Sie Word-Dokumente programmgesteuert in Ihren .NET-Anwendungen mit C# schwärzen. Wir werden separat besprechen, wie man den Text redigiert, indem man ihn ausblendet, und wie man den Text, die Wörter oder Phrasen mit verschiedenen Techniken findet und ersetzt.

Folgende Themen werden im Folgenden behandelt:

.NET Schwärzungs-API zum Ersetzen von Text

GroupDocs.Redaction für .NET ist die Dokumentredaktions-API, die es ermöglicht, die beabsichtigten Daten aus Dokumenten verschiedener Dateiformate zu finden und dann zu ersetzen. Neben der Textschwärzung und -rasterung bietet die API Metadaten-, Anmerkungs-, Tabellenkalkulations- und Bildschwärzungsfunktionen. Die unterstützten Dateiformate der Word-Dokumente, Tabellenkalkulationen, Präsentationen, Bilder und PDF-Dokumente sind in der Dokumentation verfügbar.

Sie können das DLLs- oder MSI-Installationsprogramm aus dem Downloadbereich herunterladen oder die API in Ihrer .NET-Anwendung über [NuGet](https ://www.nuget.org/packages/groupdocs.redaction).

PM> Install-Package GroupDocs.Redaction

Bei diesem Vorgang müssen Sie weder MS Office noch andere Software von Drittanbietern installieren. Lassen Sie uns nun beginnen und einen Blick auf verschiedene Ansätze werfen, um mit dem Suchen und Ersetzen von Text in den Dokumenten umzugehen. Das Folgende ist der Screenshot eines Word-Dokuments, das in den Beispielen zur Demonstration verwendet wird. Dieselben Methoden funktionieren für andere Dokumentformate ohne Änderung des Codes.

Suchen und Ersetzen von Wörtern oder Ausdrücken in Word-Dokumenten mit C#

Im folgenden Schritt wird erläutert, wie Sie ein beliebiges Wort/einen beliebigen Ausdruck in einem Word-Dokument finden und dann alle Vorkommen durch einen anderen Text in der C#-Anwendung ersetzen.

  • Laden Sie das Word-Dokument (DOC/DOCX) mit der Klasse Redactor.
  • Suchen Sie den genauen Ausdruck oder das Wort mithilfe der Klasse ExactPhraseRedaction mit ReplacementOptions.
  • Verwenden Sie die Redactor-Methode Apply, um die Schwärzung anzuwenden.
  • Speichern Sie die Änderungen mit der Methode Save.

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

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

Die Ausgabe des Codes ist wie folgt.

Suchen und Ersetzen mit Berücksichtigung der Groß-/Kleinschreibung in Word-Dateien mit C#

Auf ähnliche Weise können Sie die Groß- und Kleinschreibung eines Word-Dokuments durchführen, indem Sie das genaue Wort suchen und es durch ein anderes ersetzen. Der folgende Code ersetzt das Vorhandensein des Wortes „John Doe“ in einer DOCX-Datei mit C#, aber diesmal wird bei der Suche zwischen Groß- und Kleinschreibung unterschieden.

// 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.docx"))
{
  redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
  redactor.Save();
}

Die Ausgabe des Codes ist wie folgt.

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

Um Textmuster in Word-Dateien (DOC, DOCX) zu suchen und zu ersetzen, können Sie reguläre Ausdrücke verwenden. Mit den folgenden Schritten können Sie ein Word-Dokument mit RegEx unter Verwendung von C# schwärzen.

  • Laden Sie das Word-Dokument mit der Klasse Redactor.
  • Finden Sie die Regex-Übereinstimmung mithilfe der Klasse RegexRedaction mit ReplacementOptions.
  • Verwenden Sie die Methode Apply, um alle Regex-Übereinstimmungstexte zu ersetzen.
  • Verwenden Sie die Methode Save, um die redigierte Word-Datei zu erhalten.

Der folgende Code zeigt, wie Sie mit RegEx ein Textmuster in einer Word-Datei finden und es dann mit C# durch 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.docx"))
{
  redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
  redactor.Save();
}

Die Ausgabe des obigen Codes ist wie folgt.

Vertraulichen Text in Word-Dokumenten mit farbigem Feld mit C# ausblenden

Wenn Sie Ihre privaten Inhalte nicht ersetzen, sondern nur abdecken möchten, können Sie diese Inhalte mit der API ausblenden, indem Sie ein Kästchen darüber ziehen. Der folgende Code platziert das schwarze Rechteck über dem beabsichtigten Text, um Text mit C# zu schwärzen.

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

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 Sie gelernt, wie Sie mit verschiedenen Techniken Text in Word-Dateien (DOC, DOCX) finden und die Ergebnisse auf unterschiedliche Weise ersetzen. Genauer gesagt haben wir besprochen, wie Text, Wort oder Satz gefunden werden, auch wenn es sich um eine Suche mit Berücksichtigung der Groß-/Kleinschreibung oder die Verwendung eines regulären Ausdrucks in C# handelt. Später ersetzten wir die Suchergebnisse entweder durch einen anderen Text oder indem wir das farbige Rechteck über den gesuchten Text platzierten.

Weitere Informationen zur API finden Sie unter Dokumentation. Bei Fragen kontaktieren Sie uns über das Forum.

Siehe auch