Apache TIKA - 添加新的元数据值

Apache TIKA - Add new metadata value

我正在使用 Apache TIKA 将新的元数据值添加到 .doc 文件。

File file=new File(filepath);
Parser parser = new AutoDetectParser();
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
FileInputStream inputstream=new FileInputStream(file);
ParseContext context =new ParseContext();
parser.parse(inputstream, handler, metadata, context);
metadata.add("Author","My Author");

如果我列出文档的所有元数据值:

String[] metadataNamesafter = metadata.names();
for(String name : metadataNamesafter) {     
   System.out.println(name + ": " + metadata.get(name));
}

作者已更改,但此 属性 未保存在物理文件中。 有人可以告诉我该怎么做吗?

谢谢大家

目前,Apache Tika 不支持此功能。目前(2015 年 7 月),Apache Tika 仅提供从文件中提取 元数据和文本内容的方法。因此,无法将您的更改保存到文件中。

这是 Apache Tika 社区中已经讨论过的内容,并且已经使用外部程序针对图像文件创建了概念验证 Embedded。您可以找到 interface here and the implementation javadocs here。在某些时候,大多数主要格式可能会支持将更改的元数据嵌入回格式中,但这在今天是不可能的。现在,社区的重点主要是提取,而不是保存。