我正在创建一个java应用程序,它将提取Powerpoint(PPTX)文档中的嵌入式缩略图。由于pptx文件是zip存档,我试图使用TrueZip来获取存档内的缩略图。不幸的是,每当我尝试运行我的应用程序时,它都会抛出一个IOException,指出文件丢失C:\Users\test-user\Desktop\DocumentsTest\Hello.pptx\docProps\thumbnail.jpeg (missing file)
以下是我用来获取缩略图的代码:
public Boolean GetThumbPPTX(String inFile, String outFile)
{
try
{
TFile srcFile = new TFile(inFile, "docProps\\thumbnail.jpeg");
TFile dstFile = new TFile(outFile);
if(dstFile.exists())
dstFile.delete();
srcFile.toNonArchiveFile().cp_rp(dstFile);
return dstFile.exists();
} catch (IOException ex) {
Logger.getLogger(DocumentThumbGenerator.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
其中inFile
是pptx文件的绝对路径,outFile
是缩略图将被复制到的路径。我可以验证存档在其内部确实具有相同路径的缩略图。
有人可以帮忙吗?
答案 0 :(得分:1)
我刚刚找到答案。好像我没有正确配置Zip驱动程序。我将它添加到我的类构造函数中,现在一切正常:
TConfig.get().setArchiveDetector(new TArchiveDetector(
TArchiveDetector.NULL,
new Object[][] {
{ "zip|pptx", new ZipDriver(IOPoolLocator.SINGLETON)},
}));