Question

I am using MPDF library to convert HTML to PDF.

Here is my code.

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

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

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

It works , but generating too much errors in error log ,

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

anybody have some working experience with this library ? (If it only outputs some errors then we can fix it by changing on the library , but here it gives too much error) , i think that i am missing something.

Please help me.

Thanks.

Was it helpful?

Solution 2

Is the HTML well formed, and also are all the tags and attributes either all lowercase or all uppercase? Here are the requirements for the HTML as per MPDF documentation:

Example of an HTML attribute: <div align="center">

mPDF supports attribute values in single or double quotes e.g. <div align="center"> or <div align='center'>

Minimised attributes are not supported e.g. <input type="checkbox" disabled />

XHTML specification is recommended for best compliance with mPDF.

Also per https://mpdf.github.io/html-support/html-tags.html

you seem to be using tags that are not supported. BODY for instance is not.

I would try to limit my HTML to the ones on the documented list and and follow their well formed guidelines and see if the errors get fixed that way. They are only 'notices' so nothing severe, but it would be best to fix them just in case future versions are not as forgiving.

OTHER TIPS

Add following at top of mpdf.php

error_reporting(0); 

This will resolved the issue.

Still found no real solution (has anyone?). As a workaround, I patched mpdf.php directly in nearly 20 places.

Before:

$variable[possible_wrong_index];

After:

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

There are some if-statements, which were trickier. But now I have no errors in the log and the generated pdf seems to be no affected by this.

(I'm aware that this is a hacky workaround, but it works for the moment - the real fun starts with updates of mpdf :)

I had the very same problem. The HTML code was well formed, but it didn't help.
I modified the class mpdf.php. I added the check, whether the index is set on each reported line.
Like this

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

I don´t know exactly why did it happen, but I Had the same problem and I solved it placing the 'include 'MPDFxx/mpdf.php' at the top of the function where I was calling the WriteHTML function. BTW I've found it using MPDF57.

If table used in html view. than make sure td tag is inside tr tag.

Otherwise mpdf retrns undefined index: l

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top