Bonjour à tous,
Bon, comme c’est ma 1ère « publication » sur ce forum, j’espère que je ne me trompe pas de catégorie…
Nous utilisons Dolibarr maintenant depuis 2009 dans notre entreprise.
J’avais mis en place la génération classique des PDF. Puis dans la version 3.4 j’ai décidé de faire nos propres « templates » ODT pour y joindre nos CGV (et autres, pour faire des jolies propositions commerciales de 20 pages ).
J’avais donc activé le module « odt2pdf » avec la génération d’un template ODT (fait sous LibreOffice)…
Le souci est que le PDF ne se générait jamais (le ODT oui) et j’avais des jolies erreurs JAVA (ce que j’aime JAVA… non en fait !) qui comme d’habitude ne sont compréhensibles que… pour JAVA ! Un peu de recherche (grâce au syslog Dolibarr) et hop je me rend compte que c’est jodconverter qui part en sucette… Pour info, mon Dolibarr est installé sur une Ubuntu 12.04 (LTS).
Que cela tienne ! Une petite recherche Google m’indique qu’un nouveau convertisseur ODT/DOC > PDF fonctionne plutôt pas mal : unoconv (http://dag.wiee.rs/home-made/unoconv/). 2/3 tests rapides et hop ça marche du feu de dieu !!!
Donc, je vous livre mes modifications (peut-être que cela pourra aider certain, voir à l’intégrer dans la nouvelle version).
1ère étape - j’installe unoconv (debian/ubuntu étant ma distri préférée, un simple :
aptitude install unoconv
et le tour est joué.
2ème étape - je modifie la « classe » PHP de odt :
#vi /usr/share/dolibarr/htdocs/includes/odtphp/odf.php
et je modifie ce bloc :
$name=str_replace(’.odt’, ‹ ›, $name);
if (!empty($conf->global->MAIN_DOL_SCRIPTS_ROOT)) {
$command = $conf->global->MAIN_DOL_SCRIPTS_ROOT.’/scripts/odt2pdf/odt2pdf.sh '.$name;
}else {
$command = '…/…/scripts/odt2pdf/odt2pdf.sh '.$name;
}
par ce mon nouveau bloc :
$name=str_replace(’.odt’, ‹ ›, $name);
$dirname=dirname($name);
if (!empty($conf-\>global-\>MAIN_DOL_SCRIPTS_ROOT)) {
$command = $conf-\>global-\>MAIN_DOL_SCRIPTS_ROOT.'/scripts/odt2pdf/odt2pdf.sh '.$name.' '.$dirname;
}else {
$command = '../../scripts/odt2pdf/odt2pdf.sh '.$name.' '.$dirname;
}
Le but : envoyer au script odt2pdf.sh le répertoire de la propale (je ne traite que la proposition ici).
3ème étape - je modifie le script de génération du pdf :
#vi /usr/share/dolibarr/scripts/odt2pdf/odt2pdf.sh
Je remplace cette ligne :
jodconverter « $1.odt » « $1.pdf »
Par cette ligne :
unoconv --format pdf --output « $2 » « $1.odt »
Et là tout fonctionne ! Miracle ! Et avec une meilleure qualité de conversion que jodconverter (qui n’est plus maintenu malheureusement…).
Enfin, je me suis fait un petit script de démarrage pour que « libreoffice » démarre automatiquement et donc éviter de redémarrer le service « soffice » dans le script odt2pdf.sh.
Voilà, si cela a pu aider des personnes tant mieux ! Sinon et bien tant pis moi ça m’a aider
Mikael