0

Я пытаюсь экспортировать все диаграммы на несколько листов в моей таблице. Я посмотрел несколько примеров онлайн, чтобы придумать код, который извлекает все графики в моем файле в виде 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 
+1

Пожалуйста, опишите "криво". У вас может быть свойство 'FilterData' в' args', как здесь: http://www.ooowiki.de/DiagrammExport.html. Возможны следующие настройки фильтра. К сожалению, похоже, что нет никакой документации для 'FilterData', но' .Name = "PixelWidth" 'со значением в пикселе,' .Name = "PixelHeight" 'со значением в пикселе,' .Name = "Quality" 'со значением 0 до 100 также возможны. –

+1

Там также выглядит 'LogicalWidth' и' LogicalHeight'. Взгляните на этот пример: http://openoffice.2283327.n4.nabble.com/GraphicExportFilter-with-openoffice-3-1-and-3-3-not-setting-DPI-td3310397.html –

+0

Кажется, что это была проблема с версией libreoffice, которую я использовал (версия 4.0.6.2). Потому что, когда я запускал этот макрос в Open Office 4.1.1, он был экспортирован просто отлично. – Danmaxis

ответ

1

Изменение: MimeType с MediaType в:

args(1).Name = "MimeType" 
Смежные вопросы