目次
1: LibreOfficeまたはOpenOffice、Java、C++、C#、VB.NET、Python、JavaScript、等を使って |
UNOを介して、Microsoft COMではなく。内側(マクロ)から、または外側(外部プログラム)から。GUIまたはキーバインディングを増強する。'soffice'をコールする? |
2: UNO、そのエッセンスとLibreOfficeまたはOpenOfficeとの関係 |
UNOは、LibreOfficeまたはOpenOfficeにとって、単なる周辺インターフェイスではありません。そのエッセンスおよび影響の貧しい理解があなたの足かせになっているかもしれません。 |
3: UNOの基本的構成要素 |
奴隷とは、誰か他の人の決定を盲目的に受け入れる人のことです。あなたは、自らの決定を自らの知識に基づいて行なうのです。基本を学ぶのがそのスタート地点です。 |
4: LibreOfficeまたはOpenOfficeのオフィシャルドキュメントを解読する |
それらは上手く書かれていない、と私たちは認めてよいし、認めるべきです。主犯の1人は、そこで使われているずぼらな用語体系であり、それをここで紐解きます。 |
5: UNOプログラムをLinuxで開発する環境を構築する |
マクロ、外部UNOプログラム、UNO拡張機能を、Java、C++、Pythonで開発するために。 |
6: UNOプログラムをWindowsで開発する環境を構築する |
マクロ、外部UNOプログラム、UNO拡張機能を、Java、C++、.NET Framework(大抵、C#、Visual Basic.NET)、Pythonで開発するために。 |
7: 本サイトの任意のサンプルプロジェクトをビルドする |
本サイトからあるサンプルプロジェクトを入手されましたか?そのプロジェクトをビルドする方法がここにあります。 |
8: LibreOfficeまたはOpenOfficeのインスタンスをUNOサーバーにする |
TCP/IPソケットまたはネームドパイプのアクセプターを開始する、あなたの外部プログラムからUNOを介してオフィスドキュメントを読み書きしたりインスタンスを操作したりするために。 |
9: 'やあ、コンソールJava UNOクライアントたち'サンプル |
あなたのプログラムをLibreOffice/OpenOfficeインスタンス(または任意のUNOサーバー)に接続する、オフィスドキュメントを読み書きしたりインスタンスを操作したりするために。 |
10: 'やあ、GUI Java UNOクライアントたち'サンプル |
あなたのプログラムをLibreOffice/OpenOfficeインスタンス(または任意のUNOサーバー)に接続し、切断を検知する。 |
11: 'やあ、コンソールC++ UNOクライアントたち'サンプル |
あなたのプログラムをLibreOffice/OpenOfficeインスタンス(または任意のUNOサーバー)に接続する、オフィスドキュメントを読み書きしたりインスタンスを操作したりするために。 |
12: UNOディスパッチコマンドを実行し、全情報を取得する(Java編) |
あなたの怠惰な方法は、実行から入手可能な一部の有用な情報を逃しているかもしれません。 |
13: 'soffice'または'soffice.exe'の実行はどのように動作するか |
うむ?この'soffice'呼び出しはなぜ即座にリターンするのだ?うーん、この呼び出しはなぜこんなに遅いのか? |
14: 'やあ、コンソールC# UNOクライアントたち'サンプル |
VB.NETでも同様。あなたのプログラムをLibreOffice/OpenOfficeインスタンスに接続する、オフィスドキュメントを読み書きしたりインスタンスを操作したりするために。 |
15: LibreOfficeをファイルコンバータとして最適に用いる(コンセプト) |
'soffice --convert-to'をプログラムからというのは、非効率であり制約を多く受けます。サードパーティツールの必要はありません。もっと良い方法があります。OpenOfficeにも適用可能。 |
16: LibreOfficeをファイルコンバーターとして最適に用いる(Java実装) |
OpenDocument/Microsoft Office/等フォーマット間で、PDF/CSVフォーマットへ、高速かつ万能に、ドキュメントを調整することも可能。動かせるサンプルあり。 |
17: LibreOffice/OpenOffice Basicのコードを構造化する1つの試み |
LibreOffice/OpenOffice Basicでは、クラスを作成できません。ここには、それにもかかわらず、Basicのコードを構造化する1つの試みが記されています。 |
18: LibreOfficeをファイルコンバーターとして最適に用いる(C++実装) |
OpenDocument/Microsoft Office/等フォーマット間で、PDF/CSVフォーマットへ、高速かつ万能に、ドキュメントを調整することも可能。動かせるサンプルあり。 |
19: これまで語られなかったまたは不正確に語られたLibreOffice Basicの基本 |
LibreOffice/OpenOffice Basicについて私が抱く基本的な関心事のいくつかを満足いくように取り扱っているドキュメントが私には見つけられません。ここでは、そうした関心事に取り組みます。 |
20: LibreOfficeをファイルコンバーターとして最適に用いる(C#実装) |
OpenDocument/Microsoft Office/等フォーマット間で、PDF/CSVフォーマットへ、高速かつ万能に、ドキュメントを調整することも可能。動かせるサンプルあり。 |
21: UNOディスパッチコマンドを実行し、全情報を取得する(C++編) |
あなたの怠惰な方法は、実行から入手可能な一部の有用な情報を逃しているかもしれません。 |
22: UNOディスパッチコマンドを実行し、全情報を取得する(C#編) |
あなたの怠惰な方法は、実行から入手可能な一部の有用な情報を逃しているかもしれません。 |
23: オフィスファイルをプログラムからオープンパスワードで暗号化する |
オフィスファイル(OpenDocument 'odt'、'ods'、'odp'ファイル、Microsoft Office 'doc'、'docx'、'xls'、'xlsx'、'pptx'ファイル)をあなたのプログラムから暗号化する。 |
24: UNOディスパッチコマンドを実行し、全情報を取得する(Basic編) |
LibreOfficeまたはApache OpenOffice Basicで。あなたの怠惰な方法は、実行から入手可能な一部の有用な情報を逃しているかもしれません。 |
25: LibreOfficeまたはApache OpenOfficeのデーモンを作成する |
例えば、ファイルコンバージョンサーバーとして。それは、とても簡単ですが、いくつか秘訣があります。 |
26: LibreOfficeまたはApache OpenOfficeのWindowsサービスを作成する |
例えば、ファイルコンバージョンサーバーとして。それは、とても簡単ですが、いくつか秘訣があります。 |
27: スプレッドシートをCSVファイルへ任意のフォーマットであなたのプログラムから |
'値タブ区切り'、'固定長レコード'、'テキスト項目引用符付き'等フォーマットで書く、LibreOfficeまたはApache OpenOfficeおよびUNOを用いて。 |
28: 'やあ、コンソールPython UNOクライアントたち'サンプル |
あなたのプログラムをLibreOffice/OpenOfficeインスタンス(または任意のUNOサーバー)に接続する、オフィスドキュメントを読み書きしたりインスタンスを操作したりするために。 |
29: LibreOfficeをファイルコンバーターとして最適に用いる(Python実装) |
OpenDocument/Microsoft Office/等フォーマット間で、PDF/CSVフォーマットへ、高速かつ万能に、ドキュメントを調整することも可能。動かせるサンプルあり。 |
30: 'soffice --convert-to'に暇をやって、直接にUNO APIを使用する |
'soffice --convert-to'は一部の限られたケースのみに良い。なぜかを、いくつかの図を用いて。幸運なことに、代わりに、直接にUNO APIを使用できる、容易に。 |
31: パスワード暗号化されたファイルをLibreOffice UNOでオープン/コンバート |
任意の、OpenDocument 'odt'/'ods'等ファイル、Microsoft Office 'doc'/'docx'/'xls'/'xlsx'等ファイル、PDFファイル。OpenOfficeにも適用可能。 |
32: LibreOffice Basic IDEの代わりに任意のテキストエディターを使う |
LibreOfficeまたはApache OpenOfficeのBasic IDEがそれほど扱いづらくないことないのは気のせいではありません。それを使う必要はありません。 |
33: LibreOfficeをファイルコンバーターとして最適に用いる(Basic実装) |
OpenDocument/Microsoft Office/等フォーマット間で、またPDFフォーマットへ、高速かつ柔軟に。ファイルに手を加えられる。OpenOfficeにも適用可能。 |
34: 全スプレッドシートをCSVファイル群にLibreOffice UNOで書く |
あるスプレッドシートドキュメントの全シートを、ただ第1シートだけをでなく。Apache OpenOfficeにも適用可能。 |
35: UNOディスパッチコマンドを実行し、全情報を取得する(Python編) |
あなたの怠惰な方法は、実行から入手可能な一部の有用な情報を逃しているかもしれません。 |
36: 編集パスワードをOpenDocumentファイルにUNOを用いてセットする |
LibreOfficeまたはOpenOfficeを用いて、OpenDocument('.odt'、'.ods'、'.odp')ファイルへ、Java、C++、C#、Python、BeanShell、JavaScript、Basicから |
37: 編集パスワードをバイナリーWord/ExcelファイルにUNOを用いてセットする |
LibreOfficeまたはOpenOfficeを用いて、Microsoft '.doc'、'.xls'ファイルへ、Java、C++、C#、Python、BeanShell、JavaScript、Basicから |
38: ワードプロセッサードキュメントのページのサイズをUNOを用いてセットする |
任意のワードプロセッサードキュメント(典型的には、OpenDocument Text/Office Open XML Document/Microsoft Wordファイルに関連付けられている)、LibreOfficeを用いて |
39: スプレッドシートドキュメントのページのサイズをUNOを用いてセットする |
任意のスプレッドシートドキュメント(典型的には、OpenDocument Spreadsheet/Office Open XML Workbook/Microsoft Excelファイルに関連付けられている)、LibreOfficeを用いて |
40: スプレッドシートドキュメントの任意のページプロパティをUNOを用いてセットする |
典型的にはOpenDocument Spreadsheet/Office Open XML Workbook/Microsoft Excelファイルに関連付けられた任意のスプレッドシートドキュメント、LibreOfficeを使って |
41: ワードプロセッサドキュメントの任意のページプロパティをUNOを用いてセットする |
典型的にはOpenDocument Text/Office Open XML Document/Microsoft Wordファイルに関連付けられた任意のワードプロセッサドキュメント、LibreOfficeを使って |
42: 編集パスワードをOffice Open XMLファイルにUNOを用いてセットする |
LibreOfficeまたはOpenOfficeを用いて、Office Open XML .docx、.xlsx、.pptxファイルへ、Java、C++、C#、Python、BeanShell、JavaScript、Basicから |
43: OfficeドキュメントをPDFへ、フル指定でUNOを用いてエクスポート |
エクスポートされるセクション群、イメージ群クオリティ、ウォーターマーク、タギング、フォームフィールド群フォーマット、ブックマーク群やコメント群の出力有無、暗号化、制限、署名、等 |
44: C++で任意のUNOコンポーネントを定義する |
典型的にはリスナーを作成するために。UNOガーベッジコレクション、ウィークポインティング、等の知識が必須でありここにあります。 |
45: '::com::sun::star::uno::Reference'を使用するまたはしない方法 |
致命的エラー(セグメンテーションフォールトエラー等の)、思わぬ非効率、面倒なコーディングを避けるために、ローカル/リモートUNOオブジェクトを操作する際に |
46: LibreOfficeまたはOpenOfficeで外部Pythonを使用する |
バイナリLibreOffice/OpenOfficeディストリビューションで、本記事では。あらゆるバージョンがオーケーなわけではない。フル・バグ修正済Pythonを使用するために。 |
47: LibreOfficeでPythonを使用する、Basicではなく |
もしも、あなたのLibreOfficeが、あまり望ましいとはいえないBasicを唯一のマクロ言語オプションとして示しているのであれば、Pythonを追加することができます。 |
48: LibreOfficeにユーザー/アプリケーション所有のPythonマクロを作成する |
Pythonの方がBasicよりもずっと良いでしょう、多くの人々にとって。Pythonマクロを作成するのは、難しくも、怪しくも、おたくっぽくもありません。 |
49: LibreOffice/OpenOfficeにドキュメント内Pythonマクロを作成する |
GUIを見る限りできないように見えますが、実際にはできます。したがって、マクロをドキュメント内に置くためのだけにBasicを使用する必要はありません。 |
50: Pythonマクロ群を格納するLibreOffice拡張機能を作成する |
本テクニックは、OpenOffice拡張機能にも使えるはずです。拡張機能を使えば、自分のPythonマクロ群を便利に配布できます。 |
51: 任意のLibreOfficeまたはOpenOfficeマクロをあなたのプログラムから呼び出す |
「任意の」は、ユーザー所有、アプリケーション所有、ドキュメント内、拡張機能内のいずれか、Python他何でも、を意味します。いいえ、'soffice'を呼んだりはしません、それはハンディキャップを負っています。 |
52: JJava UNOプログラミングを開始するための共通準備 |
この共通準備で通常、十分です、UNOインターフェイスを作成されるのでなければ。本当に、それはシンプルです。 |
53: 任意のモジュールをあなたのLibreOffice Pythonマクロへインポートする、Part 1 |
または、あなたのマクロによってインポートされた任意のモジュールへ。本パートは、ドキュメント内モジュールをインポートすること以外のためのものです。 |
54: 任意のモジュールをあなたのLibreOffice Pythonマクロへインポートする、Part 2 |
任意のドキュメント内モジュールもあなたのマクロまたはあなたのマクロによってインポートされた任意のモジュールへインポートできます。以下はその方法です。 |
55: LibreOfficeドキュメントをストリームから読みストリームへ書く |
または、OpenOffice、Microsoft Office、それらに類したドキュメントを。ドキュメントをデータベース、リモートサーバー、等に格納するために。 |
56: 自分のLibreOfficeまたはOpenOffice拡張機能を作成する基本 |
マクロ(Python、Basic、等)、UNOインターフェイス、UNOコンポーネント、UNOサービス、キーバインディング、メニューアイテム、ツールボタンを登録するために。 |
57: LibreOfficeまたはOpenOfficeにキーバインディングを登録する |
マクロ(Python、Java、JavaScript、BeanShell、Basicの)を起動するために。拡張機能を通して。ドキュメントタイプ毎に。 |
58: LibreOffice/OpenOfficeにメニューアイテム/ツールボタンを登録する |
マクロ(Python、Java、JavaScript、BeanShell、Basicの)を起動するために。拡張機能を通して。ドキュメントタイプ毎に。 |
59: Basicマクロ群をLibreOffice/OpenOffice拡張機能に入れる |
それらをキーバインディング群/メニューアイテム群/ツールボタン群/UNOインターフェイス群/UNOコンポーネント群/UNOサービス群と共にパッケージ化するために、そしてあるいは、それを配布するために。 |
60: UNO Interfaceを作成・登録する/マッピングイメージを生成する |
自作のUNOコンポーネントをJava、C++、C#、Pythonにて作成するために。Java、C++、C#、Pythonのマッピングイメージを生成する。 |
61: JavaでUNOコンポーネントを作成する |
例えば、リスナー、Swing GUIコンポーネント、マクロ言語では実装困難な機能コンポーネント、等 |
62: UNOサービスをJavaで作成する |
当該UNOコンポーネントをリモートプログラミング言語環境、例えばPythonマクロ、からインスタンス化するために。 |
63: C#でUNOコンポーネントを作成する |
典型的には、LibreOfficeまたはOpenOfficeクライアントにおけるリスナー、例えばディスパッチコマンド群のための、しかし、それだけではない。 |
64: PythonでUNOコンポーネントを作成する |
典型的には、マクロやLibreOfficeまたはOpenOfficeクライアントにおけるリスナー、例えばディスパッチコマンド群のための、しかし、それだけではない。 |
65: コネクションアウェアなリモートにも置けるPython外部UNOクライアント |
LibreOffice/OpenOfficeの機能をあなたの自立した(非マクロ)プログラム(Webアプリケーションのような長時間動作するものでもよい)に組み込むために |
66: コネクションアウェアなリモートにも置けるC#外部UNOクライアント |
LibreOffice/OpenOfficeの機能をあなたの自立した(非マクロ)プログラム(Webアプリケーションのような長時間動作するものでもよい)に組み込むために |
67: コネクションアウェアなリモートにも置けるC++外部UNOクライアント |
LibreOffice/OpenOfficeの機能をあなたの自立した(非マクロ)プログラム(Webアプリケーションのような長時間動作するものでもよい)に組み込むために |
68: コネクションアウェアなリモートにも置けるJava外部UNOクライアント |
LibreOffice/OpenOfficeの機能をあなたの自立した(非マクロ)プログラム(Webアプリケーションのような長時間動作するものでもよい)に組み込むために |
69: LibreOffice/OpenOffice内に任意のUNOオブジェクトシングルトンを作成する |
'singleton' UNOIDLエンティティを作成しても、シングルトンは作成されず、シングルトンgetterが作られるだけです。それでは、シングルトンはどうすれば作成できるのか?ここにその方法があります。 |
70: グローバルUNOサービスをC++にて作成する |
UNOコンポーネントをリモートプログラミング言語環境からインスタンス化するために、またはスプレッドシートセルファンクションなどの作成物を作成するために。 |
71: 任意のグローバルUNOサービスをPythonにて作成する |
UNOコンポーネントをリモートプログラミング言語環境からインスタンス化するために、またはスプレッドシートセルファンクションなどの作成物を作成するために。 |
72: LibreOffice/OpenOfficeで、任意のダイアログを非Basicマクロまたは非マクロから使用する |
任意のダイアログを非Basic(Java、C++、C#、Python、等)マクロまたは非マクロから呼び出して操作することができます。イベントたちはダイアログから受け取ることができます。 |
73: LibreOffice/OpenOfficeで、各タイプのダイアログコントロールを非Basicマクロまたは非マクロから操作する |
Label、Text、Command、Image、Check、Option、List、Combo、Scroll、Progress、Date、Time、Numeric、Formatted、File、Tree、Grid、Hyperlink、Spin、等 |
| このシリーズの目次 | このシリーズの次の記事>