Извлечение мультимедийных объектов, представленных в 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, но не его тип или расширение) Заранее спасибо..