Docs en PDF à partir des modèles ODT (Centos 6.7)

Bonjour,

Voici la procédure que j’ai utilisée pour utiliser les modèles ODT qui génèrent des PDF.
J’ai utilisé cette procédure avec Dolibarr 3.9.0, sur Linux (Centos 6.7), sur un serveur dédié.

Les pré-requis :
- Il faut pouvoir faire tourner ou installer Java (JRE)
- il faut pouvoir installer des packages Linux (Libreoffice)
- le tout va prendre pas mal de place sur le disque : prévoir plusieurs GB sur le disque, et environ 1GB de RAM disponible. Il faut donc une config assez solide
- Il y a une correction d’un script Dolibarr à faire

Il faudra installer :
- Java (un JRE)
- Libreoffice pour linux
- JOD converter (un fichier .jar, un exécutable JAVA)

Java
Vérifier la version de Java sur le serveur

Si pas installé, installer le JRE (pas JDK…) :

LibreOffice
Installer libre-office

Nettoyage :

JOD converter
Télécharger la version 2.2.2 (ne fonctionne pas avec des versions plus récentes a priori, mais j’ai pas testé) :
https://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/

L’uploader dans un dossier accessible par l’utilisateur web (NB : c’est un exécutable Java, on le met où on veut !)
Ex : /home/neo7/XXX…/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar

BUG : Démarrage manuel du processus libreoffice
Attention ! Pour une raison inconnue, chez moi le processus plante (il part en vrille de CPU) s’il est lancé directement par le script SSH odt2pdf.sh

Palliatif :

En paramétrant l’utilisateur web, Lancer le processus à la main :
/opt/libreoffice5.1/program/soffice --invisible --accept=« socket,host=127.0.0.1,port=8100;urp; » --nofirststartwizard --headless &
Attention ! Il faudra le lancer à chaque arrêt du serveur, ou programmer un lancement automatique

Correction dans le script de Dolibarr
Dans le fichier scripts/odt2pdf.sh, corriger une erreur pour éviter le lancement d’un autre processus :

Paramétrage de Dolibarr
Dans Accueil > Configuration > Divers, ajouter les variables suivantes :

Facultatif, supprimer le fichier ODT après la génération du PDF :

Après bien entendu, il faut créer ses modèles ODT et indiquer à Dolibarr d’utiliser ces modèles pour chaque module concerné (Accueil > Configuration > Modules).

1 J'aime

Bonjour,

J’ai utilisé votre procédure avec Dolibarr 3.9.1 sur Centos 6.8 avec cPanel / WHM et l’installation s’est correctement déroulée.

Par contre quelques corrections :
- Dans Accueil > Configuration > Divers :
MAIN_DOL_SCRIPTS_ROOT ==> /home/nom_d’utilisateur/dossier_dolibarr_contenant_le_dossier_scripts/
(il ne faut pas indiquer le dossier « scripts »)

Une fois toutes ces opérations effectuées :
Il faut executer cette commande sur le fichier odt2pdf.sh : chmod +x odt2pdf.sh

Et enfin supprimer de WHM > php.ini > Mode avancé > disable_functions > exec
Exec est nécessaire pour executer odt2pdf.sh

Et voilà :slight_smile:

C’est parce que chez moi le dossier qui contient les scripts, s’appelle scripts :happy:

Bonjour,

Après avoir appliqué ces étapes, lorsque je souhaite envoyer mes factures « en masse » via la page /compta/facture/list.php je reçois ce message :
Échec de lecture du fichier ’ /* * /documents/facture/FA1909-0244/FA1909-0244.pdf ’
Échec de lecture du fichier ’ / * */documents/facture/FA1909-0241/FA1909-0241.pdf ’

Résultat de l’envoi d’EMail en masse:
Nombre sélectionné: 2
Nombre ignoré: 2
Nombre envoyé: 0

Cette erreur apparait uniquement lorsqu’il s’agit de factures utilisant des modèles de factures ODT converties en PDF. Lorsqu’elles sont générées avec le modèle CRABE, je n’ai pas le problème.

J’ai également remarqué qu’il m’est impossible de changer les permissions des factures générées depuis un modèle ODT, voici l’erreur obtenue « Operation not permitted ».

Avez-vous une idée pour résoudre ce BUG ?

Merci :slight_smile:

Bonjour,

Quels paquets doivent etre installés sur CentOS 7 ?

J’ai testé sous ubuntu, ca fonctionne.

(apt-get install libreoffice-common jodconverter)

Mais sous CentOS, yum ne trouve pas les paquets.

Quelqu’un a t il procédé à l’installation sous CentOS 7 ?

Merci d’avance

Cordialement, FA

Personne à l’info ?

Bonjour
S’il n’y a pas de paquet, c’est qu’il faut le compiler.

Fred

J’ai trouvé …

install openoffice en RPM, java etc …

téléchargement de jodconverter (2.2.2) (la 3.0 ne fonctionne pas et j’ai pas essayé d’aller plus loin …)

dans divers, MAIN_ODT_AS_PDF => path de jodconveter => /xx/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar

Dans le script odt2pdf, au lieu de soffice … = : /opt/openoffice4/program/soffice -headless -accept=« socket,host=127.0.0.1,port=8100;urp; » -nofirststartwizard &

Voila !

1 J'aime

Bonjour à tous,

J’ai effectué avec succès l’installation des prérequis de ODT2PDF pour centOS en suivant ce tuto très bien fait : Docs en PDF à partir des modèles ODT (Centos 6.7)

