web-dev-qa-db-ja.com

PHP-font-libは、composer経由でインストールするか、lib / php-font-libにコピーする必要があります

いくつかのhtmlをpdfに変換しようとしています。いくつかのGoogle検索の後、私は dompdf を見つけましたが、変換しようとすると取得します

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

これは私がやろうとしていることです:

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

どうすれば解決できますか?ありがとう!

29
JackTurky

Dompdfは最近 Github に移動し、Composerサポートを追加しました。このため、必要な外部ライブラリへの参照を削除しました php-font-lib

注:composer=を使用してdompdf(および php-font-lib )をインストールしている場合、dompdf_config.customにdefine("DOMPDF_ENABLE_AUTOLOAD", false);を追加する必要があります.inc.php。これにより、composer= autoload php-font-lib が許可されます。これは、dompdfのcomposer.jsonファイルを介してインストールされます。エラー(これを参照してください issue

composerを使用しておらず、このライブラリでdompdfの最新版を使用する場合:( source

  • Github から最新のdompdfリリースを入手し、ディレクトリに展開します。
  • ライブラリリリースも Github からダウンロードします
  • Dompdf/lib/php-font-lib/classes /ディレクトリを作成します。
  • Zipファイルで、src/FontLib /フォルダーの内容を取得し、新しく作成したディレクトリに貼り付けます。
47
Fabien Ménager

編集のレビュー中に、最新のdompdf 0.6.1の詳細をここに投稿します

composer=を使用してdompdf(およびphp-font-lib)をインストールする場合、define("DOMPDF_ENABLE_AUTOLOAD", false);をdompdf_config.custom.inc.phpに配置する必要があります。これにより、 composer dompdfのcomposer.jsonファイルを介してインストールされたphp-font-libを自動ロードします。それ以外の場合、エラーが発生する可能性があります(この問題#636を参照)

composerを使用せず、dompdfの最新版を使用する場合は、php-font-libを手動でインストールする必要があります:( https://stackoverflow.com/ a/24505929/3854385

  • Github から最新のdompdfリリースを入手し、ディレクトリに展開します。
  • ライブラリリリースも Github からダウンロードします
  • Dompdf/lib/php-font-lib/classes /ディレクトリを作成します。
  • Zipファイルで、src/FontLib /フォルダーの内容を取得し、新しく作成したディレクトリに貼り付けます。
2
Loren

Composerから自動ダウンロードされたファイルの変更を避けるためのもう1つのトリックは、DOMPDF_ENABLE_AUTOLOADおよび構成ファイルを再ロードした後:

// 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