Заполните фон файла презентации с помощью командной строки

У меня есть несколько JPEG-файлов, которые я хочу использовать в качестве фоновых изображений в презентации libreOffice Impress. Но я не люблю добавлять их по слайдам.

Есть ли способ использовать командную строку (Linux), чтобы добавить фотографии в файл презентации?

Что-то вроде:

for i in *.jpg; do <add a new slide with that jpg as background to the presentation file>; done

1 ответ

В LibreOffice перейдите в Инструменты -> Макросы -> Организовать макросы -> LibreOffice Basic и добавьте следующий макрос в Module1,

Sub InsertSlideWithBackgroundImage(imageFilePath)
    imageFileURL = ConvertToURL(imageFilePath)
    oDoc = ThisComponent
    oBackground = oDoc.createInstance("com.sun.star.drawing.Background")
    oBitmaps = ThisComponent.createInstance( "com.sun.star.drawing.BitmapTable")
    iBitmap = 1
    Do
        sBitmapName = "bk" & iBitmap
        iBitmap = iBitmap + 1
    Loop Until Not oBitmaps.hasByName(sBitmapName)
    oBitmaps.insertByName(sBitmapName, imageFileURL)
    oBackground.FillStyle = com.sun.star.drawing.FillStyle.BITMAP
    oBackground.FillBitmapURL = oBitmaps.getByName(sBitmapName)
    oSlideList = oDoc.getDrawPages()
    oSlide = oSlideList.insertNewByIndex(oSlideList.Count)
    oSlide.Background = oBackground
End Sub

Затем добавьте изображение из командной строки, как это.

loimpress "file.odp" "macro:///Standard.Module1.InsertSlideWithBackgroundImage(image.jpg)"

Или запустить python3 из командной строки и взаимодействовать с прослушивающим экземпляром LibreOffice. Этот подход объясняется по адресу http://christopher5106.github.io/office/2015/12/06/openoffice-libreoffice-automate-your-office-tasks-with-python-macros.html.

РЕДАКТИРОВАТЬ:

Чтобы запустить его напрямую, передайте путь к файлу изображения.

Sub Test1
    Call InsertSlideWithBackgroundImage("/path/to/your_image.jpg")
End Sub
Другие вопросы по тегам