2018年4月1日日曜日

0: シリーズ「あるオープンソースオフィススイートを活用する」の目次

| このシリーズの目次 | このシリーズの次の記事>

目次


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が作られるだけです。それでは、シングルトンはどうすれば作成できるのか?ここにその方法があります。


| このシリーズの目次 | このシリーズの次の記事>