Projet

Général

Profil

Actions

Fonctionnalité #13897

fermé

[Conversion] Pouvoir choisir entre ImageMagick et GraphicsMagick

Ajouté par Laurent GIOVANNONI il y a plus de 4 ans. Mis à jour il y a plus de 3 ans.

Statut:
R&D - Terminé
Priorité:
0-Bloquant
Assigné à:
Version cible:
Début:
12/05/2020
Echéance:
Projet Parapheur:
20.03.2

Description

Dans le cadre du SaaS courrier, j'ai pu constater qu'il y a une incompatibilité de Maarch Parapheur avec ImageMagick dans un environnement centos 8.

Pour rappel, centos 8 est la distribution choisit par Xelians pour le SaaS car elle dispose d'une environnement plus professionnel que Debian.

Le problème entre ImageMagick (version 6 et version 7) avec Maarch Parapheur sur centos 8 est la commande suivante :

convert -density 500x500 -quality 100 -background white -alpha remove '/opt/maarch/data/docservers/demo/MaarchParapheur/documents/2020/05/0001/0012_1897789596.pdf'[0] '/tmp/13626008450012_1897789596.png'

Au delà du fait que la conversion échoue, l'argument -density fait planter ImageMagick via un coredump et fait monter l'activité du processus jusqu'à ralentir fortement l'environnement.

Il est à noter qu'à contrario, la création d'imagette dans Maarch Courrier via l'argument -thumbnails fonctionne correctement.

Pour résoudre ce bug, il faut utiliser le fork d'ImageMagick, à savoir GraphicsMagick.

Son fonctionnement est légèrement différent, en comparaison, voici la commande à exécuter :

gm convert -density 500x500 -quality 100 -background white +matte '/opt/maarch/data/docservers/demo/MaarchParapheur/documents/2020/05/0001/0012_1897789596.pdf'[0] '/tmp/13626008450012_1897789596.png'

L'application de la transparance y est notamment différente.

Il faudrait pouvoir choisir dans MaarchParapheur via un param technique, xml ? tables parameters ? le programme à exécuter, ex :

src/app/convert/controllers/ConvertThumbnailController.php

if ($ImageMagick) {
    $command = "convert -density 500x500 -quality 100 -background white -alpha remove "
             . escapeshellarg($pathToDocument) . "[{$convertPage}] " . escapeshellarg("{$tmpPath}{$fileNameOnTmp}.png");
} elseif{$GraphicsMagick) {
    $command = "gm convert -density 500x500 -quality 100 -background white +matte "
             . escapeshellarg($pathToDocument) . "[{$convertPage}] " . escapeshellarg("{$tmpPath}{$fileNameOnTmp}.png");
}

Ce patch doit être appliqué à partir de la 20.03 pour que le SaaS Courrier puisse déployer du Maarch Parapheur.
Il faut également mentionner dans les prérequis et l'installation la nécessité de Graphics Magick sur Centos.

Autre point à noter, sur centos 8, il faut recommander php 7.3 uniquement car les images PNG sont mal gérées en 7.2 et en php 7.4 la librairie payante de fpdf n'est pas encore supportée.


Demandes liées 2 (0 ouverte2 fermées)

Lié à Backlog Parapheur - Anomalie #14056: [CENTOS] Erreur de conversion ImageMagickR&D - TerminéEDI PO28/05/2020Actions
Lié à Backlog Courrier - Anomalie #16443: [SaaS Courrier RedHat] version de glibc2.29 requise par les outils de conversion non disponibleClôturéLudovic ARAUJO01/03/2021Actions
Actions

Formats disponibles : Atom PDF