MPDF未定义索引错误

问题描述 投票:2回答:6

我正在使用MPDF库将HTML转换为PDF。

这是我的代码。

$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

有人对这个图书馆有一些工作经验吗? (如果它只输出一些错误,那么我们可以通过在库上进行更改来修复它,但是这里给出了太多错误),我认为我缺少了一些东西。

请帮助我。

谢谢。

php codeigniter mpdf
6个回答
6
投票

HTML格式是否正确,所有的标记和属性是全部小写还是全部大写?这是根据MPDF文档对HTML的要求:

HTML属性示例:

mPDF支持单引号或双引号的属性值,例如

不支持最小化属性,例如

为了更好地与mPDF兼容,建议使用XHTML规范。

也按https://mpdf.github.io/html-support/html-tags.html

您似乎正在使用不受支持的标签。例如身体不是。

我会尝试将我的HTML限制为文档列表中的HTML,并遵循其格式正确的准则,并查看错误是否已通过这种方式解决。它们只是“通知”,所以没有什么严重的,但是最好修复它们,以防将来的版本不那么宽容。

在mpdf.php顶部添加以下内容

error_reporting(0); 

这将解决问题。

仍然没有找到真正的解决方案(有人吗?)。作为解决方法,我直接在将近20个地方修补了mpdf.php。

之前:

$variable[possible_wrong_index];

之后:

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

[有些if语句比较棘手。但现在我的日志中没有错误,生成的pdf似乎不受此影响。

((我知道这是一个骇人的解决方法,但目前可以正常工作-真正的乐趣始于mpdf的更新:)]

我有同样的问题。 HTML代码格式正确,但无济于事。我修改了类mpdf.php。我添加了检查,是否在每个报告的行上都设置了索引。像这样

if(isset($p[$tag])){
      $this->_mergeCSS($p[$tag], $t);
    }

我不知道为什么会这样,但是我遇到了同样的问题,我解决了这个问题,将'include'MPDFxx / mpdf.php'放在了调用WriteHTML函数的函数顶部。顺便说一句,我已经使用MPDF57找到了它。

如果在html视图中使用表。比确保td标签在tr标签内。

否则,mpdf将保留未定义的索引:l


11
投票

在mpdf.php顶部添加以下内容

error_reporting(0); 

这将解决问题。


1
投票

仍然没有找到真正的解决方案(有人吗?)。作为解决方法,我直接在将近20个地方修补了mpdf.php。

之前:

$variable[possible_wrong_index];

之后:

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

[有些if语句比较棘手。但现在我的日志中没有错误,生成的pdf似乎不受此影响。

((我知道这是一个骇人的解决方法,但目前可以正常工作-真正的乐趣始于mpdf的更新:)]


1
投票

我有同样的问题。 HTML代码格式正确,但无济于事。我修改了类mpdf.php。我添加了检查,是否在每个报告的行上都设置了索引。像这样

if(isset($p[$tag])){
      $this->_mergeCSS($p[$tag], $t);
    }

0
投票

我不知道为什么会这样,但是我遇到了同样的问题,我解决了这个问题,将'include'MPDFxx / mpdf.php'放在了调用WriteHTML函数的函数顶部。顺便说一句,我已经使用MPDF57找到了它。


0
投票

如果在html视图中使用表。比确保td标签在tr标签内。

否则,mpdf将保留未定义的索引:l

© www.soinside.com 2019 - 2024. All rights reserved.