使用LibreOffice API提取LibreOffice Impress中存在的媒体对象

时间:2014-06-20 09:23:40

标签: java api media libreoffice openoffice-impress



我试图通过java中的LibreOffice API获取LibreOffice Impress文档中存在的媒体内容(视频,音频)的详细信息。我想要提取的细节是文档中存在的媒体内容的类型。以及出口它们的方法。我已经浏览了网站上给出的java示例,但找不到与文件中的视频或音频类型相关的任何内容以及视频文件的提取。我已经完成了使用GraphicExportFilter从Impress Documents导出图像的示例,但它无法导出文档中存在的视频或音频文件。我还尝试使用XShape(下面的代码)提取媒体内容的类型,但它只提供媒体内容的名称而不是其类型(音频/视频/或媒体扩展)。

对于导出,我也知道将文档转换为pptx然后重命名和提取所有类型的媒体文件的方法。但是我想在实际应用中会花费更多的时间来提取(如果我错了,请纠正我),所以我试图用LibreOffice API做同样的事情。


XComponent  xDrawDoc = Helper.loadDocument( xOfficeContext,fileName, "_blank", 0, pPropValues );
XDrawPage xPage = PageHelper.getDrawPageByIndex( xDrawDoc,nPageIndex );
XIndexAccess xIndexAccess = UnoRuntime.queryInterface(XIndexAccess.class,xPage); 
long shapeNumber = xIndexAccess.getCount();                        
for(int j=0;j < shapeNumber;j++) 
{ 
     XShape xShape =UnoRuntime.queryInterface(XShape.class, xPage.getByIndex(j));
     XNamed xShapeNamed =UnoRuntime.queryInterface(XNamed.class, xShape);                                           
     System.out.println(j+":"+xShapeNamed.getName());
} 

(此代码为我提供Impress中存在的媒体内容的名称,但不包括其类型或扩展名) 在此先感谢..

0 个答案:

没有答案