今天我們將學習一些使用 C# 以編程方式刪除或完全清除文檔和圖像元數據的方法。在 較早的帖子 中,我們討論了使用 Java 從文檔和圖像中刪除選擇性以及所有可用的元數據屬性。有時向收件人隱藏個人信息很重要,這些信息附在文件上。以下主題將幫助您使用 C# 從元數據中清除文件。

.NET 元數據刪除 API

為了實現計劃,我將使用 GroupDocs.Metadata for .NET API,它允許 .NET 開發人員從許多 支持的格式 文檔中添加、修改、提取、刪除或完全元數據,圖像和其他文件。 API 支持元數據標準,如 EXIF、XMP、IPTC、ID3 標籤等。您可以 下載 DLL 或 MSI 安裝程序,或通過 NuGet 安裝。

Install-Package GroupDocs.Metadata

使用 C# 從文檔中刪除元數據

要在不應用任何特定過濾器的情況下刪除所有元數據屬性,請使用 Sanitize 方法。以下是使用 GroupDocs.Metadata for .NET 從 DOCX、PDF、XLSX 等文檔中清除元數據的步驟。

  • 首先創建 Metadata 類對象並將目標文檔的路徑作為參數傳遞。
  • 使用 Sanitize 方法清除所有可用的元數據。它返回已刪除的元數據屬性的數量。
  • 調用 Save 方法保存已刪除元數據的輸出文件。

以下 C# 代碼示例展示瞭如何從 PDF 文檔中移除和清除元數據。

/*
* 從 Word、Excel 中清除所有檢測到的元數據屬性, 
* 使用 C# 的 PowerPoint, PDF 和其他文檔
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

使用 C# 從圖像中刪除元數據

無論您是要從文檔還是圖像文件中刪除元數據,過程都將保持不變。只有源文檔會相應更改。

  • 創建 Metadata 類的對象並將文檔路徑作為參數傳遞。
  • 調用 Sanitize 方法以刪除任何可用的元數據屬性。
  • 使用 Save 方法保存輸出文件。

以下 C# 代碼示例展示瞭如何從 JPG 圖像中刪除元數據。

/*
* 從 PNG、JPG/JPEG、
* WebP、BMP、GIF、TIFF等圖像使用C#
*/
using (Metadata metadata = new Metadata("filePath/document.jpg"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.jpg");
}

使用 C# 從文檔和圖像中刪除選擇性元數據

如果不需要從文件中刪除所有可用的元數據,而我們只想刪除選擇性元數據屬性。以下步驟允許您使用屬性的特定名稱來定位和刪除目標元數據屬性。

  • 創建一個 Metadata 類的對象來加載源文檔或圖像文件。
  • 創建個性化規範以查找元數據屬性。
  • 使用創建的個性化規範調用 RemoveProperties 方法。
  • 使用 Save 方法保存輸出文件。
// 使用 C# 從滿足自定義過濾器的文檔和圖像中刪除元數據屬性
using (Metadata metadata = new Metadata("filePath/document.docx"))
{
	// 刪除所有屬性:
	// 包含文檔作者的姓名或
	// 它指的是最後一個編輯器或 
	// 屬性值是一個字符串並且等於給定的字符串“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");
}

結論

我們學習了使用 C# 從文檔和圖像中刪除元數據的方法。閱讀完本文後,您會覺得使用 .NET 構建您自己的元數據清理器應用程序會很自在。它可以支持從 MS Word 文檔格式、電子表格、演示文稿、PDF 文件、圖像、電子郵件、電子書、繪圖、zip 文件等 API 支持的文件格式 中刪除元數據。

您可以進一步探索 文檔 中的 .NET 元數據操作 API

也可以看看