PHP-font-lib doit être installé via composer ou copié sur lib / php-font-lib

j'essaie de convertir un peu de html en pdf. Après une recherche google je trouve dompdf mais quand j'essaie de convertir je récupère

PHP-font-lib must either be installed via composer or copied to lib/php-font-lib

C'est ce que j'essaie de faire:

require 'pdf/dompdf.php';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");

comment résoudre? Merci!

29
demandé sur Fabien Ménager 2012-11-17 19:17:21

3 réponses

Dompdf a récemment déménagé à Github , et nous avons également ajouté Composer support. Pour cela, nous avons supprimé la référence à la bibliothèque externe requise php-font-lib .

Note: Si vous utilisez composer pour installer dompdf (et php-font-lib ), vous devez mettre define("DOMPDF_ENABLE_AUTOLOAD", false); dans dompdf_config.personnaliser.Inc.php. Cela permettra ensuite à composer d'autoload php-font-lib qui est installé par le compositeur de dompdf.fichier json. Sinon, vous pouvez toujours obtenir une erreur. (Voir cette problème )

si vous n'utilisez pas composer et que vous voulez utiliser la dernière édition de dompdf avec cette bibliothèque: ( source )

  • récupérez la dernière version dompdf de GitHub et extrayez-la dans un répertoire.
  • télécharger la version de la bibliothèque aussi de Github
  • crée le répertoire dompdf/lib/php-font-lib/ classes/.
  • dans le fichier zip, prenez le contenu du répertoire src/FontLib/ et collez-le dans votre répertoire nouvellement créé.
47
répondu Fabien Ménager 2017-05-23 10:31:20

pendant que mon édition est en cours de révision, je vais poster les détails ici pour le dernier dompdf 0.6.1

si vous utilisez composer pour installer dompdf (et php-font-lib), vous devez mettre define("DOMPDF_ENABLE_AUTOLOAD", false); dans dompdf_config.personnaliser.Inc.php. Cela permettra ensuite à composer d'autoload php-font-lib qui est installé par le compositeur de dompdf.fichier json. Sinon, vous pouvez toujours obtenir une erreur. (Voir ce numéro #636)

si vous n'utilisez pas composer and want pour utiliser la dernière édition de dompdf, vous devrez installer manuellement php-font-lib: ( https://stackoverflow.com/a/24505929/3854385 )

  • récupérez la dernière version dompdf de GitHub et extrayez-la dans un répertoire.
  • télécharger la version de la bibliothèque aussi de Github
  • crée le répertoire dompdf/lib/php-font-lib/ classes/.
  • dans le fichier zip, prenez le contenu du répertoire src/FontLib/ et collez-le dans votre répertoire nouvellement créé.
2
répondu Loren 2017-05-23 11:47:02

un autre truc, pour éviter le changement des fichiers téléchargés automatiques de Composer, est de définir le DOMPDF_ENABLE_AUTOLOAD et après recharger le fichier de configuration:

// Disable DOMPDF's internal autoloader if you are using Composer
define('DOMPDF_ENABLE_AUTOLOAD', false);
require_once CONFIG_DIR . 'vendor/dompdf/dompdf/dompdf_config.inc.php';

$dompdf = new \DOMPDF;
0
répondu Fred Wuerges 2015-04-16 18:22:23