LibreOffice(65)Writing UNO componentsのThumbs Exampleその1

ラベル: , ,

前の関連記事:LibreOffice(64)Professional UNO example


次は第3章Writing UNO componentsの例です。例の入っているフォルダはDevelopersGuide/Componentsになります。さらにその中に6つのフォルダに分類されています。

DevelopersGuide/Componentsフォルダの中にあるJavaの例をみる


この章の例はjavaソースをビルドすればいいというわけではないようなのでまずは例のフォルダの中をみてみます。

SynapticパッケージマネージャでtreeをインストールしてComponentsフォルダの中身一覧を出力しました。
pq@linuxBean:/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components$ tree
.
├── Addons
│   ├── JobsAddon
│   │   ├── Addons.xcu
│   │   ├── AsyncJob.components
│   │   ├── AsyncJob.java
│   │   ├── Jobs.xcu
│   │   └── Makefile
│   ├── ProtocolHandlerAddon_cpp
│   │   ├── Addons.xcu
│   │   ├── Makefile
│   │   ├── ProtocolHandler.xcu
│   │   ├── addon.cxx
│   │   ├── addon.hxx
│   │   └── component.cxx
│   └── ProtocolHandlerAddon_java
│       ├── Addons.xcu
│       ├── Makefile
│       ├── ProtocolHandler.xcu
│       ├── ProtocolHandlerAddon.java
│       └── ProtocolHandlerAddon_java.components
├── CppComponent
│   ├── Makefile
│   ├── SimpleComponent.odt
│   ├── TestCppComponent.cxx
│   ├── service1_impl.cxx
│   ├── service2_impl.cxx
│   └── some.idl
├── JavaComponent
│   ├── JavaComponent.components
│   ├── Makefile
│   ├── SomethingA.idl
│   ├── SomethingB.idl
│   ├── TestComponentA.java
│   ├── TestComponentB.java
│   ├── TestJavaComponent.java
│   ├── TestServiceProvider.java
│   ├── XSomethingA.idl
│   └── XSomethingB.idl
├── SimpleLicense
│   ├── LicenseTest.components
│   ├── LicenseTest.idl
│   ├── LicenseTest.java
│   ├── Makefile
│   ├── description.xml
│   └── registration
│       ├── license_de.txt
│       └── license_en_US.txt
├── Thumbs
│   ├── Makefile
│   ├── org
│   │   └── openoffice
│   │       ├── comp
│   │       │   └── test
│   │       │       ├── ImageShrink.components
│   │       │       ├── ImageShrink.java
│   │       │       ├── Makefile
│   │       │       └── Thumbs.java
│   │       └── test
│   │           ├── ImageShrink.idl
│   │           ├── Makefile
│   │           ├── XImageShrink.idl
│   │           └── XImageShrinkFilter.idl
│   └── thumbs.mk
└── dialogcomponent
    ├── DialogComponent.components
    ├── DialogComponent.java
    ├── DialogComponent.odt
    ├── Makefile
    ├── TestDialogHandler.idl
    └── XTestDialogHandler.idl
