TCPDF表标题自动移到右侧

时间:2019-04-12 13:55:24

标签: php html css tcpdf

我用TCPDF创建了一个表。标题为黑色的背景已稍微偏右,好像在左侧有一些填充。我无法使其正确排列。

Screenshot of table with the issue

下面的代码是我编写的用于形成表格的HTML。

$tbl ='<style>
th {background-color: black;color: white;float:left;}
.tal {text-align: left;float:left;}
</style>

<table border="0" cellspacing="0" cellpadding="0">
    <tr>
        <th width="60px" style="border-right: 1px solid white;"><strong>Qty</strong></th>
        <th width="1px"></th>
        <th class="tal" width="388px" style="padding:10px 0; border-right: 1px solid white;">     <strong>Product or Service</strong></th>
        <th width="1px"></th>
        <th width="84px" style="border-right: 1px solid white;"><strong>Price Each</strong></th>
        <th width="1px"></th>
        <th width="84px"><strong>Total</strong></th>
    </tr>
    
    <tr>
        <td height="267px">';
            while($i <= $a) {
                $tbl .= '<table height="267px" width="60px"><tr><td>' . $productsArray['product_quantity'][$i] . '</td></tr></table>';
                $i++;
            }
            $tbl .= '</td><td border="1" width="0.5px" height="267px" style="background:url(images/bars-black.jpg) bottom right no-repeat"></td><td height="267px">';
            while($j <= $a) {
                $tbl .= '<table height="267px" width="388px"><tr><td class="tal">     ' . $productsArray['product_name'][$j] . '</td></tr></table>';
                $j++;
            }
            $tbl .= '</td><td width="0.5px" height="267px" style="background:url(images/bars-black.jpg) bottom right no-repeat"></td><td height="267px">';
            while($k <= $a) {
                $tbl .= '<table height="267px" width="84px"><tr><td>' . $productsArray['product_price'][$k] . '</td></tr></table>';
                $k++;
            }
            $tbl .= '</td><td border="1" width="0.5px" height="267px" style="background:url(images/bars-black.jpg) bottom right no-repeat"></td><td height="267px">';
            while($l <= $a) {
                $tbl .= '<table height="267px" width="84px"><tr><td>' . $productsArray['product_sub'][$l] . '</td></tr></table>';
                $l++;
            }
$tbl .= '</td>
    </tr>
</table>';
}

下面的代码是我用来在页面上显示表格的PHP。

$pdf->writeHTMLCell(175, 80, 20, 100, $tbl, 1, 1, 0, true, 'C', true);

1 个答案:

答案 0 :(得分:0)

在另一个表的单元格中使用表通常不是一个好主意,并且可能会导致您遇到的问题。由于您的productsArray似乎已经拥有了您需要的所有数据,因此我将遍历它,在您进行操作时输出每一行。

还值得指出的是,定义为1px宽度的空标题行与定义为0.5px的实际数据行冲突。

<style>
th {background-color: black;color: white;float:left;}
.tal {text-align: left;float:left;}
</style>

<table border="0" cellspacing="0" cellpadding="0">
    <tr>
        <th width="60px" style="border-right: 1px solid white;"><strong>Qty</strong></th>
        <th width="1px"></th>
        <th class="tal" width="388px" style="padding:10px 0; border-right: 1px solid white;">     <strong>Product or Service</strong></th>
        <th width="1px"></th>
        <th width="84px" style="border-right: 1px solid white;"><strong>Price Each</strong></th>
        <th width="1px"></th>
        <th width="84px"><strong>Total</strong></th>
    </tr>

<?php
while($i <= $a) {
?>
<tr>
    <td height="267px"><?php echo $productsArray['product_quantity'][$i]; ?></td>
    <td border="1" width="0.5px" height="267px" style="background:url(images/bars-black.jpg) bottom right no-repeat"></td>
    <td height="267px"><?php echo $productsArray['product_name'][$i]; ?></td>
    <td width="0.5px" height="267px" style="background:url(images/bars-black.jpg) bottom right no-repeat"></td>
    <td height="267px"><?php echo $productsArray['product_price'][$i]; ?></td>
    <td border="1" width="0.5px" height="267px" style="background:url(images/bars-black.jpg) bottom right no-repeat"></td>
    <td height="267px"><?php echo $productsArray['product_sub'][$l]; ?></td>
</tr>
<?php
    $i++;
}
?>
</table>