mPDF est une bibliothèque PHP qui génère des fichiers PDF à partir de HTML codé en UTF-8.
Il est basé sur FPDF et HTML2FPDF (voir CRÉDITS), avec de nombreuses améliorations. mPDF a été écrit par Ian Back et est publié sous la licence GNU GPL v2.
Si vous consultez ce fichier sur la page d'accueil du référentiel mPDF GitHub ou sur Packagist, veuillez noter que la branche du référentiel par défaut est development
qui peut différer de la dernière version stable.
PHP >=5.6 <7.3.0
est pris en charge pour mPDF >= 7.0
PHP 7.3
est supporté depuis mPDF v7.1.7
PHP 7.4
est supporté depuis mPDF v8.0.4
PHP 8.0
est pris en charge depuis mPDF v8.0.10
PHP 8.1
est pris en charge à partir de mPDF v8.0.13
PHP 8.2
est pris en charge à partir de mPDF v8.1.3
PHP 8.3
est pris en charge à partir de mPDF v8.2.1
PHP 8.4
est pris en charge à partir de mPDF v8.2.5
Les extensions PHP mbstring
et gd
doivent être chargées.
Des extensions supplémentaires peuvent être nécessaires pour certaines fonctionnalités avancées telles que zlib
pour la compression de la sortie et les ressources intégrées telles que les polices, bcmath
pour générer des codes-barres ou xml
pour la conversion des jeux de caractères et la gestion SVG.
mPDF a quelques problèmes pour récupérer des ressources HTTP externes avec des serveurs à thread unique tels que php -S
. Un serveur approprié tel que nginx (php-fpm) ou Apache est recommandé.
Pensez à soutenir le développement de mPDF avec un don de n'importe quelle valeur. Le bouton de don se trouve sur la page principale de la documentation.
La méthode d'installation officielle se fait via composer et son package packagist mpdf/mpdf.
$ composer require mpdf/mpdf
L'utilisation la plus simple (depuis la version 7.0) de la bibliothèque serait la suivante :
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Bonjour tout le monde !</h1>');$mpdf->Output();
Cela affichera le PDF en ligne dans le navigateur en tant que type de contenu application/pdf
.
Toutes les directives de configuration peuvent être définies par le paramètre $config
du constructeur.
Il est recommandé de définir son propre répertoire temporaire via la variable de configuration tempDir
. Le répertoire doit disposer d'autorisations en écriture (le mode 775
est recommandé) pour les utilisateurs utilisant mPDF (généralement cli
, webserver
, fpm
).
Attention : mPDF nettoiera les anciens fichiers temporaires dans le répertoire temporaire. Choisissez un chemin dédié uniquement à mPDF.
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
Par défaut, le répertoire temporaire se trouvera dans le répertoire du fournisseur et disposera des autorisations d'écriture du script post_install
composer.
Pour plus d'informations sur le répertoire temporaire personnalisé, consultez la note sur le dossier des fichiers temporaires dans la section Installation et configuration du manuel.
Si vous rencontrez des problèmes, veuillez lire la section sur le dépannage dans le manuel.
mPDF dans son ensemble est un logiciel assez daté. De nos jours, de meilleures alternatives sont disponibles, même si elles ne sont pas écrites en PHP.
Utilisez mPDF si vous ne pouvez pas utiliser une approche non PHP pour générer des fichiers PDF ou si vous souhaitez tirer parti de certains des avantages de mPDF par rapport à l'approche par navigateur : gestion des couleurs, pré-impression, prise en charge des codes-barres, en-têtes et pieds de page, numérotation des pages, tables des matières, etc. . Mais attention, un modèle HTML/CSS adapté à mPDF peut être nécessaire.
Si vous recherchez une prise en charge CSS de pointe, reflétant les pages HTML existantes au format PDF, utilisez Chrome sans tête.
mPDF sera toujours mis à jour pour améliorer certaines fonctionnalités internes et pour prendre en charge les versions plus récentes de PHP, mais une prise en charge CSS meilleure et/ou plus récente ne sera probablement pas implémentée.
Le manuel en ligne est disponible sur https://mpdf.github.io/.
Pour des questions générales ou un dépannage, veuillez utiliser Discussions.
Vous pouvez également utiliser la balise mpdf sur Stack Overflow, car la base d'utilisateurs de StackOverflow est plus susceptible de vous répondre dans les meilleurs délais.
Avant de soumettre des problèmes et des demandes d'extraction, veuillez lire le fichier CONTRIBUTING.md.
Les tests unitaires pour mPDF sont effectués à l'aide de PHPUnit.
Pour commencer, exécutez composer install
à partir de la ligne de commande dans le répertoire racine de mPDF (vous devrez d'abord installer composer).
Pour exécuter des tests, exécutez composer test
à partir de la ligne de commande dans le répertoire racine de mPDF.
Toute aide à la rédaction de tests unitaires pour mPDF est grandement appréciée. Si vous souhaitez aider, veuillez noter que tout fichier PHP situé dans le répertoire /tests/
sera automatiquement chargé lors des tests unitaires.