/jodconverter

JODConverter automates document conversions using LibreOffice or Apache OpenOffice

Primary LanguageJava

JODConverter

I created this fork because I had to do some changes to the original project and I want to share my work with the community.

In order to be able to apply changes to the JODConverter project, I had to understand the source code first. So, for those who may have take a look at the original source code, you'll be happy to see a lot more comments in this version. I tried to be as meaningful as possible along the way, but comments (about the comments!) are always welcome. Please note that my first language is not English.

What you want to know...

  • Documentation: The JODConverter documentation (work in progress) can be found here.

  • SIGAR: This fork does not depend on SIGAR. JODConverter only needs to retrieve office processes (PIDs) and kill office processes (using PID). It should work just fine without SIGAR with the actual process managers base on an older version of JODConverter. But I added the ability to use any process manager you would like to implement. More details on this feature later. For now, just look at the DefaultOfficeManagerBuilder class documentation.

  • Dependencies: The core project of this fork depends on slf4j, commons-lang3, commons-io, and the required LibreOffice libraries (for now, everything seems to work nice with OpenOffice too).

  • Tests: This fork has been tested on Windows and Ubuntu. But JODConverter is supposed to work just fine on Mac and other Unix/Linux OS. Any confirmation would be welcome so we could build a list of official supported OS.

Usage

Using Gradle:

compile 'org.jodconverter:jodconverter-core:4.0.0-RELEASE"

Using Maven:

<dependency>
  <groupId>org.jodconverter</groupId>
  <artifactId>jodconverter-core</artifactId>
  <version>4.0.0-RELEASE</version>
</dependency>

Building the Project

Using LibreOffice libraries:

gradlew clean build -x test -x integTest

Using OpenOffice libraries:

gradlew clean build -x test -x integTest -PuseOpenOffice

Building Cli Executable

gradlew clean build -x test -x integTest distZip

Thanks To...

I cannot say exactly where you could find some similitude between my source code and the one of these forks/projects but here are my favorite/inspiration forks/projects:

  • XWiki fork: Nice choice if you can afford using the SIGAR tools (which I couldn't sadly).
  • Nuxeo fork: Nice choice if you don't want to use SIGAR and don't came across an unresponsive office process following a timeout exception that drives you crazy.
  • documents4j project: Nice choice if you want 100% perfect conversion using MS Office. But work only on Windows out of the box (Local implementation) and not totally free (since MS Office is not free).

A special thanks to:

@michelole who created a pull request in these two forks with a stress test that made my office process to crash every times! I don't know him but my first commit was when I was able to build my things with his stress test on!!

Original JODConverter

JODConverter (Java OpenDocument Converter) automates document conversions using LibreOffice or OpenOffice.org.

The previous home for this project is at Google Code, including some wiki pages.