я следующий код, чтобы экспортировать лист в файл PDF:LibreOffice Calc macro: Как экспортировать диапазон ячеек в файл PDF?
Option Explicit
Sub exportToPdf
Dim document As Object
Dim dispatcher As Object
document=ThisComponent.CurrentController.Frame
dispatcher=createUnoService("com.sun.star.frame.DispatchHelper")
Dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///home/someuser/Desktop/exported.pdf"
args1(1).Name = "FilterName"
args1(1).Value = "calc_pdf_Export"
dispatcher.executeDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
End Sub
Он работает должным образом. У меня есть следующие вопросы:
Можно ли экспортировать PDF без создания unoService? (И как это сделать?)
Как экспортировать диапазон ячеек вместо всего листа?
Вы можете уточнить, почему диспетчеру следует избегать? – Maciej
См. Https://wiki.openoffice.org/wiki/The_OpenOffice.org_recorder_and_UNO_dispatch_calls «Рекордер производит серию вызовов диспетчеризации UNO, которые не особенно полезны для изучения модели API OpenOffice.org. Я лично нахожу код, который рекордер производит немного трудно следовать ». ... «Аргументы каждой команды отправки не документированы». –
Этот код не будет запускаться с помощью «Option Explicit». Переменные 'oDoc, oController, oSheet, oCellRange' не объявляются. – Maciej