# Manuel de NOALYSS

## Chapitre 49. Export PDF

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

### 49.1. 1. ImageMagick

ImageMagick est installé , il faut faire attention d’avoir dans le fichier /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" />

### 49.2. 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 :

1. vous le recompilez, (source https://www.pdflabs.com/docs/install-pdftk-on-redhat-or-centos/)

2. ou vous utilisez une autre distro plus permissive

3. 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']

#### 49.2.1. 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";

### 49.3. 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

### 49.4. 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 ');

Pour utiliser unoconv démarrer un server libreoffice, il faut lancer le service. Le plus simple est d’utiliser l’utilitaire @screen@ ou @tmux@ et de laisser unoconv, et de le laisser tourner.

Exemple

    unoconv -l -v -s localhost

Plus d’information https://docs.moodle.org/38/en/Universal_Office_Converter_(unoconv)

1. Voir annexe : comment contribuer ou le wiki
1. souvent latin-1 pour Excel et unicode pour libreOffice
1. vous pouvez aussi utiliser directement les postes comptables, certains postes sont si rarement utilisés qu’on peut décider de ne pas créer de fiche comme par exemple le capital souscrit
1. Voir annexe : comment contribuer ou le wiki
1. A la condition que l’administrateur lui a envoyé le QRCode à scanner
1. C’est l’accès direct AD
2. c’est le nombre avant la catégorie
1. https://wiki.noalyss.eu
1. Vérifie que vous pouvez encore déduire une facture passée pour la TVA et l’impôt
1. https://wiki.noalyss.eu
2. le 31 décembre mais cela pourrait être une autre date
3. Pour imprimer les bilans il y a aussi l’extension "Bilan Interne" ou un rapport avancé
1. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
2. https://wiki.noalyss.eu
3. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
1. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
2. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
3. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
1. Il existe aussi les actifs inversés, charges inversées…​
2. pour extourner il faut entrer une date valide. Une date valide est une date qui est dans une période non fermée et dans une période du dossier
3. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
4. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
1. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
1. Il faut d’abord créer la nouvelle année.
1. extrait de compte
2. extrait de compte
1. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
1. Plugins standards de NOALYSS, https://gitlab.com/noalyss/noalyss-plugins
1. ces fichiers ont l’extension ods ou odt
1. PHP4 existait déjà, cependant on est toujours en retard sur les versions PHP afin d’être plus compatible, la partie orienté objet était très basique
2. Pour l’ajax, il existe plusieurs fichiers, ajax_misc.php est en général utilisé,ajax.php est utilisé pour les plugins.
3. NOALYSS n’est pas à 100% documenté, on l’améliore à chaque version
4. voir noalyss/html/ajax_misc.php.
5. paramètrer avec la variable $_ENV['TMP']
6. sous linux il s’agit de /tmp
7. static function test_me()