質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1712閲覧

[kusanagi][mPDF]gif、pngが表示されない

Hankoya_Joub

総合スコア8

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/04/15 00:38

編集2018/04/15 00:47

数年間より VPS(CentOS6 Apache PHP5.3.3)にて通販サイト(Wordpress+自作スクリプト)を運営しており 現在kusanagi(CentOS7 Nginx PHP7.2.3)に移行しているところです

現在自作スクリプトのデバッグ中なのですが mPDF(Ver6)が思うように作動せず困っています

前提・実現したいこと

mPDFで変換したpdfファイルのうち gif、pngの透過ファイルがparseされず表示されません
移行前では表示されているので原因を突き止め表示させるようにしたいです

発生している問題・エラーメッセージ

mPDFのshowImageErrorsを有効にしてphpを実行すると htmlソースに以下のエラーが表示されます

<B>mPDF error: </B>IMAGE Error (https://www.hoge.com/xxx/yyy/zzz.gif): Error parsing temporary file image object created with GD library to parse GIF image

と出ます

該当のソースコード

php

1$html = $smarty->fetch("html/html.tpl"); 2 3require_once(LIBS_DIR.'mpdf60/mpdf.php'); 4//日本語フォントのIPAを使用することを宣言 5$mpdf = new mPDF('ja','A4','8',"ipa"); 6$mpdf->showImageErrors = true; 7//外部スタイルシートを使用する場合は下記の設定 8$stylesheet = file_get_contents("/home/kusanagi/www.hoge.com_html/DocumentRoot/css/style_hoge.css"); 9$mpdf->WriteHTML($stylesheet,1); 10$mpdf->WriteHTML($html); 11$pdf = ''; 12$pdf = $mpdf->Output('','S'); 13

ソースそのものが膨大の為一部だけですが…

smartyを用いてhtmlを文字列にし それをそのままhtmlファイルとしたものと mPDFでpdfに変換したものをphpMailer(JphpMailer)でメール送信しています

試したこと

■showImageErrorsを無効にして実行
→htmlとpdfがメール送信されます 受信した添付ファイルのうちhtmlにはgifやpngが表示されますが pdfには表示されません そのためsmartyからhtmlを作成するところまでは問題ないことになります

■旧環境(CentOS6 PHP5.3.3)で実行
→htmlとpdfがメール送信され いずれのファイルにもgifやpngが表示されます

■mPDF7の導入検討
→githubに最新版があるようですがphpファイルが見当たらずftpからのインストールができないようなので二の足を踏んでいます(linuxのyumコマンドが精いっぱいでインストール手順解説も少ないようなので…)

■フォルダ等のパーミッションのチェック
→一時ファイルに保存を試みているのでフォルダのパーミッション等も怪しいと思ったのですが そもそもどこに一時ファイルがあるのかもわかりませんでした…
mpdfフォルダ内のパーミッションは移行前 移行後と同じです

■phpinfoでgdの環境を比較

旧環境(php5.3.3)

gd GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.3.11 GIF Read Support enabled GIF Create Support enabled JPEG Support enabled libJPEG Version 6b PNG Support enabled libPNG Version 1.2.49 WBMP Support enabled XPM Support enabled XBM Support enabled Directive Local Value Master Value gd.jpeg_ignore_warning 0 0

新環境(php7.2.3)

gd GD Support enabled GD Version bundled (2.1.0 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.4.11 GIF Read Support enabled GIF Create Support enabled JPEG Support enabled libJPEG Version 6b PNG Support enabled libPNG Version 1.5.13 WBMP Support enabled XBM Support enabled Directive Local Value Master Value gd.jpeg_ignore_warning 1 1

どちらもpng gifともにenableとなっていまして それ以外の部分に問題があるかどうかは分かっていません

これまでいろいろ考えましたが分からず困っています
何か考えられることがありましたらご教示いただけますでしょうか
よろしくお願い申し上げます

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okrt

2018/04/21 15:54

動かない原因はわかりませんし私は詳しくなくて試してませんが、「Composerを使ってmPDF7をインストールする」「PHP7.2.3ではなくPHP5.xで動かすようにしてみる」「mPDF6.0.0を使っているのであればmPDF6.1.xにしてみる」の3とおり、試せませんか? 勿論、どれか1つで解決できれば全部試す必要はありません。 https://github.com/mpdf/mpdf https://mpdf.github.io/installation-setup/installation-v7-x.html https://github.com/mpdf/mpdf/issues/256 https://github.com/mpdf/mpdf/releases/tag/v6.1.0 https://github.com/mpdf/mpdf/releases/tag/v6.1.4
Hankoya_Joub

2018/04/22 09:07

okrt様 ありがとうございます mPDF6.1の存在は知らなかったので取り急ぎそちらを試してみます mPDF7.0もインストールだけはできたみたいですが composerもphp7も初めてなので日本語フォントの導入すら手間取ってる状態で助かりました 解決しだい改めて報告いたします
guest

回答1

0

自己解決

無事解決いたしました
okrt様のアドバイスでmPDF6.1の存在を知り、ダウンロード&サイトにアップロードして活用したところ、問題なくgif、pngともにpdfで表示されました。

mPDF6.1の存在を知らず、最新版のmPDF7.0に挑戦してたのですが、参考にした日本語フォントの導入方法の理解に時間がかかり断念しました(名前空間とか初めて知りましたよ… 自分のphp知識が浦島太郎状態で勉強不足を痛感しました…)
mPDF6.1は、mPDF6.0と同じ設定で難なくつかえたので助かりました。

知識不足の自分にご丁寧にアドバイスをしていただいたokrt様、ありがとうございました。
また答えにくい質問を投下し、お目汚し大変失礼いたしました。

投稿2018/04/22 10:59

Hankoya_Joub

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問