В качестве примера следуйте инструкциям на странице https://wiki.openoffice.org/wiki/OpenOffice_NetBeans_Integration#Configuration. Установите Apache OpenOffice API Plugin
, перейдя на страницу Tools -> Plugins
.
Нажмите на ссылку, которая говорит OpenOffice.org Add-On Project Type
, чтобы получить дополнительные инструкции. Если вы еще этого не сделали, загрузите AOO 4.1.2 и AOO 4.1.2 SDK. (Плагин не работал для меня с помощью LibreOffice, но полученное расширение работало в LibreOffice).
После того, как код генерируется в соответствии с инструкциями, а затем добавить этот код в dispatch
метод TestAddOn.java:
if (aURL.Path.compareTo("HelloWorld") == 0)
{
// add your own code here
com.sun.star.frame.XController xController = m_xFrame.getController();
if (xController != null) {
XModel xModel = (com.sun.star.frame.XModel) xController.getModel();
XTextDocument xTextDocument = (com.sun.star.text.XTextDocument)
UnoRuntime.queryInterface(XTextDocument.class, xModel);
XText xText = xTextDocument.getText();
XTextRange xTextRange = xText.getEnd();
xTextRange.setString("Hello World (in Java)");
return;
}
}
В настоящее время компиляция и развертывание расширения. Когда нажата кнопка панели инструментов «Hello World», она должна помещать «Hello World (в Java)» в документ.
Код был изменен с https://forum.openoffice.org/en/forum/viewtopic.php?f=47&t=72459.
Для того, чтобы обрабатывать события, как при открытии документа, я также попытался назвать метод расширения от базового кода:
Sub CallJavaMacro
MSPF = createUnoService("com.sun.star.script.provider.MasterScriptProviderFactory")
scriptPro = MSPF.createScriptProvider("")
xScript = scriptPro.getScript("vnd.sun.star.script:" & _
"com.example.testaddon.TestAddOn.PutHello?" & _
"language=Java&location=user:uno_packages/TestAddOn.oxt")
Thing = xScript.Invoke()
End Sub
Однако Базовая процедура говорит, что не может найти метод. Возможно, я не декларировал метод правильно или что-то в этом роде.
Если вы не хотите, чтобы люди видели код, не используйте java, поскольку его очень легко декомпилировать. – xenteros
https://wiki.openoffice.org/wiki/JavaEclipseTuto – xenteros
Какой язык я должен использовать и как его использовать для создания расширения для OpenOffice? – Benjamin