Извлечение мультимедийных объектов, представленных в LibreOffice Impress, с помощью API-интерфейсов LibreOffice



Я пытаюсь получить подробную информацию о мультимедийном содержимом (видео, аудио), присутствующем в документе LibreOffice Impress через API LibreOffice в Java. Детали, которые я хочу извлечь, - это тип медиа-контента, представленного в документе. А также способы их экспорта. Я просмотрел примеры java, представленные на Сайте, но не смог найти ничего, имеющего отношение к типу видео или аудио, присутствующих в файле, и извлечению видеофайлов. Я просмотрел пример экспорта изображений из документов Impress с помощью GraphicExportFilter, но он не может экспортировать видео или аудио файлы, присутствующие в документе. Я также попытался извлечь тип медиа-контента с помощью XShape (код ниже), но он дает только название медиа-контента, а не его тип (аудио / видео / или медиа-расширение).

Для экспорта мне также известен метод преобразования документов в pptx с последующим переименованием и извлечением всех типов медиа-файлов. Но я полагаю, что это потребовало бы больше времени для извлечения (исправьте меня, если я ошибаюсь) в практическом применении, поэтому я пытался сделать то же самое с помощью API LibreOffice.


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 ответов

Другие вопросы по тегам