私は UNO を介して Open Office を使用することに成功しています。Open Office ライブラリを Java アプリケーションに組み込みたいのですが、可能ですか?
2 に答える
はい、できます。OpenOffice SDKが必要です。
ここで例を見つけてください: (StarOffice SDK について語っていることがわかりますが、同じです。StarOffice は、商用フォントとクリップアートを追加した、OpenOffice.org の Sun ブランドのビルドにすぎないことを思い出してください)
openoffice.org を実際にロードせずに、Java アプリから ODF ファイルを操作したいだけの場合は、この lib を確認してください。
FC
同様の質問がありました。Apache OpenOffice Developer's Guideで、デスクトップの使用に関するドキュメントをいくつか見つけました。StarSuite の例の互換性に関しては、おそらく StarOffice の例のいくつかは実行可能でしょうか? このガイドでは、 「StarOffice 5.x での OpenOffice.org GUI の再設計」という特定の問題について言及しています。
このガイドの例は、 UNO Development Kitを使用して、StarSuite Basic と Java で交互に提供されています。便利なチュートリアルもあります。これは、開発者ガイドの前半にあります。UNO IDL は、UNO コンポーネントの作成 セクションで紹介されています。UNO コンポーネント モデルは、おそらく OMG CORBA や Microsoft の COM に似ているように見えるかもしれません -- C# でどのようにインターフェイスされるかはわかりません
質問に対する正確な解決策を見つけることができなかったので、以下は「方法」に関する私の「最良の推測」を表しています。
外部Javaアプリケーション内にOpenOfficeコンポーネントを埋め込む場合、ドキュメントの正確な項目を見つけることができませんでしたが、-UNO APIのビューに向けて-デスクトップの使用に関する記事を参照すると、UNOインターフェース、XFrameがあります、 紹介された。XFrame インターフェースはメソッドgetComponentWindowを発行し、さらに - タイプ::com::sun::star::awt::XWindowのオブジェクト、UNO IDL インターフェースを返します。確かに、XWindow によって公開されたインターフェイス メソッドには、ネイティブ ウィンドウ オブジェクトを取得するためのメソッドは見当たりません。もちろん、アプリケーションのどこかにアクセスされるネイティブ ウィンドウ オブジェクトがあります。個人的には、OpenOffice のソース ツリーにすぐには慣れません。
おそらく、OpenOffice 内にアプリケーションを拡張機能として埋め込む場合、アプリケーション内に OpenOffice を埋め込む代わりに、より簡単な作業になるのでしょうか? OpenOffice の拡張に向けて、DZone にチュートリアルがあります。How Fast Can OpenOffice.org Be Extended? また、「ファースト コンタクト」チュートリアルでは、OpenOffice を拡張する場合の追加情報を提供しています。後者では、作成者はビルド プロセスに Ant を使用しています。確かに、必要に応じて Apache Maven を使用するように変換するのは簡単です (Maven の JAR ビルダーを同様の点で適用するなど)。
HTH