MPDF(バージョン5.7.1)に小さな問題があります。
このコードは、画像ファイルでPDFを生成する必要があります。
$mpdf = new mPDF();
$html = '<img src="https://www.google.pl/images/srpr/logo11w.png"/>';
$mpdf->WriteHTML($html);
$mpdf->debug = true;
$output = $mpdf->Output();
exit();
画像はありませんが、[x]
代わりに。
この方法で行う必要があるという結論に達するまでグーグルで調べましたが、ファイルへのリアルパスも試しました。まだ何もありません。
試したことがないのは<img src="logo11w.png">
そして、どのフォルダにファイルをコピーすべきかわからないため、画像をフォルダにコピーしますlogo11w.png
。
助言がありますか?
MPDFでPDFを生成するときにPNG画像が[X]として表示されるという同じ問題がありました。
追加しました:_$mpdf->showImageErrors = true;
_
後:$mpdf = new Mpdf();
エラーメッセージが表示されました:
PNG画像(アルファチャネル)に必要なGdライブラリ#
したがって、_apt-get install php5-Gd
_を実行した後、PNGでPDFを生成すると、チャームのように機能しました!
画像を含めることは、mPDFではややトリッキーです。私にもいくつかの問題がありました。より多くの種類の問題が見つかりました。
最初に、デバッグ変数をオンにする必要があります。
$mpdf = new mPDF();
$mpdf->showImageErrors = true;
通常、PHP用のGdモジュールはインストールされていません。 Linuxマシンで、次を実行します。
Sudo apt-get install php5-Gd
Sudo service Apache2 restart
Windowsサーバーでは、php_Gd2.dllは標準のPHPインストールに含まれていますが、デフォルトでは有効になっていません。有効にするには、extension = php_Gd2.dllphp.iniファイルの行(その行の先頭から#を削除)とPHP拡張機能を再起動します。[ 1 ]
このエラーが発生した場合、おそらく[x]画像が表示されます。
mPDFエラー:IMAGEエラー( http://www.domain.com/directory/image.jpg ):画像ファイルが見つかりませんでした
画像が存在し、画像にアクセスできる場合は、URLを確認してください。はいの場合は、絶対URLを相対URLに変更してみてください。両方のバージョンを試すことができます:
<img src="directory/image.jpg">
<img src="./directory/image.jpg">
実際、PNG形式にも問題がありました。 PNG画像をJPGに変換すると正常に機能しました。
MPDFテンプレートでのリンクは、フレームワーク/システム全体と同じである必要があります。
スクリプトを移行した後、同じ問題が発生しました。
問題は、mpdfフォルダー内のtmp
ディレクトリーが書き込み可能でないことでした。私はそれが誰かを助けることを願っています。
OK。質問に関する最後のコメントの後(14:30)。ここで、IS mPDF 5.4で動作するまったく同じコード。そして、test.pdfとしてスクリプトディレクトリに出力を保存します。ファイアウォールの問題?
編集済み
次のディレクトリ/ファイルがあります。
そのため、これらの画像ファイルは、スクリプトディレクトリから比較的似ているように見えます。
require_once __DIR__ . DIRECTORY_SEPARATOR . 'MPDF/mpdf.php';
try {
$mpdf = new mPDF();
$mpdf->WriteHTML('<img src="images/wallpaper01.jpg" alt="" width="480">');
$mpdf->WriteHTML('<img src="images/wallpaper02.jpg" alt="" width="480">');
$mpdf->Output(__DIR__ . DIRECTORY_SEPARATOR . 'test.pdf', 'F');
} catch(Exception $e) {
echo $e;
}
私にとっては、今のところ機能しています。これが誰かを助けることを願っています。
解決策:URLではなく画像の相対パスを試してください。画像は同じサーバーでホストする必要があります。
例:/var/www/mysite/image/xyz.jpg
これを試すことができます:
$mpdf->imageVars['myvariable'] = file_get_contents('alpha.png');
または
$html = '<img src="var:myvariable"/>';
$mpdf->WriteHTML($html);
その後、次のことを行う必要があります。
$mpdf->Image('var:myvariable', 0, 0);
詳細については、ドキュメントをご覧ください: mPDF Load Image
私のプロジェクトで私は問題を解決し、解決策は次のとおりです。
サーバーの例にsrc絶対パスを設定します。src="/var/www/myproject/images/logo.png"
イメージが同じサーバー上にある場合。画像が外部サーバーからのものである場合、srcは絶対パスの例です:src="https://www.google.bg/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
。これが誰かを助けることを願っています。