Skip to main content

A Java based driver for py3o

Project description

Juno for py3o

py3o.renderers.juno is a Java driver for py3o to transform an OpenOffice document into a PDF

It is intended to be used in conjunction with http://bitbucket.org/faide/py3o.renderserver But can be used outside it if you wish.

Prerequisites

Since this is a Java implementation you will need to install jpype and to have a recent Java runtime on the rendering machine. You will also need a running OpenOffice instance. (If you are on windows this can be addressed by using the py3o.renderserver Open Office service.)

This has been tested to build correctly with:

  • Oracle JDK 1.6 and OpenOffice 3.2.1 on Windows 7 and Windows server 2003

  • Oracle JDK 1.6 and LibreOffice 3.4 on Windows 7 64bit

  • OpenJDK 6 and LibreOffice 3.4 on Linux (Ubuntu and RHEL 5)

  • OpenJDK 7 and LibreOffice 4.0.4 on Linux (Ubuntu 13.04) with some deprecation warnings but it still works

For example if you are on Ubuntu you should run this command:

$ sudo apt-get install default-jdk

Usage

from py3o.renderers.juno import start_jvm, Convertor, formats
import datetime

# first arg is the jvm.so or .dll
# second arg is the basedir where we can find the basis3.3/program/classes/unoil.jar
# third argument it the ure basedir where we can find ure/share/java/*.jar containing
# java_uno.jar, juh.jar, jurt.jar, unoloader.jar
# the fourth argument was the openoffice version but is no more used
# fifth argument is the max memory you want to give to the JVM
start_jvm(
        "/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/server/libjvm.so",
        "/usr/lib/libreoffice",
        "/usr/lib",
        "",
        140)
c = Convertor("127.0.0.1", "8997")

t1 = datetime.datetime.now()
c.convert("py3o_example.odt", "py3o_example.pdf", formats['PDF'])
t2 = datetime.datetime.now()

For more information please read the example provided in the examples dir and read the API documentation.

Installation

Requirements

Unfortunately a direct easy_install will not work because we require JPype and jpype is neither on PyPi nor easy_installable from an URL.

On linux You’ll need to download and unzip JPype on your machine and easy_install from the source dir after setting your JAVA_HOME:

$ wget http://sourceforge.net/projects/jpype/files/JPype/0.5.4/JPype-0.5.4.2.zip/download
$ unzip JPype-0.5.4.2.zip
$ cd JPype-0.5.4.2/
$ export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
$ python setup.py build
$ python setup.py install

The really important part is the export JAVA_HOME variable that you MUST set correctly for the compilation to work. The JAVA_HOME variable is only important if you want to compile, you will not need this variable at runtime

On windows you can easy_install a binary release easily like this:

$ easy_install -UZ http://sourceforge.net/projects/jpype/files/JPype/0.5.4/JPype-0.5.4.2.win32-py2.7.exe/download

Driver install

Once JPype is correctly installed in your desired python you can proceed with a normal installation:

$ easy_install -UZ py3o.renderers.juno

Driver compilation and installation

NOTE: this is optionnal and reserved for developpers who want to compile the jar file by themselves

If you want to install from source you’ll need to clone our repository:

$ hg clone http://bitbucket.org/faide/py3o.renderers.juno
$ cd py3o.renderers.juno/java/py3oconvertor
$ ./compilelibroffice.sh
$ cd ../../
$ python setup.py develop

Please note how you must first compile the jar file with our script (some more example scripts are available for windows and OpenOffice). If something fails, first try to edit the script and find if all referenced jar files are present on your system.

Project details


Download files

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

Source Distributions

py3o.renderers.juno-0.5.zip (15.3 kB view details)

Uploaded Source

py3o.renderers.juno-0.5.tar.gz (9.2 kB view details)

Uploaded Source

Built Distributions

py3o.renderers.juno-0.5-py27-none-any.whl (12.3 kB view details)

Uploaded Python 2.7

py3o.renderers.juno-0.5-py2.7.egg (12.6 kB view details)

Uploaded Source

File details

Details for the file py3o.renderers.juno-0.5.zip.

File metadata

File hashes

Hashes for py3o.renderers.juno-0.5.zip
Algorithm Hash digest
SHA256 122aae606b201d89e6b20a2efbb53ff3f18c5959d203e2f6008644dc8f2d2795
MD5 abfdf2f47e7d14c22521aafb77c9d547
BLAKE2b-256 c4dba71e5448414dc4ff3f25fe2ea4eab93db51f26975e8edb4157a724e485bc

See more details on using hashes here.

File details

Details for the file py3o.renderers.juno-0.5.tar.gz.

File metadata

File hashes

Hashes for py3o.renderers.juno-0.5.tar.gz
Algorithm Hash digest
SHA256 fa991d6ac96173d00790801a15f0cf7d3e23f5c1ab392c59d91bfd4cd03bc778
MD5 464663217f63919c241dbc3a9895a054
BLAKE2b-256 5decd75f14e64e678b5ae680aee2d66aadb75778475eecb27b6b85422533f5cf

See more details on using hashes here.

File details

Details for the file py3o.renderers.juno-0.5-py27-none-any.whl.

File metadata

File hashes

Hashes for py3o.renderers.juno-0.5-py27-none-any.whl
Algorithm Hash digest
SHA256 7b095e688604af7498d180146bafaf18a057ff503a5edb0f1bd77decacd6fb3b
MD5 43d0d6dde14865328f874f640715b073
BLAKE2b-256 9ed04464fc25ec8a16cdfc990a31577b474072413a58442e859b986ea408893c

See more details on using hashes here.

File details

Details for the file py3o.renderers.juno-0.5-py2.7.egg.

File metadata

File hashes

Hashes for py3o.renderers.juno-0.5-py2.7.egg
Algorithm Hash digest
SHA256 09c1c8422435e4ce54d2fc3b119ffb1095faa577a05e111c17c7d928ba27eaa3
MD5 309b3e4801e1087f7654df36c097f3d3
BLAKE2b-256 6ccd90e0ff2ea7ee6086a951272e93d0f2bf76ed0214a203602e3f462613a5be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page