Table borders disappear in tcpdf

I configure tcpdf to create on-the-fly invoices for customers, but when I add an image, the borders disappear from my table. Here is the code:

/* if ($status == "Paid") { $pdf->Image("/wp-content/themes/Feather/images/Paid.jpg", 10, 60, 190, '', '', '', 'T', false, "300", '', false, false, 0, false, false, false); } elseif ($status == "Overdue") { $pdf->Image("/wp-content/themes/Feather/images/Overdue.jpg", 10, 60, 190, '', '', '', 'T', false, "300", '', false, false, 0, false, false, false); } elseif ($status == "Cancelled") { $pdf->Image("/wp-content/themes/Feather/images/Void.jpg", 10, 60, 190, '', '', '', 'T', false, "300", '', false, false, 0, false, false, false); } */ $pdf->SetXY($x=20, $y=30); $pdf->writeHTML($html, true, false, true, false, ''); $pdf->lastPage(); 

Here is the HTML I'm using:

 $html = $html . ' <br/><br/><br/> <table width="600px" cellspacing="1" cellpadding="4" border="1"> <tr> <th width="200px">Product</th> <th width="65px">Code</th> <th width="65px">Quantity</th> <th width="65px">Unit Price</th> <th width="65">VAT Rate</th> <th width="65">VAT Amount</th> <th width="65">Line Total</th> </tr>'; foreach ($inv_lines as $inv_line) { $html = $html . '<tr> <td>' . $inv_line['item_desc'] . '</td> <td>' . $inv_line['item_no'] . '</td> <td>' . $inv_line['quantity'] . '</td> <td>' . $inv_line['unit_price'] . '</td> <td>' . $inv_line['vat_rate'] . '</td> <td>' . ($inv_line['quantity'] * $inv_line['vat_rate'] * $inv_line['unit_price'] * 0.01) . '</td> <td>' . $inv_line['line_total'] . '</td> </tr>'; 

The table looks great with the code as above, but as soon as I uncomment the bits of the image, the image will appear, but the borders of the table will disappear. I tried to add internal borders to individual cells, but this does not affect.

Does anyone have any ideas?

+4
source share
1 answer

First of all, make sure you always include the end table tag. TCPDF html parser can be picky about opening and closing tags. (I only say this because it is missing from the question.) He relies on the correct markup for the right job.

Now I'm not sure just looking at your coordinates, but does the table overlap the image? If this happens and you want the borders to be drawn on top of the image, you will need to call setPageMark after drawing the image. If you do not, borders will be drawn below the image, regardless of the order in which you have the Image and writeHTML images.

 <?php //In my test PDF I had to do something like this as some of my borders //were disappearing underneath my test image. $pdf->Image(...); $pdf->setPageMark(); $pdf->setXY(...) $pdf->writeHTML(...); 

If the border still does not exist, this is not one of the above references, you can try to set the color of the draw after placing the image. I'm not sure if this will do anything, but it's worth it.

Of course, make sure that you are working with an updated version of TCPDF, depending on your version, there may be rendering fixes.

+11
source

All Articles