Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

An easy solution to transform libreoffice/openoffice documents to supported formats

Project Description


This is a rendering server that will wrap an OpenOffice/LibreOffice server and provide a pythonic API which is remotely callable.

The main advantage is that your client code does not need to import pyuno… This is a main plus because pyuno is a pain to get working on Windows and some flavors of Linux, don’t even think of Mac :)

Once you deploy a py3o.renderserver all you need in your python code is to use the py3o.renderclient which is really straightforward…


We recommend you use the dockerized versions from the dockerhub

Using this way you’ll get the latest tested version of LibreOffice and py3o.renderserver without the hassle of building all the dependencies…

If you want to have templating fusion & document convertion in one single web service usable from any language with just HTTP/POST you can install py3o.fusion server. Which also exists as a docker image

Manual Installation


Install the latest JDK for your plateform. Here is an example for Ubuntu (13.04 or 14.04):

apt-get install default-jdk

This will give you the necessary tools to compile the juno driver.

You will need to install (and compile) the py3o.renderers.juno driver.

Follow the instructions from the driver’s documentation to install it and then you’re ready to start your own RenderServer

Running the server

Here is how we start the server on a Linux host (Ubuntu 16.04):

$ start-py3o-renderserver --java=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/ --ure=/usr/lib/libreoffice --office=/usr/share --driver=juno --sofficeport=8997

You MUST have a running LibreOffice (OpenOffice) server somewhere. In our example it is running on localhost with port 8997. Here is how you can start such a server on Linux (Ubuntu 13.04 / LibreOffice 4.0.4):

$ libreoffice --nologo --norestore --invisible --headless --nocrashreport --nofirststartwizard --nodefault --accept="socket,host=localhost,port=8997;urp;"

As you can see it works with OpenJDK, LibreOffice and even on 64bit systems :)

Release History

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
py3o.renderserver-0.5.1-py2.7.egg (27.4 kB) Copy SHA256 Checksum SHA256 2.7 Egg Nov 28, 2016
py3o.renderserver-0.5.1-py2-none-any.whl (16.6 kB) Copy SHA256 Checksum SHA256 2.7 Wheel Nov 28, 2016
py3o.renderserver-0.5.1.tar.gz (12.2 kB) Copy SHA256 Checksum SHA256 Source Nov 28, 2016 (21.3 kB) Copy SHA256 Checksum SHA256 Source Nov 28, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting