Вставьте изображение в документ Open Office Draw, используя Basic

Я хочу вставить изображение в документ LibreOffice Draw с помощью Basic. Я создаю документ Draw, затем добавляю страницу в документ, а затем переименовываю страницы. Я хочу вставить изображение на страницу 1, а затем добавить другое изображение на страницу 2. У меня есть страницы, созданные так, как я хочу, но я не могу вставить изображение на страницу. Ниже мой код

    sub InsertImage()
    Dim Doc As Object
    Dim Page1 as Object
    Dim Page2 as Object

    Dim DocPath1 as String
        DocPath1 = ConvertToURL("MyImage1.jpg")
    Dim DocPath2 as String
        DocPath2 = ConvertToURL("MyImage2.jpg")

    Dim noArgs() 'An empty array for the arguments
    Dim sURL As String

        sURL = "private:factory/sdraw"

        Doc = StarDesktop.LoadComponentFromUrl(sURL, "_blank", 0, noArgs())
        Page1 = Doc.DrawPages(0)
        Page1.Name = "Image1"

        Page2 = Doc.Drawpages.insertNewByIndex(2)
        Page2.Name = "Image2"

       '    Page1.FillStyle = com.sun.star.drawing.FillStyle.BITMAP
       '    Page1.FillBitmapURL = DocPath1
        
    End sub

Я читал книгу Эндрю Питоньяка, но не смог найти источник того, что я пытаюсь сделать. FillStyle ломает код.


person hemis    schedule 14.02.2021    source источник


Ответы (1)


У меня программа работает.

Я создал два PDF-файла и сохранил их в папке. Я запускаю макрос MergePDF, и саб открывает Draw, создает две страницы, копирует pdf на каждую страницу. Документ готов к экспорту в PDF, что является моей следующей задачей. Draw должен быть закрыт, чтобы это работало.

    sub MergePDF()

    Dim Doc As Object 'This workbook

    Dim NewWorkBookURL As String

    NewWorkBookURL = "private:factory/sdraw"
 
    Dim noArgs() 'An empty array for the arguments

    Dim Point As New com.sun.star.awt.Point
    Dim Size As New com.sun.star.awt.Size

    Point.x = 0
    Point.y = 0
    'A4
    Size.Width = 21000
    Size.Height = 29700

    Dim Page1 As Object 'Excel sheet
    Dim Page2 As Object 'AutoCAD sheet

    Dim Image1 As Object 'PDF1
    Dim Image2 As Object 'PDF2

    Dim DocPath1 As String
    Dim DocPath2 As String
    Dim DocPath3 As String

    DocPath1 = ConvertToURL("C:\Users\pdf1.pdf")
    DocPath2 = ConvertToURL("C:\Users\\pdf2.pdf")

    Doc = StarDesktop.LoadComponentFromUrl(NewWorkBookURL, "_blank", 0, noArgs())

    Page1 = Doc.DrawPages(0)
    Page1.Name = "PDF1"

    Page2 = Doc.Drawpages.insertNewByIndex(2)
    Page2.Name = "PDF2"

   'Page 1  
    Image1 = Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
    Image1.GraphicURL = DocPath1
    
    Image1.Size = Size
    Image1.Position = Point
    Page1.add(Image1)

    'Page 2 
    Image2 = Doc.createInstance("com.sun.star.drawing.GraphicObjectShape")
    Image2.GraphicURL = DocPath2
    
    Image2.Size = Size
    Image2.Position = Point
    Page2.add(Image2)

    'ExportToPDF

    'To Do

    msgbox "Done"

    End sub

Очень простой, но работает. Спасибо другим участникам форума за советы по пути.

person hemis    schedule 19.02.2021