Apache TIKA - 添加新的元数据值

时间:2015-07-21 11:53:37

标签: java apache metadata 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));
}

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

谢谢大家。

1 个答案:

答案 0 :(得分:0)

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

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