2013-02-26 64 views
4

消失我設置了TCPDF在飛行中爲客戶生成發票,但是當我添加圖像,邊界是從我的表消失。下面的代碼:表格邊框在TCPDF

/* 
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(); 

下面是我使用的HTML:

$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>'; 

表顯示正常與上面的代碼,但只要我去掉圖像位,出現圖像,但表格邊框消失了。我試過向單個單元格添加內聯邊框,但這不會產生任何影響。

有沒有人有任何想法?

回答

11

首先,絕對確保你總是包括茶几標籤。 TCPDF的html解析器可以挑選打開和關閉標籤。 (我只是這樣說,因爲它在問題中沒有。)它依靠正確的標記正常運行。

現在我不知道只是通過看你的座標,但並表重疊的形象呢?如果確實如此,並且您希望在圖像頂部繪製邊框,則在繪製圖像後需要調用setPageMark。如果你不這樣做,邊框將下面的圖片可以得出,不管你有什麼樣的順序圖像和在的WriteHTML調用。

<?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(...); 

如果邊框仍然不存在,既不的上述幫助,放置圖像後,您可能會嘗試設置繪製顏色。我不確定這是否會做任何事情,但值得一試。

當然,要確保你在TCPDF的更新版本,這取決於你的版本可能會有邊框呈現修復。

+1

謝謝EPB - 增加$ PDF-setPageMark()定了! – 2013-02-27 08:58:01

+1

是的,這是我的問題,所有我有我忘了寫「」結尾的代碼。 – jazkat 2013-10-17 08:43:04

+0

我有類似的問題,但我沒有圖片,據我所知。只需一張我想打印出來的表格,其中包含值,我將其添加到現有的PDF中。我看到表格邊框閃爍,然後當它消失時,PDF加載,然後表格中的值加載,但是它們周圍沒有表格邊框可見。我有,我試着在不同的地方放置setPageMark(),但目前沒有幫助。 – Dennis 2014-03-04 18:20:56