GroupDocs.Metadata for Java 使 Java 开发人员可以通过执行几个简单的步骤,轻松地从其应用程序内编辑 Odt 文件的元数据详细信息。
- 加载要更新的 Odt 文件
- 指定将用于过滤所需元数据属性的谓词。
- 将谓词和新值传递给 UpdateProperties 方法。
- 保存更改。
GroupDocs.Metadata for Java 使 Java 开发人员可以通过执行几个简单的步骤,轻松地从其应用程序内编辑 Odt 文件的元数据详细信息。
// 编辑 ODT 创建日期元数据
public class UpdatingMetadata
{
  public static void run() 
  {
    Date threeDaysAgo = new Date(System.currentTimeMillis() - TimeUnit.DAYS.toMillis(3));
    try (Metadata metadata = new Metadata("input.odt"))
    {
        // 如果现有值早于 3 天,则更新文件创建日期/时间
        int affected = metadata.updateProperties(new ContainsTagSpecification(Tags.getTime().getCreated()).and(
                new OfTypeSpecification(MetadataPropertyType.DateTime)).and(
                new UpdatingMetadata().new DateBeforeSpecification(threeDaysAgo)), new PropertyValue(new Date()));
        // 处理更新结果
        System.out.println(String.format("Affected properties: %s", affected));
        // 保存编辑的文件
        metadata.save("output.odt");
    }
  }
  // 定义您自己的规范来过滤元数据属性
  public class DateBeforeSpecification extends Specification
  {
    public DateBeforeSpecification(Date date)
    {
      setValue(date);
    }
    public final Date getValue()
    {
      return auto_Value;
    }
    private void setValue(Date value)
    {
      auto_Value = value;
    }
    private Date auto_Value;
    public boolean isSatisfiedBy(MetadataProperty candidate)
    {
      Date date = candidate.getValue().toClass(Date.class);
      if (date != null)
      {
        return date.before(getValue());
      }
      return false;
    }
  }
}
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-metadata</artifactId>
<version>24.8</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://repository.groupdocs.com/repo/</url>
</repository>
</repositories>
GroupDocs.Metadata API 可让开发人员轻松更新其 Java 应用程序中各种文档格式的隐藏元数据。以编程方式应用、编辑、搜索和删除元数据。

GroupDocs.Metadata 简化了向 Java 应用内的文档和文件添加不同元数据的过程。开发人员可以轻松应用、更新或删除元数据。
该 API 提供了广泛的自定义元数据选项。使用特殊请求可以轻松地在文件中查找元数据并删除或更新它们。
根据文档格式,开发人员可以利用内置元数据,例如图像的 EXIF。这可能包括有关照片的信息,例如相机型号和编号、分辨率、创建日期等。
此示例演示更新 MP# 媒体文件中的隐藏元数据。
//  将文件加载到 Metadata 类构造函数
try (Metadata metadata = new Metadata("input.mp3")) {
    MP3RootPackage root = metadata.getRootPackageGeneric();
    if (root.getLyrics3V2() == null) {
        root.setLyrics3V2(new LyricsTag());
    }
    //  更新歌词数据
    root.getLyrics3V2().setLyrics("[00:01]Test lyrics");
    root.getLyrics3V2().setArtist("test artist");
    root.getLyrics3V2().setAlbum("test album");
    root.getLyrics3V2().setTrack("test track");
    // 您可以向标签添加完全自定义字段
    root.getLyrics3V2().set(new LyricsField("ABC", "custom value"));
    // 保存结果
    metadata.save("output.mp3");
}
适用于 Java 的多格式文档和图像元数据编辑 API。检索一些流行文件格式的元数据,如下所述