Par contre, maintenant que tout est installé, lorsque je génere mon ODT il n’y a toujours pas de PDF.

J’ai testé jodconverter via le shell et tout est fonctionnel. Ai-je oublié quelque chose ? Quelles sont les variables cachées à inserer des « configuration > divers » ?

Merci d’avance à tous

Bonjour,

Config : Dolibarr 6.0.1 sous ubuntu 16.04 lts

La gestion des Model ODT qui fonctionnent parfaitement.
Je tente d’activer la conversion automatique en PDF.
J’ai suivi le tuto : Docs en PDF à partir des modèles ODT (Centos 6.7)
J’ai vérifié les droits et paquet installé et tout semble ok.

Mais j’ai toujours le message : Error generating document for CommonObject. Error: ODT to PDF convert fail :

J’ai activé la LOG Dolibarr , et voici la ligne en erreur:
Error url=/ERP/compta/facture/card.php?facid=16, query_string=facid=16, sql=SELECT rowid,name,label,type,size,elementtype,fieldunique,fieldrequired,param,pos,alwayseditable,perms,list,ishidden,fielddefault,fieldcomputed FROM llx_extrafields WHERE entity IN (0,1) AND elementtype = ‹ facturedet › ORDER BY pos, db_error=, msg=Error generating document for CommonObject. Error: ODT to PDF convert fail :

Mais si j’exécute le query dans mysql, il s’exécute sans souci, et retourne zéro ligne.

Le tuto datant de la V5 , quelqu’un a t il une piste pour identifier la source du problème ?

J’ai trouvé un équivalent dans Git : https://github.com/Dolibarr/dolibarr/issues/7452
D’autres personnes dans ce cas ?

un petit up,

Su les forums on trouve des réponses différentes pour chaque version, mais aucune pour la V6.

Pas d’idée, de piste ?

Dans ma configuration, j’ai réglé le problème en modifiant le script odt2pdf.sh pour appeler directement LibreOffice 5 qui fait la conversion:
if [ « x$2 » == « xjodconverter » ]
then
#/home/wsrv/pcec-tools/jodconverter-2.2.2/lib/jodconverter-2.2.2.jar « $1.odt » « $1.pdf »
/usr/bin/soffice --invisible --quickstart --nofirststartwizard --headless --convert-to pdf « $1.odt » « $1.pdf »
# – invisible ne referme pas soffice automatiquement
sleep 2
else
if [ « x$2 » == « xpyodconverter » ]

et en ajoutant en dessous
fi

Pour fermer LibreOffice

pkill soffice

retcode=$?
if [ $retcode -ne 0 ]

Pour refermer LO car l’appel en --invisible bloque sa fermeture.

Help au modérateur, ne sais pas comment fermer le sujet

Bonjour :happy:
Il suffit d’éditer le sujet en ajoutant [Résolu] avec l’icone verte

1 J'aime

Hello,

J’ai suivi tes conseils, je suis sur la version v6.0.2, seulement pour moi j’ai toujours le message d’erreur.
Lorsque je tape la commande en solo elle fonctionne pourtant.

Est ce qu’en 6.0.2 tu as du faire d’autres modifications ?

EDIT :

Fausse alerte ça marche très bien, il suffit de bien configurer le truc.
Pour ma part j’ai du faire ça : je suis sous Debian
apt-get install libreoffice-common jodconverter

Placer le dossier Scripts de Dolibarr dans un répertoire facile d’accès : /scritps
Mettre l’utilisateur Web comme propriétaire des fichiers : chown -R www-data:www-data /scripts
Mettre le script voulu en executable : chmod u+x /scripts/odt2pdt/odt2pdf.sh

Configurer Dolibarr avec les Divers comme ceci :
MAIN_DOL_SCRIPTS_ROOT => /
MAIN_ODT_AS_PDF => jodconverter
MAIN_ODT_AS_PDF_DEL_SOURCE => 1 (mettez 0 lors des tests, quand ca marche je passe sur 1 car je ne veux pas garder les fichiers odt)

Je n’ai pas touché au fichier script au final.

Je teste ça lundi, mais si ça marche comme ça a l’air, vous aurez ma reconnaissance éternelle !

@nemkiller007

je viens d 'installer la V 6.0.2, et çà fonctionne toujours parfaitement.

Dans l’idéal faire une copie du fichier odt2pdf.sh si il a déjà été modifié en 6.0.1.

@baloonc ,
je rencontre un problème sur les modèles ODT pour la feuille de commande et de facture, j’ai fais un topic à cette adresse mais sans réponse, aurais-tu une solution ?
www.dolibarr.fr/forum/t/modele-odt-commande-manque-des-tags/26056/1

Merci

Merci à tous pour vos contributions, malheureusement pour moi c’est pareil, je reste bloqué avec ce bug de conversion en PDF. j’ai 2 versions qui tournent en parallèle sur le même serveur : une prod en 5.0.7 et une test en 6.0.3.

Sur la 5.0.7 je n’ai ce bug que sur les devis, tout le reste marche très bien et sur la 6.0.3 je suis incapable de générer le moindre PDF à partir de mes ODT (qui sont les mêmes sur les 2 versions.)

Je ne comprends absolument pas d’où vient le souci…

@skitprat

comme çà je ne sais pas, il faudrait regarder les logs dans le système.

Ma solution se base sur l’utilisation de libreOffice, donc si tu appel dans le script odt2pdf, libreOffice en direct tu ne dois pas rencontrer de soucis.
si le process reste bloqué, regarde ce qui coince au niveau des taches actives.