Export PDF
Pour l'export ancgl des pièces transformées en PDF et la Facturation
1. ImageMagick
ImageMagick est installé , il faut attention d'avoir dans le /etc/ImageMagick-6/policy.xml (à partir ubuntu 16.04)
Installation d'imageMagick
apt install imagemagick
<policy domain="coder" rights="read|write" pattern="EPHEMERAL" /> <policy domain="coder" rights="read|write" pattern="URL" /> <policy domain="coder" rights="read|write" pattern="HTTPS" /> <policy domain="coder" rights="read|write" pattern="MVG" /> <policy domain="coder" rights="read|write" pattern="MSL" /> <policy domain="coder" rights="read|write" pattern="TEXT" /> <policy domain="coder" rights="read|write" pattern="SHOW" /> <policy domain="coder" rights="read|write" pattern="WIN" /> <policy domain="coder" rights="read|write" pattern="PLT" /> <policy domain="path" rights="read|write" pattern="@*" /> <policy domain="coder" rights="read|write" pattern="PS" /> <policy domain="coder" rights="read|write" pattern="EPS" /> <policy domain="coder" rights="read|write" pattern="PDF" /> <policy domain="coder" rights="read|write" pattern="XPS" />
2. PdfTK
(Ubuntu 18.04) Si vous utilisez pdftk , il faudra corriger la configuration, le snap empêche son exécution, Pour vérifier
type pdftk pdftk est haché (/snap/bin/pdftk)
L'erreur est
Sorry, home directories outside of /home are not currently supported. See https://forum.snapcraft.io/t/11209 for details.
Solutions :
- vous le recompilez, (source https://www.pdflabs.com/docs/install-pdftk-on-redhat-or-centos/)
- ou vous utilisez une autre distro plus permissive
- ou vous activez apparmor et www-data (propriétaire du service http) doit avoir son propre “home”, qui sera utilisé , dans ce cas, il faudra travailler dans /home/www-data/tmp et changer la variable $_ENV['TMP']
Compilation de pdftk
Ubuntu 18.04
sudo apt install default-jdk-headless ant libcommons-lang3-java libbcprov-java git clone https://gitlab.com/pdftk-java/pdftk.git cd pdftk mkdir lib ln -st lib /usr/share/java/{commons-lang3,bcprov}.jar ant jar cp build/jar/pdftk.jar /usr/local/bin cat <<EOF > /usr/local/bin/pdftk #!/bin/bash # Start PDFTK /usr/bin/java -cp /usr/share/java/commons-lang3.jar:/usr/share/java/bcprov.jar:/usr/local/lib/pdftk.jar com.gitlab.pdftk_java.pdftk $@ EOF chmod a+x /usr/local/bin/pdftk
Et config.inc.php
$pdftk="/usr/local/bin/pdftk";
3. Apache
Avec Systemd, apache utilise un répertoire temporaire privé et donc l'appel pour convertir les fichiers en PDF et les estampiller ne fonctionne plus.
Pour changer cela , il faut avoir dans /etc/systemd/system/multi-user.target.wants/apache2.service
PrivateTmp=false
4. Conversion de document
On utilise libreOffice pour convertir des documents en PDF avec Unoconv (libreOffice)
Dans le fichier config.inc.php, on doit avoir
define ('GENERATE_PDF','YES'); define ('OFFICE','unoconv ');
Plus d'information https://docs.moodle.org/38/en/Universal_Office_Converter_(unoconv)