このうちjavaソースファイルが含まれている例だけ取り出します。
├── Addons
│   ├── JobsAddon
│   │   ├── Addons.xcu
│   │   ├── AsyncJob.components
│   │   ├── AsyncJob.java
│   │   ├── Jobs.xcu
│   │   └── Makefile
│   └── ProtocolHandlerAddon_java
│       ├── Addons.xcu
│       ├── Makefile
│       ├── ProtocolHandler.xcu
│       ├── ProtocolHandlerAddon.java
│       └── ProtocolHandlerAddon_java.components
├── JavaComponent
│   ├── JavaComponent.components
│   ├── Makefile
│   ├── SomethingA.idl
│   ├── SomethingB.idl
│   ├── TestComponentA.java
│   ├── TestComponentB.java
│   ├── TestJavaComponent.java
│   ├── TestServiceProvider.java
│   ├── XSomethingA.idl
│   └── XSomethingB.idl
├── SimpleLicense
│   ├── LicenseTest.components
│   ├── LicenseTest.idl
│   ├── LicenseTest.java
│   ├── Makefile
│   ├── description.xml
│   └── registration
│       ├── license_de.txt
│       └── license_en_US.txt
├── Thumbs
│   ├── Makefile
│   ├── org
│   │   └── openoffice
│   │       ├── comp
│   │       │   └── test
│   │       │       ├── ImageShrink.components
│   │       │       ├── ImageShrink.java
│   │       │       ├── Makefile
│   │       │       └── Thumbs.java
│   │       └── test
│   │           ├── ImageShrink.idl
│   │           ├── Makefile
│   │           ├── XImageShrink.idl
│   │           └── XImageShrinkFilter.idl
│   └── thumbs.mk
└── dialogcomponent
    ├── DialogComponent.components
    ├── DialogComponent.java
    ├── DialogComponent.odt
    ├── Makefile
    ├── TestDialogHandler.idl
    └── XTestDialogHandler.idl
LibreOffice 4.3 SDK - Developer's Guide Examplesも参考に例に対応するデベロッパーズガイドへのリンクを探します。

Thumbs Example Simple Component in Java
(今回やる例。継承関係にあるUNOIDLを定義する例。)

Java Component Example Possible Structures for Java Components
(拡張機能oxtファイルに複数のUNOコンポーネントを実装する例。LibreOffice5(38)Java Component ExampleをPythonに翻訳するでPythonに書き換えました。)

ProtocolHandler Addon Java Protocol Handler

Jobs Addon Example Jobs
 (LibreOffice5(16)イベント駆動する拡張機能のJavaの例:AsyncJob.oxt その1でやります。)
 
Dialog Component Example Accessing Dialogs

デベロッパーズガイドの出現順に並べました。

デベロッパーズガイドを何度読んでも難しくて私には理解できないのでとりあえずmakeしてしまいます。

Thumbs Exampleをmakeする


LibreOffice(61)linuxBeanでJavaの例をmakeで作ったsetsdkenvランチャでTerminalを起動します。


lsでフォルダ内を確認してcd Components→cd Thumbs でThumbsの例のフォルダにたどりつきます。

ここでmakeすればサブフォルダのMakefileもすべて読み込んで実行してくれるようになっているようなのでここでmakeします。

