1

我正在从 MYSQL 读取表格数据并以 html 格式编写以生成 PDF(使用 TCPDF LIbrary)。但是在生成的 PDF 中,只有一些内联 html CSS 会影响 include(color,width.height) 但其他 css,如border-botttom(我最需要)或所有其他 css 都被库忽略。

$bookings_table_Result = mysql_query($bookings_table_query);
$tbl_header = '<table style=\"width:900px; border: 1px solid black; padding:0px;\">';
$tbl_footer = '</table>';
$tbl = '';

    while($row = mysql_fetch_array($bookings_table_Result)){
    $checkin = $row["checkin"];
    $checkout = $row["checkout"];
    $nights = $row["nights"];
    $guest = $row["guest"];
    $country = $row["country"];
    $guestcount = $row["guestcount"];
    $amount = $row["amount"];

    $tbl .= '<tr >

            <td style="border-bottom: solid 1px Black; width: 80px;">'.$checkin.'</td>
            <td style="border: 1px solid #000000; width: 80px;">'.$checkout.'</td>
            <td style="border: 1px solid #000000; width: 20px;">'.$nights.'</td>
            <td style="border: 1px solid #000000; width: 200px;">'.$guest.'</td>
            <td style="border: 1px solid #000000; width: 150px;">'.$country.'</td>
            <td style="border: 1px solid #000000; width: 40px;">'.$guestcount.'</td>
            <td style="border: 1px solid red; width: 80px; color: blue;">'.$amount.'</td>
            </tr>';
     };
$tbl .= '</table>';

$pdf->writeHTML($tbl, true, false, true, false, '');

我上传了结果 PDF 的图片

在此处输入图像描述

4

3 回答 3

2

您在使用的行中有拼写错误border-bottom,请参阅:

... '<table style="width: 900px; border-bottom:1pt solid black;" border: 1px; cellspacing="0">';
                        This is out of the style attribute!! ------^
于 2013-03-19T16:44:33.133 回答
0

从外观上看,您没有生成有效的 html 表:您似乎没有将表头添加到$tbl变量中。

如果这不是问题(您没有显示输出表格的位置......),您最好发布生成的 html 而不是 php,因为这似乎html与.cssphp

于 2013-03-19T16:44:02.510 回答
-1

当您使用 php 在 html 中回显样式时,请尝试将代码更改为以下内容:

 $tbl .= '<tr >
        <td style=\"border: 1px solid #000000; width: 80px;\">'.$checkin.'</td>
        <td style=\"border: 1px solid #000000; width: 80px;\">'.$checkout.'</td>
        <td style=\"border: 1px solid #000000;  width: 20px;\">'.$nights.'</td>
        <td style=\"border: 1px solid #000000; width: 200px;\">'.$guest.'</td>
        <td style=\"border: 1px solid #000000; width: 150px;\">'.$country.'</td>
        <td style=\"border: 1px solid #000000; width: 40px;\">'.$guestcount.'</td>
        <td style=\"border: 1px solid #000000; width: 80px;\">'.$amount.'</td>
        </tr>';

使用单引号时,''您需要包含反斜杠以告诉服务器""在回显您的表格时保留。

当我使用 php 从 mysql db 回显我的表时,我遇到了类似的问题。

jeroen 提出了一个很好的观点。如果要创建有效的 html 表,则需要添加开始表声明。

您似乎也在样式定义之外对表格进行样式设置。

改变

$tbl_header = '<table style="width: 900px; border-bottom:1pt solid black;" border: 1px; cellspacing="0">';

$tbl_header = '<table style=\"width:900px; border-bottom:1px solid black; border: 1px solid black; padding:0px;\">

但是,底部的边框可能没有一点,然后是整个表格上的一个,因为您的最后一个边框声明将覆盖前一个边框。. .

于 2013-03-19T16:56:51.087 回答