Сегодня мы собираемся изучить некоторые способы программного удаления или полной очистки метаданных документов, а также изображений с помощью C#. В предыдущем посте мы обсуждали удаление выборочных, а также всех доступных свойств метаданных из документов и изображений с помощью Java. Иногда бывает важно скрыть от получателя личную информацию, которая прилагается к документу. Ниже приведены темы, которые помогут вам очистить ваши файлы от метаданных с помощью C#.
- API очистки метаданных .NET
- Удалить метаданные из документов с помощью C#
- Очистить метаданные изображений с помощью C#
- Удалить выборочные метаданные из документов и изображений с помощью 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 из документации.