我正在尝试更新DOC文件元数据中的keyword
。我已经能够使用下面的代码更新category
元数据,但我没有看到任何更改keywords
的方法
我正在使用poi:3.10-FINAL
void updateProperties(String filepath) {
POIFSFileSystem poifs = new POIFSFileSystem(new FileInputStream(filepath));
DirectoryEntry dir = poifs.getRoot();
DocumentSummaryInformation dsi;
try
{
DocumentEntry dsiEntry = (DocumentEntry) dir.getEntry(DocumentSummaryInformation.DEFAULT_STREAM_NAME);
DocumentInputStream dis = new DocumentInputStream(dsiEntry);
PropertySet ps = new PropertySet(dis);
dis.close();
dsi = new DocumentSummaryInformation(ps);
}
catch (FileNotFoundException ex)
{
dsi = PropertySetFactory.newDocumentSummaryInformation();
}
dsi.setCategory("New Category set");
dsi.write(dir, DocumentSummaryInformation.DEFAULT_STREAM_NAME);
OutputStream out = new FileOutputStream(filepath);
poifs.writeFilesystem(out);
out.close();
}
答案 0 :(得分:1)
关键字未存储在DocumentSummaryInformation
上,而是存储在其他属性流SummaryInformation
如果你看一下SummaryInformation的JavaDocs,你会发现它有你搜索的方法setKeywords(String)!