前の関連記事: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の開発元。
0 件のコメント:
コメントを投稿