Apache TIKA -添加新的元数据值



我正在使用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));
}

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

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

这是Apache Tika社区中讨论过的内容,并且已经使用外部程序创建了一个概念验证嵌入式,目标是映像文件。您可以在这里找到接口,在这里找到实现javadocs。在某种程度上,大多数主要格式可能会支持将更改后的元数据嵌入到格式中,但这在今天是不可能的。目前,社区的重点主要是提取,而不是保存。

最新更新