1

MYSQL からテーブル データを読み取り、それを html 形式で書き込んで PDF を生成しています (TCPDF LIBrary を使用)。しかし、結果のPDFでは、(color,width.height)を含むインラインhtml 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。変数にテーブル ヘッダーを追加していないようです。

それが問題でない場合 (テーブルを出力する場所を示していません...)、php の代わりに生成された html を投稿することをお勧めhtmlcssますphp

于 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を使用してmysqldbからテーブルをエコーし​​たときにも同様の問題が発生しました。

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 に答える