Сегодня мы собираемся изучить некоторые способы программного удаления или полной очистки метаданных документов, а также изображений с помощью C#. В предыдущем посте мы обсуждали удаление выборочных, а также всех доступных свойств метаданных из документов и изображений с помощью Java. Иногда бывает важно скрыть от получателя личную информацию, которая прилагается к документу. Ниже приведены темы, которые помогут вам очистить ваши файлы от метаданных с помощью C#.

API удаления метаданных .NET

Для достижения запланированного я буду использовать GroupDocs.Metadata for .NET API, который позволяет разработчикам .NET добавлять, изменять, извлекать, удалять или полностью метаданные из многих поддерживаемых форматов документов, изображения и другие файлы. API поддерживает стандарты метаданных, такие как EXIF, XMP, IPTC, тег ID3 и т. д. Вы можете загрузить библиотеки DLL или MSI-установщик или установить их с помощью NuGet.

Install-Package GroupDocs.Metadata

Удалить метаданные из документов с помощью C#

Чтобы удалить все свойства метаданных без применения какого-либо конкретного фильтра, используйте метод Sanitize. Ниже приведены шаги по очистке метаданных из таких документов, как DOCX, PDF, XLSX и т. д., с помощью GroupDocs.Metadata for .NET.

  • Начните с создания объекта класса Metadata и передайте путь к целевому документу в качестве параметра.
  • Используйте метод Sanitize, чтобы очистить все доступные метаданные. Он возвращает количество удаленных свойств метаданных.
  • Вызовите метод Save для сохранения выходного файла с удаленными метаданными.

В следующем примере кода C# показано, как удалить и очистить метаданные из документа PDF.

/*
* Очистите все обнаруженные свойства метаданных из Word, Excel, 
* PowerPoint, PDF и другие документы с использованием C#
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

Удалить метаданные из изображений с помощью C#

Если вы хотите удалить метаданные из своих документов или файлов изображений, процесс останется прежним. Соответственно будет изменен только исходный документ.

  • Создайте объект класса Метаданные и передайте путь к документу в качестве параметра.
  • Вызовите метод 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.

Вы можете дополнительно изучить API управления метаданными .NET из документации.

Смотрите также