uno 服务的创建不是问题。但是您应该避免使用调度程序。这就是为什么用 openoffice 录制宏不是很有帮助的原因。您必须为 API 烦恼。
本教程展示了 PDF 导出的一般工作原理:https ://wiki.openoffice.org/wiki/API/Tutorials/PDF_export
对于定制 aMediaDescriptor
是需要的。https://www.openoffice.org/api/docs/common/ref/com/sun/star/document/MediaDescriptor.html
该服务可以由 ::com::sun::star::beans::PropertyValue[] 表示。这种类型有Name
和Value
属性。
这MediaDescriptor
至少需要一个FilterName
. 可以在此处找到不太实际的 FilterName 列表:https ://wiki.openoffice.org/wiki/Framework/Article/Filter/FilterList_OOo_3_0
为了进一步定制 aFilterData
是可能的。对于那些阅读:https ://wiki.openoffice.org/wiki/API/Tutorials/PDF_export#General_properties
从https://wiki.openoffice.org/wiki/API/Tutorials/PDF_export#Filter_data_demo中的过滤器数据演示开始Value
,也使用了一个sFilterData
数组。PropertyValue
所以我们得到:
sub storeCellRangeToPDF()
oDoc = ThisComponent
oController = oDoc.getCurrentController()
oSheet = oController.getActiveSheet()
oCellRange = oSheet.getCellRangeByName("$A$1:$B$3")
dim aFilterData(0) as new com.sun.star.beans.PropertyValue
aFilterData(0).Name = "Selection"
aFilterData(0).Value = oCellRange
dim aMediaDescriptor(1) as new com.sun.star.beans.PropertyValue
aMediaDescriptor(0).Name = "FilterName"
aMediaDescriptor(0).Value = "calc_pdf_Export"
aMediaDescriptor(1).Name = "FilterData"
aMediaDescriptor(1).Value = aFilterData()
oDoc.storeToURL("file:///home/axel/Dokumente/test.pdf", aMediaDescriptor())
end sub