使用LibreOffice上的宏将图形导出为PNG不正确

时间:2015-10-29 11:11:53

标签: graph export libreoffice libreoffice-calc libreoffice-basic

我正在尝试在电子表格中导出多个工作表上的所有图表。我在线查看了一些示例,想出了一个代码,可以将我文件中的所有图形提取为PNG。但是我可能会遗漏一些东西,因为每次运行这个宏时,都会生成一些未对齐的图像(并且不一样,有时图像是正确的)。这段代码很简单,但我不知道可能导致它的原因。谁能帮我解决这个问题?

Sub ExportGraphs
    oDoc = ThisComponent

    Dim oSheet As Object
    Dim eSheets As Object

    Dim args(1) as new com.sun.star.beans.PropertyValue

    gef = CreateUnoService("com.sun.star.drawing.GraphicExportFilter")

    eSheets = oDoc.getSheets.createEnumeration()

    While eSheets.hasMoreElements
        oSheet = eSheets.nextElement()
        oDrawPage = oSheet.getDrawPage()
        iLimit = oDrawPage.getCount() -1

        For index = 0 to iLimit
            oDraw = oDrawPage.getByIndex(index)

            args(0).Name = "URL"
            args(0).Value = "file:///home/user_folder/Desktop/graphs/graph_" & oSheet.getName & "_" & index+1 & ".png"
            args(1).Name = "MimeType"
            args(1).Value = "image/png"

            gef.setSourceDocument(oDraw)
            gef.filter(args)

        Next
    Wend
End Sub

1 个答案:

答案 0 :(得分:1)

更改:MimeTypeMediaType位于:

args(1).Name = "MimeType"