マクロ/Pythonガイド/はじめに

From The Document Foundation Wiki
Jump to: navigation, search
This page is a translated version of the page Macros/Python Guide/Introduction and the translation is 68% complete.


Return to Index

Other languages:
English • ‎español • ‎français • ‎italiano • ‎日本語 • ‎русский


はじめに

PyUNOとは

LibreOfficeでは、いくつかのインタープリタ言語でマクロを書くことができますが、その中の一つがPythonです。PyUNOは、Pythonを使ってLibreOfficeのAPI(Application Programming Interface)にアクセスするためのコンポーネントです。

インストール

Ubuntu 18.04 LTSなどのオペレーティングシステムでは、追加のOSパッケージをインストールする必要があります。パッケージは Ubuntuでは、libreoffice-script-provider-pythonと呼ばれ、scriptproviderforpython.rdb (XMLメタデータ) や pythonscript.py (Pythonインフラストラクチャ) などのファイルが含まれています。

  • In Ubuntu 18.04+
sudo apt install libreoffice-script-provider-python

Pythonマクロが利用可能かをテストする

Writerで文書を新規作成します。メニューから ツール ▸ マクロ ▸ マクロを実行... を選択すると「マクロセレクタ−」ダイアログが開きます。ライブラリセクションからLibreOfficeのマクロ ▸ HelloWorldを選択、マクロ名セクションからHelloWorldPythonを選択して、実行ボタンをクリックします。

この結果が表示されれば、システムはPythonマクロが実行できます。

Test macro python

マクロはどこに保存されますか?

ユーザープロファイルフォルダー/ユーザーのみが利用できるマクロ

GNU/Linux
/home/USER/.config/libreoffice/4/user/Scripts/python
Windows
%APPDATA%\LibreOffice\4\user\Scripts\python
OSX
~/Library/Application Support/LibreOffice/4/user/Scripts/python/

LibreOfficeのディレクトリ/すべてのユーザーが利用できるマクロ

    • GNU/Linux
      • /usr/lib/libreoffice/share/Scripts/python/

このパスはデフォルトです。カスタムインストールした場合は異なります。フォルダーが存在しない場合は、大文字に注意をして作成する必要があります。

ドキュメント内

    • Any ODF file, really is a ZIP file, you can extract this file like extract normally this type files. In the root, create folder
      Scripts/python/
      and copy inside any python file, for example:
      mymacros.py
    • You should see.
 myfile
 |   ...
 ├── META-INF
 │   └── manifest.xml
 ├── Scripts
 │   └── python
 │       └── mymacros.py
 ...
  • Edit file manifest.xml into folder META-INF and add lines, just before tag close </manifest:manifest>
 <manifest:file-entry manifest:full-path="Scripts/python/mymacros.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" />
  • The final file should see like:
   <?xml version="1.0" encoding="UTF-8"?>
   <manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0" manifest:version="1.2" xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0">
    <manifest:file-entry manifest:full-path="/" manifest:version="1.2" manifest:media-type="application/vnd.oasis.opendocument.spreadsheet"/>
    <manifest:file-entry manifest:full-path="Thumbnails/thumbnail.png" manifest:media-type="image/png"/>
    <manifest:file-entry manifest:full-path="settings.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="manifest.rdf" manifest:media-type="application/rdf+xml"/>
    <manifest:file-entry manifest:full-path="Configurations2/" manifest:media-type="application/vnd.sun.xml.ui.configuration"/>
    <manifest:file-entry manifest:full-path="meta.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="styles.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="content.xml" manifest:media-type="text/xml"/>
    <manifest:file-entry manifest:full-path="Scripts/python/mymacros.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" />
   </manifest:manifest>
  • Now, zip the complete folder again. Caution, not zip extern folder, zip the content of folder


Return to Index