Top > OOoSF > Jython > UnoWrapper

UnoWrapper Edit

Jython では Java のインスタンスを利用しているため OOo のオブジェクトを操作するときにインターフェースをクエリする必要があり Java で行うときのように煩雑で面倒です。それを緩和するための Wrapper クラス。

JythonScriptProvider 0.1.3 以降では拡張機能に含まれています。インストール

マクロ、オートメーションのどちらからでも利用できるはずです。

Usage Edit

import UnoWrapper

With UnoWrapper

  0
  1
  2
  3
  4
  5
  6
  7
import UnoWrapper
 
*** For scripting
def WriterHelloWorld():
    scriptContext = UnoWrapper.setScriptContext(XSCRIPTCONTEXT)
    doc = scriptContext.getDocument()
    doc.getText().setString("HelloWorld!")
    #doc.getText().String = "HelloWorld!" # also work

Without UnoWrapper

  0
  1
  2
  3
  4
  5
  6
from com.sun.star.uno import UnoRuntime
 
def WriterHelloWorld():
    doc = XSCRIPTCONTEXT.getDocument()
    xTextDoc = UnoRuntime.queryInterface(XTextDocument, doc)
    xText = xTextDoc.getText()
    xText.setString("HelloWorld!")

For automation Edit

  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
import UnoWrapper
 
ctx = UnoWrapper.bootstrap()
if not ctx:
    print("Failed to connect.")
    import sys
    sys.exit(0)
smgr = ctx.getServiceManager()
desktop = smgr.createInstanceWithContext("com.sun.star.frame.Desktop", ctx)
doc = desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, [])
doc.getText().String = "Hello!"

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes