Projet

Général

Profil

Actions

Anomalie #14661

fermé

Conversion en PDF des fichiers HTML

Ajouté par Quentin RIBAC il y a environ 4 ans. Mis à jour il y a plus de 3 ans.

Statut:
R&D - Terminé
Priorité:
0-Bloquant
Assigné à:
Version cible:
Début:
25/08/2020
Echéance:

Description

La conversion en PDF des fichiers .html (pas .htm) ne fonctionnait pas.

L’erreur était :

"Conversion error : [ConvertPdf] Conversion failed ! QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-kronos' qt.qpa.screen: QXcbConnection: Could not connect to display :0 Could not connect to any X display."

Ceci était causé par la commande wkhtmltopdf appellée par le fichier src/app/convert/controllers/ConvertPdfController.php

Cette commande ne fonctionne plus pour Debian, elle a besoin d’un environnement graphique hors les serveurs n’en ont pas. Elle tentait de se connecter au display :0 à cause d’un "export DISPLAY=:0" dans la ligne exec()

Solution :

Le fichier php a été modifié de la sorte :

if (strtolower($extension) == 'html' || strtolower($extension) == 'htm') {
    $pdfFilepath = str_replace('.'.$extension, '', $aArgs['fullFilename']) . '.pdf';
    $command = "xvfb-run /usr/bin/wkhtmltopdf -B 10mm -L 10mm -R 10mm -T 10mm --load-error-handling ignore --load-media-error-handling ignore ".$aArgs['fullFilename']." ".$pdfFilepath;
    
    exec($command.' 2>&1', $output, $return);
}

Ici est ajoutée la condition strtolower($extension) == 'htm'
La variable $command a été modifiée (paquet xvfb installé)
Et dans exec on a enlevé export DISPLAY=:0

Actions

Formats disponibles : Atom PDF