2013-03-19 1 views
1

Я читаю данные таблицы из MYSQL и записываю ее в формате html для генерации PDF (используя TCPDF LIbrary). но в результирующем PDF-файле только некоторые встроенные CSS-страницы влияют на включение (color, width.height), но другие css, такие как border-botttom (который мне больше всего нужен) или все остальные ar игнорируются библиотекой.Основные стили CSS (например, border-bottom) не влияют на динамически создаваемую таблицу

$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

enter image description here

+0

С одной стороны, у вас есть двойные кавычки, где должны использоваться одиночные кавычки. Сравните ваш с этой строкой, я преобразовал '$ tbl_header ="

";' и ' '(проверено). –

ответ

2

У вас есть ошибка опечатка в строке вы используете border-bottom см:

... '<table style="width: 900px; border-bottom:1pt solid black;" border: 1px; cellspacing="0">'; 
         This is out of the style attribute!! ------^ 
0

От взгляда его, вы не генерирует правильный HTML таблицу: Вы, кажется, не добавить заголовок таблицы в ваш $tbl переменная.

Если это не проблема (вы не покажете, где вы выводите стол ...), вы бы лучше разместить сгенерированный HTML вместо PHP, как это кажется более связано с html и css чем php.

-1

, когда эхо стиль в HTML с помощью PHP попытаться изменить код, чтобы что-то вроде этого:

$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;\">

Однако, вероятно, не точка на границе на дне, то один на всю таблицу, потому что ваша последняя граница декларация собирается переопределить Предыдущая. , ,

+0

Вы ошибаетесь в том, что вам нужно включить обратную косую черту, чтобы избежать двойных кавычек в одиночных кавычках. Вам нужны только их, если вы используете двойные кавычки в двойных кавычках или одиночных кавычках в одинарных кавычках – hellsgate

'. $ checkin. '