2016-06-29 3 views
-4

OpenOffice 확장 프로그램을 작성하려고합니다.OpenOffice 확장 프로그램을 시작하는 방법은 무엇입니까?

이 확장명은 java로 작성됩니다 (컴파일 됨, 사람들에게 코드가 표시되는 것을 원하지 않음). OpenOffice Writer를 시작할 때 버튼을 클릭 할 때와 인쇄 할 때 작업을 수행해야합니다. 이미 버튼을 추가했지만 어떻게해야하는지 코드에 링크하는 방법을 찾을 수 없습니다. 위키와 DevGuide를 읽었지만 명확하지 않습니다.

내 확장 기능을 만드는 방법을 이해하는 데 도움을 주시기 바랍니다 (코드를 삽입해야하는 위치, GUI와 링크하는 방법 등)?

+0

사람들이 코드를 보지 못하도록하려면 디 컴파일이 매우 쉽기 때문에 java를 사용하지 마십시오. – xenteros

+0

https://wiki.openoffice.org/wiki/JavaEclipseTuto – xenteros

+0

어떤 언어를 사용해야하며 OpenOffice 확장 프로그램을 만드는 데 어떻게 사용해야합니까? – Benjamin

답변

0

예를 들어 https://wiki.openoffice.org/wiki/OpenOffice_NetBeans_Integration#Configuration의 지침을 따르십시오. Tools -> Plugins으로 이동하여 Apache OpenOffice API Plugin을 설치하십시오.

자세한 지침을 보려면 OpenOffice.org Add-On Project Type 링크를 클릭하십시오. 아직 다운로드하지 않은 경우 AOO 4.1.2 및 AOO 4.1.2 SDK를 다운로드하십시오. (플러그인은 LibreOffice를 사용하여 저에게 효과적이지 않았지만 결과 확장은 LibreOffice에서 작동했습니다). 코드는 명령에 따라 생성되는

후, 다음의 TestAddOn.java dispatch 방법이 코드를 추가

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 (in 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 

을 기본 루틴이이 방법을 찾을 수 있다고하지만. 어쩌면 나는 그 방법을 적절하게 선언하지 않았을 수도 있습니다.

관련 문제