Изображения, вставленные в документ с помощью функции "Вставка -> Изображение" или обычным копированием, автоматически встраиваются в документ и сохраняются в папке Pictures внутри документа. Названия файлов следуют примерно такому формату:
Для доступа к изображениям можно использовать объект "DocumentStorage". DocumentStorage - обеспечивает доступ к хранилищу документа. Для получения изображения с помощью метода getByName() необходимо указать папку, в которой хранятся изображения, и имя файла изображения:
Dim oPictures, oImage
oPictures = ThisComponent.DocumentStorage.getByName("Pictures")
oImage = oPictures.getByName("100000000000016A0000008BD6DC9D6B919CF82E.jpg")
Также можно использовать индекс вместо имени файла:
oImage = oPictures.getByName(oPictures.ElementNames(0))
Для получения имен всех файлов в папке Pictures следует воспользоваться методом getElementNames() к объекту oPictures. Как показано ниже, этот код выводит имена всех файлов в диалоговом окне:
fileNames = oPictures.getElementNames()
For i = LBound(fileNames) To UBound(fileNames)
MsgBox fileNames(i)
Next i
Этот способ будет полезен, если требуется вставить изображение в диалог (форму). Если требуется изменить свойства изображения на листе, следует использовать другой метод доступа. Для этого необходимо получить объект DrawPage. DrawPage представляет собой страницу для рисунков в документе, таких как диаграммы, схемы, изображения и другие элементы. После получения объекта DrawPage можно обратиться к изображению по его индексу:
Dim oSheet, oDrawPage, oShape
Dim oPoint As New com.sun.star.awt.Point
oSheet = ThisComponent.Sheets.getByIndex(0)
oDrawPage = oSheet.getDrawPage()
oShape = oDrawPage.getByIndex(0)
Получив доступ к изображению с индексом 0, можно изменить его положение или размер, например:
oPoint.X = 1000
oPoint.Y = 1000
oShape.setPosition(oPoint)