Сьогодні ми збираємося дізнатися про деякі способи програмного видалення або повного очищення метаданих документів, а також зображень за допомогою C#. У попередній публікації ми обговорювали видалення вибіркових, а також усіх доступних властивостей метаданих з документів і зображень за допомогою Java. Іноді важливо приховати від одержувача особисту інформацію, яка додається до документа. Нижче наведено теми, які допоможуть вам очистити файли від метаданих за допомогою C#.

.NET Metadata Removing API

Щоб досягти запланованого, я буду використовувати API GroupDocs.Metadata for .NET, який дозволяє розробникам .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#

Незалежно від того, чи хочете ви видалити метадані зі своїх документів чи файлів зображень, процес залишиться незмінним. Відповідним чином буде змінено лише вихідний документ.

  • Створіть об’єкт класу 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 Metadata Manipulation API з документації.

Дивись також