典型的にはOpenDocument Text/Office Open XML Document/Microsoft Wordファイルに関連付けられた任意のワードプロセッサドキュメント、LibreOfficeを使って
話題
About: UNO (Universal Network Objects)
About: LibreOffice
About: Apache OpenOffice
About: Javaプログラミング言語
About: C++
About: Microsoft .NET Framework
About: Pythonプログラミング言語
About: LibreOffice Basic
About: Apache OpenOffice Basic
About: BeanShell
About: JavaScript
この記事の目次
- 開始コンテキスト
- ターゲットコンテキスト
- オリエンテーション
- 本体
- 1: 任意のワードプロセッサドキュメントの任意のページプロパティをセットするためのロジック
- 2: 当該プロパティ群のリスト
- 3: 結びとその先
開始コンテキスト
- 読者は、UNOがサポートされているプログラミング言語群(Java、C++、Microsoft .NET Frameworkのプログラミング言語群(ほとんどの場合、C#およびVisual Basic.NET)、Python、LibreOfficeまたはApache OpenOffice Basic、BeanShell、JavaScript)の内の1つの基本的知識を持っている。
- 読者は、UNOとは何であるかおよびそれがLibreOfficeまたはApache OpenOfficeにどう関係しているかの知識を持っている。.
- 読者は、UNOの基本的要素群およびそれらに対して本シリーズで用いられている用語体系の知識を持っている。
- 読者は、任意のLibreOfficeまたはApache OpenOfficeインスタンスへのUNOオブジェクト群コンテキストを取得する方法の知識(任意の外部コンソールJava、C++、C#、Pythonプログラムのためにそれを行なう方法についてのいくつかの記事がある; 任意の外部GUI Javaプログラムのためにそれを行なう方法についてのある記事がある; 任意の外部GUI C++、C#、Pythonプログラムのためにそれを行なう方法についてのいくつかの記事は以降に公開される)を持っている。
- 読者は、UNOを用いて、意図するドキュメントにアクセスする方法およびそのドキュメントをファイルに格納する方法の知識を持っている(LibreOfficeまたはApache OpenOfficeをファイルコンバーターとして使用する方法の記事(コンセプト、あるJava実装、あるC++実装、あるC#実装、あるPython実装、あるLibreOfficeまたはApache OpenOffice Basic実装)がその情報の主要な部分を含んでいる)。
ターゲットコンテキスト
- 読者は、LibreOfficeまたはApache OpenOfficeのインスタンスにロードされた任意のワードプロセッサドキュメントの任意のページプロパティを、自分のプログラムからセットする方法を知る。
Hypothesizer 7、Objector 41A、Objector 41Bが、あるコンピュータの前にいる。
オリエンテーション
Hypothesizer 7
本記事では、LibreOfficeまたはApache OpenOfficeのインスタンスにロードされた任意のワードプロセッサドキュメントの任意のページプロパティを、私たちのプログラムからセットする方法を知ります。
実のところ、本記事は、任意のワードプロセッサドキュメントの任意のページのサイズをセットすることについてのある以前の記事の拡張です。
Objector 41A
「拡張」とはどういう意味だ?
Hypothesizer 7
サー、任意のプロパティをセットするためのロジックは、その以前の記事にて既に説明済みです; その以前の記事は、2つのプロパティ、'Size'および'IsLandscape'を使用しておりますが、それらの代わりに他の任意のプロパティをあなたは使用することができます、もしも、そのプロパティの使用をご存じであれば。本記事では、それを知ることになります(もっと具体的には、本記事で紹介される別の記事にて)。
Objector 41B
スプレッドシートドキュメントもいくつか操作する必要があるんだけど。
Hypothesizer 7
マダム、スプレッドシートドキュメントについての記事もあります。.
本体
1: 任意のワードプロセッサドキュメントの任意のページプロパティをセットするためのロジック
Hypothesizer 7
任意のワードプロセッサドキュメントの任意のページプロパティをセットするためのロジックは、以前の記事にて既に説明済みであり、ここでは繰り返しません。
第4セクションにおいて、「Size」の代わりに別のプロパティ名を、そして対応するデータタイプのデータを使えばよいだけです。
2: 当該プロパティ群のリスト
Hypothesizer 7
ここに、当該プロパティ群のリストがあります。
挙げられているプロパティタイプ群はUNOデータタイプであることにご注意ください。
Objector 41A
それって. . .
Hypothesizer 7
各UNOデータタイプは、UNOがサポートされている各プログラミング言語において、言語固有のあるデータタイプへマップされています。例えば、'long'は、Javaの'int'('long'ではなく)へマップされ; Pythonでは、任意の整数が'int'へマップされています、'short'とか'byte'とかはないので。
'::com::sun::star::container::XNameContainer'のような複合タイプの仕様については、UNO APIリファレンスをご覧ください。
Objector 41A
. . .「ページスタイルがどのように非フィジカルでありうるのか不明」 ?
Hypothesizer 7
正直に言って、非フィジカルであるというのが具体的に何を意味するのか、私は知りません。「フィジカル」でない?メモリ内にあるどのオブジェクトもフィジカルです、私の意見では。. . .私が推測するには、非フィジカルであるというのが意味するのは、もっと適切に述べると、一時的であるか何かでしょう(私に言わせれば、何かがいかに短い期間存在しようとも、それは非フィジカルでは全然ありません)。
Objector 41A
. . .
Hypothesizer 7
いずれにせよ、私はそのプロパティを全然気にしていません、なぜなら、それは常に'true'であるべきだからです、私の関心の範囲内では。
Objector 41A
「これがどのような効果を持つのか不明」?
Hypothesizer 7
正直に言って、何を意味するのか私の知らないプロパティがいくつかあります。それらは、GUIのページスタイルダイアログ上のどのセッティングにも対応しているように思われないので、実際には、それらも私は気にしていません。
実は、GUIページスタイルダイアログ上の「Register-true」設定に対応するプロパティがない、という懸念があります。実際、あるUNO APIページは「RegisterModeActive」という名前のプロパティがあると主張していますが、それは、本当には存在していないようです。
Objector 41A
なんで?
Hypothesizer 7
私は知りません、オフィシャルドキュメントがかなりずさんであるということは知っていますが。
Objector 41A
. . .他方では、そのページは、全プロパティ群の内の少しの部分しかリストしていないようだ。
Hypothesizer 7
はい、そうです: 例えば、'HeaderTextFirst'をリストしていませんが、それは存在します、最初のページは個別のヘッダーテキストを持てるので; 別の例として、'FillGradient'をリストしていませんが、それは、具体的なページバックグラウンドグラデーション設定群にアクセスするために必要です。
Objector 41A
私は思うのだが、それは、なぜ、もっと、ちゃんと話せないのかね。. . .「the left border distance of the page(ページの左ボーダ距離)」とはどういう意味だ?左ボーダと何との間の距離だ(それが'ページ'でないことは間違いない、なぜなら、ページというのは、四角形のエリア全体であって、'左ボーダとページとの間の距離'などというのは意味をなさないから、'左ボーダと、ページの左エッジとの間の距離'とか'左ボーダと、ページのメインコンテンツとの間の距離'とかなら意味をなすかもしれないが)?2端点を示すことなく距離を語るなどというのは、無意味だ. . .
3: 結びとその先
Hypothesizer 7
これで、LibreOfficeまたはApache OpenOfficeのインスタンスにロードされた任意のワードプロセッサドキュメントの任意のページプロパティを、私たちのプログラムからセットする方法を知りました。
他のUNOコンポーネントたちのプロパティ群の仕様も、以降の記事群にて見ていきます。
参考資料
- N/A. (N/A). LibreOffice: Main Page. Retrieved from https://api.libreoffice.org/docs/idl/ref/index.html