Java를 사용한 EPUB 메타데이터 편집

지난 기사에서는 C#을 사용하여 EPUB 메타데이터 및 Dublin Core 관리에 대해 논의했습니다. 오늘은 Java를 사용하여 Dublin Core 속성 집합을 포함한 EPUB 메타데이터 속성을 프로그래밍 방식으로 읽고, 편집하고, 업데이트하는 방법을 알아봅니다.

EPUB 파일은 텍스트, 그림, 대화형 요소를 포함하는 디지털 책 형식입니다. HTML 및 CSS와 같은 일반적인 웹 기술을 사용하여 만들어졌습니다.

EPUB 메타데이터는 제목, 저자, 출판사, 언어 등 EPUB 파일 내에 저장된 중요한 정보를 의미합니다. 이 데이터는 디지털 도서를 적절하게 정리하는 데 도움이 됩니다.

우리가 다룰 주제는 다음과 같습니다.

메타데이터 편집을 위한 Java API

GroupDocs.Metadata는 Java 애플리케이션의 다양한 파일 형식에 대한 메타데이터 관리를 자동화하도록 설계된 Java API를 제공합니다. 이 API를 사용하면 다양한 파일 형식에서 메타데이터를 읽고, 업데이트하고, 추가하고, 정리하고, 제거할 수 있습니다. 오늘 토론에서는 이 API를 활용하여 EPUB 형식의 eBook 메타데이터를 처리하겠습니다.

다운로드 섹션에서 JAR 파일을 얻거나 최신 저장소 및 종속성 Maven 구성을 Java 애플리케이션에 통합할 수 있습니다.

<repository>
    <id>GroupDocsJavaAPI</id>
    <name>GroupDocs Java API</name>
    <url>https://releases.groupdocs.com/java/repo/</url>
</repository>

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-metadata</artifactId>
    <version>23.10</version>
</dependency>

Java로 EPUB 메타데이터 수정

Java 개발자로서 EPUB 메타데이터 속성을 수정하려면 다음 단계를 따르세요.

  1. Metadata 클래스를 사용하여 EPUB eBook을 로드합니다.
  2. 메타데이터 루트 패키지를 추출하려면 getRootPackageGeneric 메소드를 사용하십시오.
  3. 이제 각 getter 메소드를 사용하여 EPUB 패키지의 모든 메타데이터 속성을 쉽게 볼 수 있습니다.
  4. 필요에 따라 해당 setter 메서드를 사용하여 속성 값을 업데이트합니다.
  5. save 메소드를 사용하여 업데이트된 메타데이터 값으로 eBook 파일을 저장합니다.

다음은 EPUB 메타데이터 속성을 읽고 업데이트하는 단계를 보여주는 Java 코드 조각입니다.

EPUB 메타데이터 읽기

우선 Java를 사용하여 EPUB 메타데이터를 읽는 방법은 다음과 같습니다.

// Java를 사용하여 EPUB 메타데이터 읽기
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    System.out.println(root.getEpubPackage().getVersion());
    System.out.println(root.getEpubPackage().getUniqueIdentifier());
    System.out.println(root.getEpubPackage().getImageCover() != null ? root.getEpubPackage().getImageCover().length : 0);
}

EPUB 메타데이터 업데이트

다음 Java 소스 코드는 EPUB 파일의 EPUB 메타데이터 속성을 가져오고 업데이트하는 방법을 보여줍니다.

// Java를 사용하여 EPUB 메타데이터 업데이트
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    root.getEpubPackage().setCreator("GroupDocs");
    root.getEpubPackage().setDescription("test e-book");
    root.getEpubPackage().setFormat("EPUB");
    root.getEpubPackage().setDate(new Date().toString());

    metadata.save("path/ebook.epub");
}

Java를 사용하여 EPUB Dublin Core 메타데이터 수정

Dublin Core 메타데이터는 물리적 리소스와 디지털 리소스를 모두 설명하는 몇 가지 항목으로 구성됩니다. EPUB 메타데이터와 유사한 방식으로 Java 코드를 사용하여 Dublin Core 메타데이터 속성을 수정할 수 있습니다.

더블린 코어 읽기

다음 코드 줄은 분석을 위해 Dublin Core 메타데이터 항목을 추출하는 방법을 보여줍니다.

// Java를 사용하여 Dublin Core 메타데이터 읽기
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    System.out.println(root.getDublinCorePackage().getRights());
    System.out.println(root.getDublinCorePackage().getPublisher());
    System.out.println(root.getDublinCorePackage().getTitle());
    System.out.println(root.getDublinCorePackage().getCreator());
    System.out.println(root.getDublinCorePackage().getLanguage());
    System.out.println(root.getDublinCorePackage().getDate());
}

더블린 코어 업데이트

아래 코드에 표시된 것처럼 필요에 따라 특정 더블린 코어 속성을 변경할 수 있습니다.

// Java를 사용하여 Dublin Core 메타데이터 업데이트
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:creator"), new PropertyValue("GroupDocs"));
    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:description"), new PropertyValue("test e-book"));
    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:title"), new PropertyValue("test EPUB"));
    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:date"), new PropertyValue(new Date().toString()));

    metadata.save("path/ebook.epub");
}

무료 라이센스 얻기

이 API의 기능을 완전히 경험하고 싶다면 무료 임시 라이선스를 획득할 수 있습니다.

결론

이번 글에서는 EPUB 메타데이터 조작에 대해 살펴보았습니다. 처음에는 Java를 사용하여 프로그래밍 방식으로 EPUB 메타데이터 속성을 읽고 수정하는 방법을 탐색했습니다. 나중에 우리는 eBook 내의 더블린 코어 항목 세트에 동일한 기술을 적용했습니다.

자세한 API 정보를 보려면 독자가 다음을 참조하는 것이 좋습니다.

질문이나 추가 토론은 제공된 포럼으로 문의하실 수 있습니다.

또한보십시오