Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
---
date: '2026-07-07'
description: 了解如何使用 GroupDocs.Metadata for Java 提取元数据,涵盖设置、代码和实际用例。此分步指南展示了如何提取 Dublin
Core 元数据、管理许可证以及优化性能。
keywords:
- how to extract metadata
- groupdocs metadata java
- dublin core java
schemas:
- author: GroupDocs
dateModified: '2026-07-07'
description: Learn how to extract metadata using GroupDocs.Metadata for Java, covering
setup, code, and real-world use cases. This step‑by‑step guide shows you how to
extract Dublin Core metadata, manage licenses, and optimize performance.
headline: How to Extract Metadata with GroupDocs.Metadata for Java
type: TechArticle
- description: Learn how to extract metadata using GroupDocs.Metadata for Java, covering
setup, code, and real-world use cases. This step‑by‑step guide shows you how to
extract Dublin Core metadata, manage licenses, and optimize performance.
name: How to Extract Metadata with GroupDocs.Metadata for Java
steps:
- name: Initialize the Metadata object
text: The `Metadata` class is the entry point that represents a single document’s
metadata container. It loads the file and prepares it for inspection. xml <repositories>
<repository> <id>repository.groupdocs.com</id> <name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/metadata/java/</ur
- name: Create a specification to filter Dublin Core properties
text: '`AssignableFromSpecification` defines the criteria for selecting only Dublin
Core elements, ensuring the query returns the exact fields you need. java try
(Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/yourfile.docx"))
{ // You can now access document metadata here. }'
- name: Find properties that match the specification
text: The `find` method returns a collection of `MetadataProperty` objects that
satisfy the specification, allowing you to iterate over just the relevant metadata.
java try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/yourfile.docx"))
{ // Further operations go here. }
- name: Extract and display the Dublin Core attributes
text: 'Iterate through the filtered properties, convert each to a readable string,
and output it. This confirms that extraction succeeded and shows the actual
values. The `DublinCorePackage` class represents the Dublin Core metadata schema
within GroupDocs.Metadata. java AssignableFromSpecification spec = '
type: HowTo
- questions:
- answer: Dublin Core is a lightweight, 15‑element set focused on discovery, whereas
standards like XMP or IPTC contain many more technical fields for editing and
rights management.
question: What is the difference between Dublin Core and other metadata standards?
- answer: Yes—after retrieving a `MetadataProperty`, call `setValue(newValue)` and
then invoke `metadata.save()` to persist changes.
question: Can I modify Dublin Core values and save them back to the file?
- answer: It does, provided you supply the password when constructing the `Metadata`
object.
question: Does GroupDocs.Metadata work with encrypted PDFs?
- answer: It streams data and never loads the full file into memory, allowing processing
of files larger than available RAM.
question: How does the library handle large documents?
- answer: No hard limit, but practical batch sizes (10‑50 files) balance performance
and resource usage.
question: Is there a limit to the number of files I can process in a batch?
type: FAQPage
title: 如何使用 GroupDocs.Metadata for Java 提取元数据
type: docs
url: /zh/java/metadata-standards/extract-dublin-core-metadata-groupdocs-java/
weight: 1
---

# 如何使用 GroupDocs.Metadata for Java 提取元数据

从文档中提取元数据是现代内容管理的基石,高效的 **如何提取元数据** 能为您节省数小时的手动工作。在本指南中,您将了解如何使用 **GroupDocs.Metadata for Java** 从 PDF、Word 文件、图像等提取 Dublin Core 字段。我们将逐步介绍前置条件、设置、代码片段和实际场景,帮助您立即在 Java 应用程序中利用丰富的元数据。

## 快速答案
- **第一行代码是什么?** `Metadata metadata = new Metadata("sample.pdf");`
- **需要哪个 Maven 构件?** `com.groupdocs:groupdocs-metadata`
- **我可以处理多个文件吗?** 是的——在循环中批处理 `Metadata` 对象。
- **开发时需要许可证吗?** 免费试用许可证可用于测试;生产环境需要永久许可证。
- **GroupDocs.Metadata 支持多少种格式?** 支持超过 50 种输入和输出格式,包括 PDF、DOCX、PPTX 和图像类型。

## 什么是 Dublin Core 元数据?
Dublin Core 是一套简单而强大的 15 个标准化元素(例如 Title、Creator 和 Subject),用于描述数字资源。它实现了跨平台的一致发现和索引,使内容更易于查找、组织和共享。通过应用这些元素,开发者可以提升搜索相关性并实现系统之间的互操作性。

## 为什么使用 GroupDocs.Metadata for Java 提取元数据?
GroupDocs.Metadata 支持 **50+ 文件格式**,并且能够在不将整个文件加载到内存的情况下处理高达 **2 GB** 的文档,与通用解析器相比可实现 **30 % 的 CPU 使用率降低**。其流式 API 允许您在单个线程安全的操作中查询、编辑和保存元数据,非常适合大规模数字资产管理系统。

## 前置条件

- **Java Development Kit (JDK):** 8 或更高。
- **IDE:** IntelliJ IDEA、Eclipse 或 NetBeans。
- **Maven**(或 Gradle)用于依赖管理。
- 基本的 Java 知识以及对元数据概念的了解。

## 许可证获取
要开始使用 GroupDocs.Metadata,您需要获取许可证。您可以从 [许可证页面](https://purchase.groupdocs.com/temporary-license) 获取免费试用或临时许可证。生产环境请通过 GroupDocs 门户购买永久许可证。

## 如何为 Java 设置 GroupDocs.Metadata?

将 GroupDocs.Metadata 的 Maven 依赖添加到 `pom.xml` 并刷新项目。此一步即可在类路径上提供整个库。

**Maven Setup:**
```xml
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/metadata/java/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>24.12</version>
</dependency>
</dependencies>
```
**Direct Download:** [GroupDocs.Metadata for Java 发布版](https://releases.groupdocs.com/metadata/java/)

**直接答案:** 添加 Maven 坐标并运行 `mvn clean install` 后,库即可使用;您可以立即在 Java 代码中创建 `Metadata` 对象。

## 实现指南

下面我们将实现分为四个清晰的步骤,每个步骤都配有简洁的代码占位符,您可以用官方 SDK 中的实际代码片段替换它们。

### 步骤 1:初始化 Metadata 对象
`Metadata` 类是表示单个文档元数据容器的入口点。它加载文件并准备进行检查。

```plaintext
```xml
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/metadata/java/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>24.12</version>
</dependency>
</dependencies>
```
```

### 步骤 2:创建规范以过滤 Dublin Core 属性
`AssignableFromSpecification` 定义了仅选择 Dublin Core 元素的标准,确保查询返回您所需的精确字段。

```plaintext
```java
try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/yourfile.docx")) {
// You can now access document metadata here.
}
```
```

### 步骤 3:查找符合规范的属性
`find` 方法返回满足该规范的 `MetadataProperty` 对象集合,使您能够仅遍历相关的元数据。

```plaintext
```java
try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/yourfile.docx")) {
// Further operations go here.
}
```
```

### 步骤 4:提取并显示 Dublin Core 属性
遍历过滤后的属性,将每个属性转换为可读字符串并输出。此操作确认提取成功并显示实际值。

`DublinCorePackage` 类表示 GroupDocs.Metadata 中的 Dublin Core 元数据模式。
```plaintext
```java
AssignableFromSpecification spec = new AssignableFromSpecification(DublinCorePackage.class);
```
```

### 故障排除提示
- 确认文件路径是绝对路径或相对于工作目录的正确相对路径。
- 确保文档类型支持 Dublin Core(PDF、DOCX 以及某些图像格式支持)。
- 使用最新的库版本,以避免与更新的 JDK 发行版产生兼容性问题。

## 实际应用

1. **数字资产管理 (DAM):** 使用标准化的 Dublin Core 字段为媒体文件打标签,以实现快速搜索和自动分类。
2. **图书馆目录:** 通过直接从扫描的 PDF 中提取元数据来丰富书目记录,减少手动录入。
3. **内容管理系统 (CMS):** 自动填充 SEO 友好的 meta 标签,提升页面排名和点击率。

## 性能考虑因素

- **内存管理:** 将 `Metadata` 的使用包装在 try‑with‑resources 块中,以确保正确释放。
- **批处理:** 将文件分批(10‑20 个)处理,以保持低内存占用并维持吞吐量。
- **优化查询:** 始终使用规范(如步骤 2 所示)以限制从文件读取的数据量。

## 常见问题

**Q: Dublin Core 与其他元数据标准有什么区别?**
A: Dublin Core 是一个轻量级的 15 元素集合,侧重于发现,而 XMP 或 IPTC 等标准包含更多用于编辑和权利管理的技术字段。

**Q: 我可以修改 Dublin Core 值并保存回文件吗?**
A: 可以——在获取 `MetadataProperty` 后,调用 `setValue(newValue)`,然后调用 `metadata.save()` 以持久化更改。

**Q: GroupDocs.Metadata 能处理加密的 PDF 吗?**
A: 可以,只要在构造 `Metadata` 对象时提供密码即可。

**Q: 库如何处理大型文档?**
A: 它采用流式处理,永不将完整文件加载到内存中,从而能够处理大于可用 RAM 的文件。

**Q: 批处理时可以处理的文件数量有上限吗?**
A: 没有硬性上限,但实际批量大小(10‑50 个文件)在性能和资源使用之间取得平衡。

## 资源
- **Documentation:** [GroupDocs.Metadata 文档](https://docs.groupdocs.com/metadata/java/)
- **API Reference:** [GroupDocs Metadata API 参考](https://reference.groupdocs.com/metadata/java/)
- **Download:** [GroupDocs.Metadata for Java 发布版](https://releases.groupdocs.com/metadata/java/)
- **GitHub Repository:** [GitHub 上的 GroupDocs.Metadata](https://github.com/groupdocs-metadata/GroupDocs.Metadata-for-Java)
- **Free Support:** [GroupDocs 论坛](https://forum.groupdocs.com/c/metadata/)
- **Temporary License:** [申请临时许可证](https://purchase.groupdocs.com/temporary-license)

---

**最后更新:** 2026-07-07
**测试环境:** GroupDocs.Metadata 23.12 for Java
**作者:** GroupDocs

```java
IReadOnlyList<MetadataProperty> properties = metadata.findProperties(spec);
```

```java
MetadataProperty property = properties.getCount() > 0 ? properties.get_Item(0) : null;

if (property != null) {
DublinCorePackage dcPackage = property.getValue().toClass(DublinCorePackage.class);

System.out.println("Format: " + dcPackage.getFormat());
System.out.println("Contributor: " + dcPackage.getContributor());
System.out.println("Coverage: " + dcPackage.getCoverage());
System.out.println("Creator: " + dcPackage.getCreator());
System.out.println("Source: " + dcPackage.getSource());
System.out.println("Description: " + dcPackage.getDescription());
}
```

```xml
<!-- Maven dependency for GroupDocs.Metadata -->
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>23.12</version>
</dependency>
```

## 相关教程

- [使用 GroupDocs.Metadata 在 Java 中提取 JPEG2000 图像注释:分步指南](/metadata/java/image-formats/extract-jpeg2000-image-comments-java-groupdocs-metadata/)
- [使用 GroupDocs.Metadata for Java 提取 XMP 元数据:综合指南](/metadata/java/metadata-standards/extract-xmp-metadata-groupdocs-metadata-java/)
- [使用 GroupDocs.Metadata for Java 管理元数据:综合指南](/metadata/java/working-with-metadata/manage-metadata-groupdocs-java/)
Loading
Loading