今天我們將學習一些使用 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# 從圖像中刪除元數據
無論您是要從文檔還是圖像文件中刪除元數據,過程都將保持不變。只有源文檔會相應更改。
以下 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。