例のMakefileにはcleanターゲットが定義されているので、makeしたファイルを消したいときはmake cleanとすればその例のファイルが消去されます。
pq@linuxBean:/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs$ make
make -C org/openoffice/test   
make[1]: ディレクトリ `/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test' に入ります
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample
"/opt/libreoffice4.3/sdk/bin/idlc" -I. -I../../.. -I../../../../../../../idl -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample XImageShrink.idl
Compiling: XImageShrink.idl
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample
"/opt/libreoffice4.3/sdk/bin/idlc" -I. -I../../.. -I../../../../../../../idl -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample XImageShrinkFilter.idl
Compiling: XImageShrinkFilter.idl
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample
"/opt/libreoffice4.3/sdk/bin/idlc" -I. -I../../.. -I../../../../../../../idl -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample ImageShrink.idl
Compiling: ImageShrink.idl
rm -f /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.uno.rdb
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample
"/opt/libreoffice4.3/ure-link/bin/regmerge" /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.uno.rdb /UCR /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/XImageShrink.urd /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/XImageShrinkFilter.urd /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.urd
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/org/openoffice/test
"/opt/libreoffice4.3/sdk/bin/javamaker" -nD -Torg.openoffice.test.XImageShrink  -Torg.openoffice.test.XImageShrinkFilter  -Torg.openoffice.test.ImageShrink  -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.uno.rdb -X"/opt/libreoffice4.3/ure-link/share/misc/types.rdb" -X"/opt/libreoffice4.3/sdk/../program/types/offapi.rdb"
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/org/openoffice/test
"/opt/libreoffice4.3/sdk/bin/javamaker" -nD -Torg.openoffice.test.XImageShrink  -Torg.openoffice.test.XImageShrinkFilter  -Torg.openoffice.test.ImageShrink  -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.uno.rdb -X"/opt/libreoffice4.3/ure-link/share/misc/types.rdb" -X"/opt/libreoffice4.3/sdk/../program/types/offapi.rdb"
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/org/openoffice/test
"/opt/libreoffice4.3/sdk/bin/javamaker" -nD -Torg.openoffice.test.XImageShrink  -Torg.openoffice.test.XImageShrinkFilter  -Torg.openoffice.test.ImageShrink  -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.uno.rdb -X"/opt/libreoffice4.3/ure-link/share/misc/types.rdb" -X"/opt/libreoffice4.3/sdk/../program/types/offapi.rdb"
make[1]: ディレクトリ `/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test' から出ます
make -C org/openoffice/comp/test   
make[1]: ディレクトリ `/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test' に入ります
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/org/openoffice/comp/test
"/usr/bin/javac"  -classpath "/opt/libreoffice4.3/ure-link/share/java/juh.jar:/opt/libreoffice4.3/ure-link/share/java/jurt.jar:/opt/libreoffice4.3/ure-link/share/java/ridl.jar:/opt/libreoffice4.3/ure-link/share/java/unoloader.jar:/opt/libreoffice4.3/sdk/../program/classes/unoil.jar::/home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample" -d /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample ImageShrink.java
rm -f /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/ImageShrink.uno.jar
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample
"/usr/bin/jar" cvfm /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/ImageShrink.uno.jar /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/ImageShrink.uno.Manifest -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/comp/test/ImageShrink.class -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/test/XImageShrink.class -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/test/XImageShrinkFilter.class -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/test/ImageShrink.class
マニフェストが追加されました
org/openoffice/comp/test/ImageShrink.classを追加中です(入=2383)(出=1082)(54%収縮されました)
org/openoffice/test/XImageShrink.classを追加中です(入=775)(出=422)(45%収縮されました)
org/openoffice/test/XImageShrinkFilter.classを追加中です(入=167)(出=128)(23%収縮されました)
org/openoffice/test/ImageShrink.classを追加中です(入=1658)(出=679)(59%収縮されました)
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/ImageShrink/META-INF
rm -f /home/pq/libreoffice4.3_sdk/LINUXexample.out/bin/ImageShrink.oxt
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/bin
cp /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample/ImageShrink.uno.rdb /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample
"/usr/bin/zip" /home/pq/libreoffice4.3_sdk/LINUXexample.out/bin/ImageShrink.oxt ImageShrink.components
  adding: ImageShrink.components (deflated 42%)
cd /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample && "/usr/bin/zip" -u ../../bin/ImageShrink.oxt ImageShrink.uno.rdb ImageShrink.uno.jar
  adding: ImageShrink.uno.rdb (deflated 90%)
  adding: ImageShrink.uno.jar (deflated 17%)
cd /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/ImageShrink && "/usr/bin/zip" -u ../../../bin/ImageShrink.oxt META-INF/manifest.xml
  adding: META-INF/manifest.xml (deflated 53%)
rm -f /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ImageShrink.uno.rdb
rm -f /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/devguide_ImageShrink_register_component.flag
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/misc
"/opt/libreoffice4.3/sdk/../program/unopkg" add -f "/home/pq/libreoffice4.3_sdk/LINUXexample.out/bin/ImageShrink.oxt"
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/org/openoffice/comp/test
"/usr/bin/javac"  -classpath "/opt/libreoffice4.3/ure-link/share/java/juh.jar:/opt/libreoffice4.3/ure-link/share/java/jurt.jar:/opt/libreoffice4.3/ure-link/share/java/ridl.jar:/opt/libreoffice4.3/ure-link/share/java/unoloader.jar:/opt/libreoffice4.3/sdk/../program/classes/unoil.jar::/home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample" -d /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample Thumbs.java
mkdir -p /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample && rm -f /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/Thumbs.jar
"/usr/bin/jar" cvfm /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/Thumbs.jar /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/Thumbs.mf -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/comp/test/Thumbs.class -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/test/XImageShrink.class -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/test/XImageShrinkFilter.class -C /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample org/openoffice/test/ImageShrink.class
マニフェストが追加されました
org/openoffice/comp/test/Thumbs.classを追加中です(入=1572)(出=908)(42%収縮されました)
org/openoffice/test/XImageShrink.classを追加中です(入=775)(出=422)(45%収縮されました)
org/openoffice/test/XImageShrinkFilter.classを追加中です(入=167)(出=128)(23%収縮されました)
org/openoffice/test/ImageShrink.classを追加中です(入=1658)(出=679)(59%収縮されました)
"/usr/bin/jar" uvf /home/pq/libreoffice4.3_sdk/LINUXexample.out/class/ComponentThumbsExample/Thumbs.jar -C ../../../../../../../../classes 'com/sun/star/lib/loader/Loader.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/Loader$CustomURLClassLoader.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/Loader$Drain.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/InstallationFinder.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/InstallationFinder$StreamGobbler.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/WinRegKey.class' -C ../../../../../../../../classes 'com/sun/star/lib/loader/WinRegKeyException.class' -C ../../../../../../../../classes 'win/unowinreg.dll'
com/sun/star/lib/loader/Loader.classを追加中です(入=7991)(出=3797)(52%収縮されました)
com/sun/star/lib/loader/Loader$Drain.classを追加中です(入=739)(出=444)(39%収縮されました)
com/sun/star/lib/loader/Loader$CustomURLClassLoader.classを追加中です(入=1248)(出=637)(48%収縮されました)
com/sun/star/lib/loader/InstallationFinder.classを追加中です(入=8905)(出=4869)(45%収縮されました)
com/sun/star/lib/loader/InstallationFinder$StreamGobbler.classを追加中です(入=960)(出=542)(43%収縮されました)
com/sun/star/lib/loader/WinRegKey.classを追加中です(入=4779)(出=2430)(49%収縮されました)
com/sun/star/lib/loader/WinRegKeyException.classを追加中です(入=475)(出=287)(39%収縮されました)
win/unowinreg.dllを追加中です(入=12288)(出=1712)(86%収縮されました)
make[1]: ディレクトリ `/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/comp/test' から出ます
--------------------------------------------------------------------------------
Please use one of the following command to execute the example!
-
make Thumbs.run
--------
The ImageShrink Java component was installed if SDK_AUTO_DEPLOYMENT = YES.
You can use this component inside your office installation, see the example
description.
--------------------------------------------------------------------------------
これらを順番にみてThumb Exampleが何の例なのか学習します。

