web-dev-qa-db-fra.com

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

j'essaye de convertir du HTML en pdf. Après une recherche google, je trouve dompdf mais quand j'essaie de convertir, 

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 puis-je résoudre? Merci!

29
JackTurky

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

Remarque: Si vous utilisez composer pour installer dompdf (et php-font-lib ), vous devez indiquer define("DOMPDF_ENABLE_AUTOLOAD", false); dans dompdf_config.custom.inc.php. Cela permettra ensuite à composer de charger automatiquement php-font-lib qui est installé via le fichier composer.json de dompdf. Sinon, vous pouvez toujours obtenir une erreur. (Voir cette issue )

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

  • Récupérez la dernière version de dompdf auprès de Github et extrayez-la dans un répertoire.
  • Téléchargez le communiqué de la bibliothèque également à partir de Github
  • Créez le répertoire dompdf/lib/php-font-lib/classes /.
  • Dans le fichier Zip, prenez le contenu du dossier src/FontLib/et collez-le dans le répertoire que vous venez de créer.
47
Fabien Ménager

Pendant que mon édition est en cours de révision, je posterai les détails ici pour le dernier fichier dompdf 0.6.1

Si vous utilisez composer pour installer dompdf (et php-font-lib), vous devez insérer define("DOMPDF_ENABLE_AUTOLOAD", false); dans dompdf_config.custom.inc.php. Cela permettra ensuite à composer de charger automatiquement php-font-lib qui est installé via le fichier composer.json de dompdf. Sinon, vous pouvez toujours obtenir une erreur. (Voir ce numéro 636)

Si vous n'utilisez pas Composer et souhaitez utiliser la dernière version de dompdf, vous devrez installer manuellement php-font-lib: ( https://stackoverflow.com/a/24505929/3854385 )

  • Récupérez la dernière version de dompdf auprès de Github et extrayez-la dans un répertoire.
  • Téléchargez le communiqué de la bibliothèque également à partir de Github
  • Créez le répertoire dompdf/lib/php-font-lib/classes /.
  • Dans le fichier Zip, prenez le contenu du dossier src/FontLib/et collez-le dans le répertoire que vous venez de créer.
2
Loren

Une autre astuce, pour éviter le changement de fichiers téléchargés automatisés à partir de Composer, est de définir le DOMPDF_ENABLE_AUTOLOAD et de 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
Fred Wuerges