2

我在 OpenOffice/LibreOffice Basic 中的编码有一个相当基本的问题,我似乎无法弄清楚。我并不总是可以使用我应该使用的所有功能。这是一个例子:

Sub TestSub
    Dim doc As Object
    doc = ThisComponent  'Note that we're in LibreOffice Writer

    MsgBox(doc.Text.Dbg_SupportedInterfaces)

    doc.Text.finishParagraph(Array())  'Works OK
    doc.Text.appendParagraph(Array())  'Error, property or method not found
End Sub

doc.Text.Dbg_SupportedInterfaces属性告诉我,我应该有权访问的接口之一是com.sun.star.text.XParagraphAppend,它旨在公开finishParagraphappendParagraph,但我似乎只能访问finishParagraph。为什么是这样?这不是一个孤立的案例——在所有地方,我都看到我应该可以访问我无法访问的功能。

4

1 回答 1

3

Openoffice 和 Libreoffice 是不同的项目。这就是为什么它们将被开发出来,并且它们在未来会变得更加不同。在您的示例中,Libreoffice 不再有 appendParagraph 而是 finishParagraphInsert。见:http ://api.libreoffice.org/docs/idl/ref/interfacecom_1_1sun_1_1star_1_1text_1_1XParagraphAppend.html

对于 BASIC 开发,我建议使用 XRAY 之类的调试工具。请参阅:https ://wiki.documentfoundation.org/Macros此工具将仅显示真正存在的属性和方法。不幸的是,Libreoffice 的 API 文档中甚至没有更多的全局索引。所以 XRAY 不能直接链接到 Libreoffice API 文档。因此,目前我对 Openoffice 和 Libreoffice 都使用https://www.openoffice.org/api/docs/common/ref/index-files/index-1.html并手动检查 Libreoffice API http://api .libreoffice.org/如果我正在为 Libreoffice 开发宏。

于 2014-11-16T08:11:52.687 回答