메타데이터는 실제 데이터에 대한 정보를 제공하는 데이터입니다. 일반적으로 “데이터에 대한 데이터“로 설명됩니다. 누군가에게 파일을 보낼 때 메타데이터를 함께 보내는 것은 좋지 않습니다. 공유하고 싶지 않은 정보를 수신자에게 공개할 수 있습니다. 몇 가지 예는 다음과 같습니다. 이름, 회사 이름, 문서 수정 날짜, 카메라 제조사 및 모델 등 이 기사에서는 Java를 사용하여 이미지와 문서에서 메타데이터를 프로그래밍 방식으로 제거합니다.
자바 메타데이터 클리너 API
GroupDocs.Metadata for Java는 EXIF, XMP, IPTC, ID3 태그 등과 같이 널리 사용되는 메타데이터 표준의 대부분을 지원하는 Java용 메타데이터 API입니다. 이를 통해 Java 개발자는 메타데이터를 추가, 수정, 추출 및 제거할 수 있습니다. 문서, 이미지 및 기타 파일의 지원되는 형식의 큰 목록에서 다양한 옵션으로.
이 문서의 단계와 코드 샘플은 GroupDocs.Metadata API를 사용합니다. 따라서 진행하기 전에 다음 옵션 중 하나를 사용하여 개발 환경을 준비해야 합니다.
- 다운로드 섹션에서 JAR 파일을 가져옵니다.
- Maven 기반 Java 애플리케이션에 다음 pom.xml 구성 추가
<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,
* Java를 사용하는 PowerPoint, PDF 및 기타 문서
*/
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를 사용하여 이미지에서 모든 메타데이터를 제거하려는 경우 동일한 단계에 따라 동일한 삭제 방법을 사용할 수 있습니다.
/*
* JPEG, PNG,
* Java를 사용하는 WebP, BMP, GIF, TIFF 및 기타 이미지
*/
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 메서드를 호출하고 개인화된 사양을 전달합니다.
- 저장 방식으로 출력 파일을 저장합니다.
// 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 파일, 이미지, 이메일, eBook, 그림, zip 파일 등에서 메타데이터 제거를 지원할 수 있습니다. 문서에서 Java 메타데이터 API에 대해 자세히 알아볼 수 있습니다.