我正在尝试使用ezpdf将mysql数据输出到pdf。我已经成功生成了报告的第一部分,但第二部分有很多专栏,当然也不会在整个页面中生成。下图可能会解释我正在尝试做什么。
当前布局示例:
| --- 标题 - | ---的 HEADER2 - | ---的 HEADER3 - | --- HEADER4 - | ---的 HEADER5 - |
| USERNAME1 | DATAFIELD1 | DATAFIELD2 | DATAFIELD3 | DATAFIELD3 |
| USERNAME2 | DATAFIELD1 | DATAFIELD2 | DATAFIELD3 | DATAFIELD3 |
| USERNAME3 | DATAFIELD1 | DATAFIELD2 | DATAFIELD3 | DATAFIELD3 |
我正在努力完成的例子:
| ----的头1 --- | ---的 HEADER2 --- |
| USERNAME1 | DATAFIELD1 |
| ---的 HEADER3 --- | ---的 HEADER4 --- | ---的 HEADER5 --- | < / p>
| DATAFIELD2 | DATAFIELD3 | DATAFIELD4 |
| ----的头1 --- | ---的 HEADER2 --- |
| USERNAME2 | DATAFIELD1 |
| ---的 HEADER3 --- | ---的 HEADER4 --- | ---的 HEADER5 --- | < / p>
| DATAFIELD2 | DATAFIELD3 | DATAFIELD4 |
| ----的头1 --- | ---的 HEADER2 --- |
| USERNAME3 | DATAFIELD1 |
| ---的 HEADER3 --- | ---的 HEADER4 --- | ---的 HEADER5 --- | < / p>
| DATAFIELD2 | DATAFIELD3 | DATAFIELD4 |
我希望这是有道理的。如果有人能提供帮助,我们将非常感激。
以下是我的测试代码
答案 0 :(得分:0)
实际上,如果你没有保留旧代码,我建议你使用TCPDF从php生成PDF,它提供了很多功能。例如,在没有问题的情况下将html转换为PDF代码。
在这种情况下,您可以创建html表,然后像this示例
中那样转换它们编辑 - 在TCPDF中你必须非常小心你如何标记你的表:从你的链接我看到你的标记中的错误。您要创建的表应该是这样的:
$tbl = '
<table border="1" cellpadding="2" cellspacing="2">
<thead>
<tr style="background-color:#FFFF00;color:#0000FF;">
<td align="center"><b>USERNAME</b></td>
<td align="center"><b>LASTNAME</b></td>
<td align="center"><b>FIRSTNAME</b></td>
</tr>
</thead>
<tbody>
<tr style="background-color:#FF0000;color:#FFFF00;">
<td align="left">' .$username. '</td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
';
答案 1 :(得分:0)
好的我修复了错误并使循环工作。出于某种原因,虽然它正在切断第一行数据。
$tbl = '
<table border="1" cellpadding="1" cellspacing="2">
<tr style="background-color:#666666;color:#FFFFFF;">
<td align="center"><b>TITLE 1 HERE</b></td>
<td align="center"><b>TITLE 2 HERE</b></td>
<td align="center"><b>TITLE 3 HERE</b></td>
</tr>';
while($row = mysql_fetch_array($Recordset1))
{
$tbl = $tbl .' <tr style="background-color:#000066;color:#FFFFFF;">
<td align="left">Name: '.$row[lastname].', '.$row[firstname].'</td>
</tr>'
.' <tr style="background-color:#CCCCCC;color:#000000;">
<td align="left">'.ValLesson1.'</td>
<td align="left">'.ValLesson2.'</td>
<td align="left">'.ValLesson3.'</td>
</tr>'
.'<tr style="background-color:#FFFFFF;color:#000000;">
<td align="left">'.$row[most_valuable_lesson].'</td>
<td align="left">'.$row[second_valuable_lesson].'</td>
<td align="left">'.$row[third_valuable_lesson].'</td>
</tr>'
.' <tr style="background-color:#CCCCCC;color:#000000;">
<td align="left">'.CourseStrengths.'</td>
<td align="left">'.CourseWeakness.'</td>
</tr>'
.'<tr style="background-color:#FFFFFF;color:#000000;">
<td align="left">'.$row[course_strength].'</td>
<td align="left">'.$row[course_weakness].'</td>
</tr>'
; }
$tbl = $tbl . '</table>';
$pdf->writeHTML($tbl, true, false, false, false, '');
任何想法?
答案 2 :(得分:0)
在您发布的example code中,您使用mysql_fetch_array($ Recordset1)在循环之前调用mysql_fetch_assoc($ Recordset1),因此循环将错过第一个结果。如果您在其他代码中执行相同操作,那么这将是问题所在。