1



我正在尝试通过 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 中存在的媒体内容的名称,但不是其类型或扩展名)在此先感谢..

4

0 回答 0