Я пытаюсь экспортировать все диаграммы на несколько листов в моей таблице. Я посмотрел несколько примеров онлайн, чтобы придумать код, который извлекает все графики в моем файле в виде PNG. Но я, возможно, что-то пропускаю, потому что каждый раз, когда я запускаю этот макрос, некоторые изображения генерируются неправильно (и не то же самое, иногда изображения правильны). Этот код прост, но я не могу его вызвать. Может ли кто-нибудь помочь мне решить эту проблему?Неправильный экспорт графа в виде PNG с использованием макросов на LibreOffice
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
Пожалуйста, опишите "криво". У вас может быть свойство 'FilterData' в' args', как здесь: http://www.ooowiki.de/DiagrammExport.html. Возможны следующие настройки фильтра. К сожалению, похоже, что нет никакой документации для 'FilterData', но' .Name = "PixelWidth" 'со значением в пикселе,' .Name = "PixelHeight" 'со значением в пикселе,' .Name = "Quality" 'со значением 0 до 100 также возможны. –
Там также выглядит 'LogicalWidth' и' LogicalHeight'. Взгляните на этот пример: http://openoffice.2283327.n4.nabble.com/GraphicExportFilter-with-openoffice-3-1-and-3-3-not-setting-DPI-td3310397.html –
Кажется, что это была проблема с версией libreoffice, которую я использовал (версия 4.0.6.2). Потому что, когда я запускал этот макрос в Open Office 4.1.1, он был экспортирован просто отлично. – Danmaxis