lunedì 7 novembre 2011

Java e Open Office - JodConverter

Alle volte nasce l'esigenza di convertire dei documenti in vari formati, file di tipo pdf/doc/rtf.

Per la generazione di PDF e RTF ho eseguito qualche prova con Apache FOP, strumento molto valido, ma ridotto solo su determinati formati di output.

Su suggerimento di Frank decido di utilizzare Open Office come servizio su un server Ubuntu. Aggancio una piccola servlet in java su un tomcat che esegue la generazione del documento a fronte di un file in ingresso (nel mio caso passo un .odt e genero un doc e un pdf) Per supportare il tutto uso la libreria JodConverter che attraverso la lib uno si connette ad una istanza di Open Office avviata come server in ascolto su una porta definita (di default la 8100) ed esegue la conversione.

Installazione su server ubuntu da console:


apt-get install jodconverter  
apt-get install tomcat6
apt-get install tomcat6-admin

creato il file /etc/init.d/openoffice.sh
chmod 0755 /etc/init.d/openoffice.sh
lo script [via] piccola modifica al file openoffice.sh per la cartella dei bin

...
OOo_HOME=/usr/lib/openoffice/program/
....

a questo punto dopo aver fatto partire il nostro script di openoffice server possiamo usarlo come servizio.

In allegato un semplicissima web-app in java (in NetBeans) per gestire la conversione di un file in input in qualsiasi formato supportato da OpenOffice. Come da Documentazione si consiglia di installare la app che gestisce la conversione sulla stessa macchina su cui viene eseguito l'OpenOffice Server.

risorse:

Open Office Service
JodConverter
da Php a Odt
JodPackage
Open Office Formati di Import/export