xrmx / pylokit

Python CFFI wrapper for LibreOfficeKit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

pip install pylokit

Examples

A basic conversion from a rtf file to a doc:

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:

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.

About

Python CFFI wrapper for LibreOfficeKit

License:Mozilla Public License 2.0


Languages

Language:Python 100.0%