LibreOffice5(87)Pythonマクロのための拡張機能APSOのインストール

2017-10-10

旧ブログ

t f B! P L
Javaがないとの警告なしにPythonマクロが呼び出せるとか、ドキュメントにPythonマクロを簡単に埋め込める、ということができる拡張機能APSO - Alternative Script Organizer for Pythonをインストールします。

前の関連記事:LibreOffice5(86)拡張機能: TCU - Tree Command for UNO の作成


拡張機能APSOのインストール


APSO - Alternative Script Organizer for Python — LibreOffice Extensions and Templates Website

ここからapso_v1.0.2.oxtをダウンロードしてインストールしました。
(Jean-Marc Zambon / apso · GitLabから最新版がダウンロードできます。apso_v1.1.1.oxtはPythonコンソールが開けるようになっていました。)

ツール→拡張機能マネージャーで「追加」ボタンをクリックしてダウンロードしたoxtファイルをインストールします。

Windows10 HomeのLibreOffice5.4にインストールするとき、スタートセンターではインストールに失敗しました。

ドキュメントを開いた状態でやり直すとうまくいきました。

最初にインストールに失敗したのはたまたまかもしれません。

linuxBean14.04のLibreOffice5.4ではスタートセンターからでもインストール出来ました。

APSOの使い方


WriterドキュメントからHelloWorld.pyを呼び出してみます。

Writerドキュメントを開いた状態から、ツール→マクロ→Organize python Scripts。


LibreOffice Macros→HelloWorld→HelloWorldPython、を選択してExecuteボタンをクリックするとHello World (in Python)が出力されます。

Executeボタンを使わなくてもHelloWorldPythonをダブルクリックしても実行できます。

JavaがインストールされていないWindows10 HomeでもJavaがないという警告がでてくることなくPythonマクロが実行できました。

Menuボタンをクリックするとサブメニューがでてきます。


マクロを選択した状態ではEditとDeleteがでてきて、Editを選択するとマクロがあるpyファイルがデフォルトエディタで開きます。

私はGeanyをデフォルトエディタにしています。

エディタで編集して保存して、APSOのダイアログを閉じるとちゃんとドキュメントに編集後のファイルが埋め込まれます。


マクロのあるファイルの階層を選択した状態でMenu→Embed in document、とするとそのとき開いているドキュメントにマクロがコピーされて埋め込まれます。


ドキュメント内の移動先はドキュメントのすぐ下の階層にしか移動できないようです。

(2017.11.1追記。マクロセレクターから実行したときと異なる結果になるマクロがあることがわかりました。Calc(36)コンテクストメニューをカスタマイズする: その5参照。)

Cerate moduleはpyファイル、Create libraryはフォルダが作成される



Cerate moduleでpyファイル、Create libraryでフォルダが作成されてました。

ドキュメントに保存した場合は、manifest.xmlファイルをみると、moduleもlibraryもLibreOffice(31)Pythonマクロをドキュメントファイルに埋め込むと同じように登録されていました。
 <manifest:file-entry manifest:full-path="Scripts/python/Library/Library/Library/" manifest:media-type="application/binary"/>
 <manifest:file-entry manifest:full-path="Scripts/python/Library/Library/Module.py" manifest:media-type=""/>
 <manifest:file-entry manifest:full-path="Scripts/python/Library/Library/" manifest:media-type="application/binary"/>
 <manifest:file-entry manifest:full-path="Scripts/python/Library/" manifest:media-type="application/binary"/>
 <manifest:file-entry manifest:full-path="Scripts/python/Module.py" manifest:media-type=""/>
 <manifest:file-entry manifest:full-path="Scripts/python/" manifest:media-type="application/binary"/>
 <manifest:file-entry manifest:full-path="Scripts/" manifest:media-type="application/binary"/>
pyファイルはmedia-typeが空文字、フォルダはmedia-typeがapplication/binaryになっています。

しかし、APSOのウィンドウでドキュメント内のライブラリにpyファイルを移動させる方法はわかりませんでした。

いまのところはLibreOffice(39)7-ZipのGUIで楽にPythonマクロをドキュメントに埋め込むみたいにドキュメントをzipファイルとしてpyファイルを入れることができますが、それに応じてmanifest.xmlファイルの編集が必要になります。

参考にしたサイト


APSO - Alternative Script Organizer for Python — LibreOffice Extensions and Templates Website
この拡張機能で簡単にPythonマクロをドキュメントに埋め込めるようになります。

Jean-Marc Zambon / apso · GitLab
APSOの開発元。

次の関連記事:LibreOffice5(88)Writerドキュメントのサービスとインターフェイス一覧

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