Heute lernen wir einige Methoden zum programmgesteuerten Entfernen oder vollständigen Bereinigen von Metadaten von Dokumenten sowie Bildern mit C# kennen. In einem früheren Beitrag haben wir das Entfernen der selektiven sowie aller verfügbaren Metadateneigenschaften aus Dokumenten und Bildern mit Java besprochen. Manchmal ist es wichtig, persönliche Informationen, die an das Dokument angehängt sind, vor dem Empfänger zu verbergen. Im Folgenden finden Sie die Themen, die Ihnen dabei helfen, Ihre Dateien mithilfe von C# von Metadaten zu bereinigen.

.NET-API zum Entfernen von Metadaten

Um das Geplante zu erreichen, werde ich die API GroupDocs.Metadata for .NET verwenden, die es .NET-Entwicklern ermöglicht, Metadaten aus vielen unterstützten Formaten von Dokumenten hinzuzufügen, zu ändern, zu extrahieren, zu entfernen oder vollständig zu machen. Bilder und andere Dateien. Die API unterstützt Metadatenstandards wie EXIF, XMP, IPTC, ID3-Tag usw. Sie können DLLs oder das MSI-Installationsprogramm herunterladen oder über NuGet installieren.

Install-Package GroupDocs.Metadata

Metadaten aus Dokumenten mit C# entfernen

Um alle Metadateneigenschaften zu entfernen, ohne einen bestimmten Filter anzuwenden, verwenden Sie die Sanitize-Methode. Im Folgenden sind die Schritte zum Bereinigen von Metadaten aus Dokumenten wie DOCX, PDF, XLSX usw. mit GroupDocs.Metadata für .NET aufgeführt.

  • Erstellen Sie zunächst das Klassenobjekt Metadata und übergeben Sie den Pfad des Zieldokuments als Parameter.
  • Verwenden Sie die Methode Sanitize, um alle verfügbaren Metadaten zu löschen. Es gibt die Anzahl der entfernten Metadateneigenschaften zurück.
  • Rufen Sie die Methode Save auf, um die Ausgabedatei mit entfernten Metadaten zu speichern.

Das folgende C#-Codebeispiel zeigt, wie Metadaten aus einem PDF-Dokument entfernt und gelöscht werden.

/*
* Bereinigen Sie alle erkannten Metadateneigenschaften aus Word, Excel, 
* PowerPoint, PDF und andere Dokumente, die C# verwenden
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

Metadaten aus Bildern mit C# entfernen

Unabhängig davon, ob Sie Metadaten aus Ihren Dokumenten oder aus Ihren Bilddateien entfernen möchten, der Vorgang bleibt derselbe. Nur das Quelldokument wird entsprechend geändert.

  • Erstellen Sie das Objekt der Klasse Metadata und übergeben Sie den Dokumentpfad als Parameter.
  • Rufen Sie die Methode Sanitize auf, um alle verfügbaren Metadateneigenschaften zu entfernen.
  • Speichern Sie die Ausgabedatei mit der Methode Save.

Das folgende C#-Codebeispiel zeigt, wie Metadaten aus einem JPG-Bild entfernt werden.

/*
* Bereinigen oder entfernen Sie alle erkannten Metadateneigenschaften aus PNG, JPG/JPEG,
* WebP, BMP, GIF, TIFF und andere Bilder mit C#
*/
using (Metadata metadata = new Metadata("filePath/document.jpg"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.jpg");
}

Selektive Metadaten aus Dokumenten und Bildern mit C# entfernen

Wenn es nicht erforderlich ist, alle verfügbaren Metadaten aus den Dateien zu entfernen, und wir nur die selektiven Metadateneigenschaften entfernen möchten. Mit den folgenden Schritten können Sie die Zielmetadateneigenschaften mithilfe des spezifischen Namens der Eigenschaft suchen und entfernen.

  • Erstellen Sie ein Objekt der Klasse Metadata, um das Quelldokument oder die Bilddatei zu laden.
  • Erstellen Sie personalisierte Spezifikationen, um die Metadateneigenschaften zu finden.
  • Rufen Sie die Methode RemoveProperties mit den erstellten personalisierten Spezifikationen auf.
  • Speichern Sie die Ausgabedatei mit der Methode Save.
// Entfernen Sie die Metadateneigenschaften aus Dokumenten und Bildern, die den benutzerdefinierten Filter mit C# erfüllen.
using (Metadata metadata = new Metadata("filePath/document.docx"))
{
	// Entfernen Sie alle Eigenschaften, die:
	// enthält den Namen des Dokumentautors ODER
	// es bezieht sich auf den letzten Bearbeiter ODER 
	// Der Eigenschaftswert ist eine Zeichenfolge UND gleich der angegebenen Zeichenfolge „GroupDocs“.
	var affected = metadata.RemoveProperties(
		p => p.Tags.Contains(Tags.Person.Creator) ||
			 p.Tags.Contains(Tags.Person.Editor) ||
			 p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("GroupDocs"));
	Console.WriteLine("Properties removed: {0}", affected);

	metadata.Save("outputPath/document.docx");
}

Fazit

Wir haben gelernt, wie Metadaten mit C# aus Dokumenten und Bildern entfernt werden. Nachdem Sie diesen Artikel gelesen haben, werden Sie sich sicher fühlen, Ihre eigene Metadaten-Bereinigungsanwendung mit .NET zu erstellen. Es kann das Entfernen von Metadaten aus MS Word-Dokumentformaten, Tabellenkalkulationen, Präsentationen, PDF-Dateien, Bildern, E-Mails, eBooks, Zeichnungen, ZIP-Dateien und vielen mehr unterstützen Dateiformate, die von der API unterstützt werden.

Weitere Informationen zur .NET Metadata Manipulation API finden Sie in der Dokumentation.

Siehe auch