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

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

请帮我。

谢谢。

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 />

推荐使用 XHTML 规范以最好地符合 mPDF。

同样根据https://mpdf.github.io/html-support/html-tags.html

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

我会尝试将我的 HTML 限制为文档列表中的那些,并遵循他们格式良好的指南,看看错误是否以这种方式得到修复。它们只是“通知”,所以没有什么严重的,但最好修复它们以防万一未来的版本不那么宽容。

于 2012-11-10T06:59:00.320 回答
1

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

前:

$variable[possible_wrong_index];

后:

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

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

(我知道这是一个 hacky 解决方法,但它暂时有效 - 真正的乐趣始于 mpdf 的更新 :)

于 2013-02-08T14:19:40.137 回答
1

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

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

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

于 2013-09-19T13:59:42.320 回答
0

如果表格在 html 视图中使用。而不是确保 td 标签在 tr 标签内。

否则 mpdf 会返回未定义的索引:l

于 2019-10-09T05:29:08.277 回答
0

您可以使用此工具检查不可打印的字符:

https://www.soscisurvey.de/tools/view-chars.php

这解决了我的问题。

于 2022-02-14T06:26:17.663 回答