6

HTMLをPDFに変換するためにMPDFライブラリを使用しています。

これが私のコードです。

$HTML = '{HTML CONTENT GOES HERE}'; //HTML STRING

$MPDF->WriteHTML($html); // Converting

$MPDF->Output('preview.pdf','F'); //Saving to a File

動作しますが、エラーログにエラーが多すぎます。

ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: BODY C:\wamp\www\crm\application\libraries\mpdf.php 14242
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: BODY>>ID>> C:\wamp\www\crm\application\libraries\mpdf.php 14288
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined offset: -1 C:\wamp\www\crm\application\libraries\mpdf.php 14421
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined variable: cstr C:\wamp\www\crm\application\libraries\mpdf.php 31951
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: DIV C:\wamp\www\crm\application\libraries\mpdf.php 14242
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: ID>>PRINT_WRAPPER C:\wamp\www\crm\application\libraries\mpdf.php 14280
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: DIV>>CLASS>>PRINTWRAPPER C:\wamp\www\crm\application\libraries\mpdf.php 14284
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: DIV>>ID>>PRINT_WRAPPER C:\wamp\www\crm\application\libraries\mpdf.php 14288
ERROR - 2012-11-10 04:45:50 --> Severity: Notice  --> Undefined index: DIV C:\wamp\www\crm\application\libraries\mpdf.php 14242

誰かがこのライブラリでいくつかの作業経験がありますか?(一部のエラーしか出力されない場合は、ライブラリを変更することで修正できますが、ここではエラーが多すぎます)、何かが足りないと思います。

私を助けてください。

ありがとう。

4

7 に答える 7

19

mpdf.php の先頭に以下を追加します

error_reporting(0); 

これで問題は解決します。

于 2013-03-29T03:45:04.940 に答える
8

HTML は整形式ですか? また、すべてのタグと属性はすべて小文字またはすべて大文字ですか? MPDF ドキュメントによる HTML の要件は次のとおりです。

HTML 属性の例: <div align="center">

mPDF は、<div align="center"> または <div align='center'> などの一重引用符または二重引用符で囲まれた属性値をサポートします

最小化された属性はサポートされていません。例: <input type="checkbox" disabled />

mPDF に最適に準拠するには、XHTML 仕様をお勧めします。

また、https://mpdf.github.io/html-support/html-tags.htmlごと

サポートされていないタグを使用しているようです。たとえば、BODYはそうではありません。

私は自分の HTML を文書化されたリストにあるものに制限し、適切に形成されたガイドラインに従って、エラーがそのように修正されるかどうかを確認しようとします。これらは単なる「通知」であるため深刻なものではありませんが、将来のバージョンがそれほど寛容でない場合に備えて修正することをお勧めします。

于 2012-11-10T06:59:00.320 に答える
1

私はまったく同じ問題を抱えていました。HTML コードは適切に構成されていましたが、役に立ちませんでした。
クラスmpdf.phpを修正しました。報告された各行にインデックスが設定されているかどうかのチェックを追加しました。
このような

if(isset($p[$tag])){
      $this->_mergeCSS($p[$tag], $t);
    }
于 2015-11-20T15:29:36.110 に答える
1

まだ本当の解決策は見つかりませんでした(誰かいますか?)。回避策として、mpdf.php を 20 か所近く直接パッチしました。

前:

$variable[possible_wrong_index];

後:

(isset($variable[possible_wrong_index]))?$variable[possible_wrong_index]:false;

よりトリッキーな if ステートメントがいくつかあります。しかし、今ではログにエラーはなく、生成された pdf はこれによる影響を受けていないようです。

(これがハックな回避策であることは承知していますが、今のところは機能します-本当の楽しみはmpdfの更新から始まります:)

于 2013-02-08T14:19:40.137 に答える