ImageShrinkサービス、XImageShrinkFilterインターフェイス、XImageShrinkインターフェイスを定義


まず2行目で/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/testフォルダに移動しています。

このフォルダにはImageShrink.idl、XImageShrink.idl、XImageShrinkFilter.idlの3つのidlファイルがあります。

ImageShrink.idlでImageShrinkサービスの定義をしています。

サービスについてはLibreOffice(13)デベロッパーガイド1 ほとんどの例はJavaでちょっと勉強したようにインターフェイスを1つだけをもつnew-styleサービスと、複数のインターフェイスをもち、さらに継承も可能なold-styleサービスがあります。

Defining a Serviceに解説があるようにImageShrinkサービスはnew-styleサービスです。

ImageShrink.idlでImageShrinkサービスはXImageShrinkFilterインターフェイスを備えることが定義されています。

XImageShrinkFilter.idlではそのXImageShrinkFilterインターフェイスの定義を行っており、このXImageShrinkFilterインターフェイスはXImageShrinkインターフェイスとcom::sun::star::document::XFilterを持っています。

XImageShrinkインターフェイスはXImageShrink.idlで定義されています。

Defining an Interfaceに解説があるようにSourceDirectory、DestinationDirectory、Dimensionの3つの属性を持っています。

属性とはLibreOffice(12)オブジェクト指向プログラミング:インターフェイスでやったように変数のことになります。


