tutoriaux:export_pdf

Export PDF

Pour l'export ancgl des pièces transformées en PDF et la Facturation

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" />

(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 :

  1. ou vous utilisez une autre distro plus permissive
  2. 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']

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";

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

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)

  • tutoriaux/export_pdf.txt
  • Dernière modification : 2024/03/12 16:15
  • de dany