0

私はこの素晴らしいチュートリアルに従いました

じぶんのView/Layouts/pdf/default.ctp

App::import('Vendor', 'dompdf/dompdf.php');
$dompdf = new DOMPDF();
$dompdf->load_html(utf8_decode($content_for_layout), Configure::read('App.encoding'));
$dompdf->render();
echo $dompdf->output();

MyView/Bids/pfd/view.ctpは、テスト目的での通常のビューのコピーです。

PHP拡張機能を削除すると:

App::import('Vendor', 'dompdf/dompdf');

エラーが発生します:

An input file is required (i.e. input_file _GET variable).

require_once のいくつかの組み合わせを試してみましたが、うまくいきませんでした。(別の dompdf の新しいダウンロードで試しても: ( Githubから、dompdf-master と呼ばれる zip)

App::import('Vendor', 'dompdf-master/dompdf.php');

同じクラスが見つからないというエラーが発生しました。

このdompdf-masterでphp拡張機能を削除すると

App::import('Vendor', 'dompdf-master/dompdf');

エラーが発生しました:

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

私は、アクセスが許可され、ファイルが本来あるべき場所にあることを確信しています.php 5.3.

マークのチュートリアルによると、非常に単純なはずです。

手伝ってくれますか?

どうもありがとう !

4

1 に答える 1

1

dompdf をセットアップするためにロードする正しいファイルは、dompdf_config.inc.php です。dompdf は現在、CakePHP の File and Classname Conventionsに従っていません。dompdf を利用するプラグインを使用する代わりにクラスを直接ロードしているため、より明示的にする必要があります。CakePHP bookのApp::import() ドキュメントを見ると、次のようなものが機能する可能性があります。

App::import($type = 'Vendor', 'DOMPDF', true, array(), 'dompdf_config.inc.php', false);

もちろん、この回答のアドバイスに従う場合は、require を使用する必要があります。

require_once(APP . 'Vendor' . DS . 'dompdf' . DS . 'dompdf_config.inc.php');

最後に、utf8_decode()dompdf 0.6.0 を使用している限り、電話を切ることをお勧めします。dompdf 0.5.1 は UTF8 をうまく処理できませんでしたが、最新のリリースではUnicode How-toのアドバイスに従っている限り問題なく処理できます。

したがって、レイアウトは次のようになります。

require_once(APP . 'Vendor' . DS . 'dompdf' . DS . 'dompdf_config.inc.php');
$dompdf = new DOMPDF();
$dompdf->load_html($content_for_layout);
$dompdf->render();
echo $dompdf->output();
于 2013-01-12T20:09:14.243 に答える