継承図にしてみました。

(2017.4.4追記。この記事を書いているときはLibreOffice APIにあるIDLを継承した時は実装も継承されると勘違いしていましたが、そうではなくて、単にIDLを借用しているだけなので実装も書かないといけません。LibreOffice5(37)bootstrap()で起動したLibreOfficeをエラーなく終了させる参照。)

org.openoffice.testパッケージがThumbs Exampleで定義されているものです。

Generating Source Code from UNOIDL Definitions - Apache OpenOffice Wiki

idlファイルの処理の仕方はここに書いてあります。

またmakeの出力に戻ってThumbs Exampleのこれらidlファイルの処理のされ方を追ってみましょう。

idlcでidlファイルをurdファイルにコンパイルする


4行目のmkdir -pのpはパスにあるフォルダをすべて作成するオプションです。

作成したComponentThumbsExampleフォルダにidlファイルのコンパイル結果を出力します。
"/opt/libreoffice4.3/sdk/bin/idlc" -I. -I../../.. -I../../../../../../../idl -O/home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExample XImageShrink.idl
/opt/libreoffice4.3/sdk/bin/idlcでXImageShrink.idlをコンパイルしています。

-Iオプションと-0オプションを使っています。

-0オプションは出力先ディレクトリ指定で/home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExampleにidlファイルと同名のutdファイルを出力します。

-Iはコンパイルに必要なファイルをidlcが探すパスを指定します。
-I.
-I../../..
-I../../../../../../../idl
3つのフォルダが指定されています。
/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/test
/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/
/opt/libreoffice4.3/sdk/idl
具体的にはこれら3つのフォルダになります。
/opt/libreoffice4.3/sdk/idlフォルダ以下にはidlファイルで定義したLibreOffice固有のidlファイルが全部入っています。

ImageShrink.idlはorg/openoffice/test/XImageShrinkFilter.idlをインクルードしており、XImageShrinkFilter.idlはorg/openoffice/test/XImageShrink.idlをインクルードしているため/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/も-Iで指定が必要なわけです。

/opt/libreoffice4.3/sdk/examples/DevelopersGuide/Components/Thumbs/org/openoffice/testはコンパイルもとのidlファイルがあるフォルダですがこれもきっと必要なのでしょう。

同様にして8行目でXImageShrinkFilter.idl、11行目でImageShrink.idlをコンパイルしています。


出力先の/home/pq/libreoffice4.3_sdk/LINUXexample.out/misc/ComponentThumbsExampleをみるとちゃんとurdファイルができていますね。

ImageShrink.uno.rdbは次にこれらurdファイルから作るファイルです。

参考にしたサイト


Writing UNO Components - Apache OpenOffice Wiki
デベロッパーズガイドの第3章。

LibreOffice 4.3 SDK - Developer's Guide Examples
SDKに含まれるこの章の例の一覧。

LibreOffice: Main Page
LibreOffice SDK API Reference。バージョンが更新されていくことに注意が必要です。

LibreOffice 4.3 SDK - Development Tools
UNOコンポーネント作成に必要なツール群。

Linuxコマンド集 - 【 mkdir 】 ディレクトリを作成する:ITpro
mkdir -p でパスにあるフォルダを複数作成できます。

次の関連記事:LibreOffice(66)Writing UNO componentsのThumbs Exampleその2

PR

0 件のコメント:

コメントを投稿