Метаданные — это данные, предоставляющие информацию о фактических данных. Это обычно описывается как «данные о данных». При отправке файла кому-либо не рекомендуется отправлять вместе с ним метаданные. Это может раскрыть вашу информацию получателю, которой вы, возможно, не захотите делиться. Некоторые из примеров включают в себя; Имя, название компании, дата изменения документа, марка и модель камеры и т. д. В этой статье мы будем программно удалять метаданные из изображений и документов с помощью Java.
- API для очистки метаданных Java
- Удалить метаданные из документов
- Очистить метаданные изображений
- Удалить выборочные метаданные из документов и изображений
API очистки метаданных Java
GroupDocs.Metadata for Java — это API метаданных для Java, который поддерживает большинство популярных стандартов метаданных, таких как EXIF, XMP, IPTC, тег ID3 и т. д. Он позволяет разработчикам Java добавлять, изменять, извлекать и удалять метаданные. с различными параметрами из большого списка поддерживаемых форматов документов, изображений и других файлов.
Шаги, описанные в этой статье, и примеры кода используют API GroupDocs.Metadata. Поэтому, прежде чем продолжить, обязательно подготовьте среду разработки, используя любой из следующих вариантов:
- Получите файл JAR из раздела загрузки.
- Добавьте следующую конфигурацию pom.xml в свои Java-приложения на основе Maven.
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>20.11</version>
</dependency>
Удалить метаданные из документов с помощью Java
Чтобы удалить все доступные свойства метаданных без применения какого-либо фильтра и оставаться в безопасности в эпоху COVID-19, используйте метод sanitize. Ниже приведены шаги по удалению метаданных из документов с помощью GroupDocs.Metadata for Java.
- Создайте объект класса Metadata, передав в качестве параметра путь к целевому документу.
- Вызвать метод sanitize. Он возвращает количество удаленных свойств метаданных.
- Сохраните полученный файл с очищенными метаданными методом save.
В следующем примере кода Java показано, как удалить метаданные из документа.
/*
* Удалите все обнаруженные свойства метаданных из Word, Excel,
* PowerPoint, PDF и другие документы с использованием Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata
Удалить метаданные из изображений с помощью Java
Если вы хотите удалить все метаданные из ваших изображений с помощью Java, вы можете использовать тот же метод очистки, выполнив те же действия:
- Создайте объект класса Метаданные, передав путь к целевому документу в качестве параметра.
- Вызвать метод sanitize.
- Сохраните выходной файл, используя метод save.
/*
* Удалите все обнаруженные свойства метаданных из JPEG, PNG,
* WebP, BMP, GIF, TIFF и другие изображения с использованием Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata
Удалить выборочные метаданные из документов и изображений с помощью Java
Не всегда требуется удалять все доступные метаданные из файлов, однако иногда нам нужно удалить свойства выборочных метаданных. Следующие шаги показывают, как найти и удалить метаданные, используя определенное имя свойства.
- Создайте объект Metadata для загрузки целевого документа или файла изображения.
- Создание персонализированных спецификаций, чтобы найти свойства метаданных.
- Вызвать метод removeProperties и передать персонализированные спецификации.
- Сохраните выходной файл, используя метод save.
// Удалите свойства метаданных из документов и изображений, которые удовлетворяют настроенному фильтру с помощью Java.
public class RemoveMetadataProperties {
public static void removeMetadataProperties() {
Metadata metadata = new Metadata("filePath/document.docx");
/*
* Удалите все свойства, которые:
* содержит имя автора документа ИЛИ
* это относится к последнему редактору ИЛИ
* значение свойства представляет собой строку И равно заданной строке "GroupDocs"
*/
int affected = metadata.removeProperties(new ContainsTagSpecification(Tags.getPerson().getCreator())
.or(new ContainsTagSpecification(Tags.getPerson().getEditor()))
.or(new OfTypeSpecification(MetadataPropertyType.String)
.and(new RemoveMetadataProperties().new WithValueSpecification("GroupDocs"))));
System.out.println(String.format("Properties removed: %s", affected));
metadata.save("outputPath/document.docx");
}
// Создание персонализированных спецификаций для фильтрации свойств метаданных
public class WithValueSpecification extends Specification {
public WithValueSpecification(Object value) {
setValue(value);
}
public final Object getValue() {
return auto_Value;
}
private void setValue(Object value) {
auto_Value = value;
}
private Object auto_Value;
public boolean isSatisfiedBy(MetadataProperty candidate) {
return candidate.getValue().getRawValue().equals(getValue());
}
}
}
Вывод
В этой статье мы научились очищать метаданные документов и изображений с помощью Java. Теперь вы можете создать собственное Java-приложение для очистки метаданных. Он может поддерживать удаление метаданных из текстовых документов, электронных таблиц, презентаций, PDF-файлов, изображений, электронных писем, электронных книг, рисунков, zip-файлов и многого другого. Вы можете узнать больше об API метаданных Java из документации.