Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xrmx/pylokit

Python CFFI wrapper for LibreOfficeKit
https://github.com/xrmx/pylokit

Last synced: 23 days ago
JSON representation

Python CFFI wrapper for LibreOfficeKit

Awesome Lists containing this project

README

        

pylokit
=======

A python CFFI wrapper for LibreOfficeKit. Tested in cpython2,
cpython3, and pypy. LibreOfficeKit currently works only on Linux systems.

Requirements
------------

An installation of LibreOffice >= 4.3.0 is required on the same machine.

If you are using cpython you need *libffi-dev* in order to compile CFFI.

Installation
------------

You are encouraged to install pylokit on a python *virtualenv*.

.. code:: bash

pip install pylokit

Examples
--------

A basic conversion from a rtf file to a doc:

.. code:: python

from pylokit import Office
import os

lo_path = "/path/to/libreoffice/program/dir"

with Office(lo_path) as lo:
with lo.documentLoad("myfile.rtf") as doc:
doc.saveAs("myfile.doc")

os._exit(0)

Same conversion passing an explicit format and filter options:

.. code:: python

from pylokit import Office
import os

lo_path = "/path/to/libreoffice/program/dir"

with Office(lo_path) as lo:
with lo.documentLoad("myfile.rtf") as doc:
doc.saveAs("myfile.doc", fmt="docx", options="skipImages")

os._exit(0)

The usage of a context manager is needed to properly handle LibreOfficeKit
file locking.
The use of _exit() instead of default exit() is required because in some
circumstances LibreOffice segfaults on process exit.

Acknowledgements
----------------

Project inspired by Olly Betts' `lloconv `_.