这让我烦恼了好几个小时。当我尝试生成pdf时,我收到此错误: 1)警告:在540行的C:\ xampp \ htdocs \ KPAPMS \ PHP \ lib \ pdftable.php中除以零 2)FPDF错误:某些数据已经输出,无法发送PDF文件
我只是使用现有代码生成pdf(fpdf)。
这是我的代码示例
<?php
$sql = "SELECT * from vesservice";
$res = mysql_query($sql);
$hdd= "<table width=100%>
<tr><th width=100><strong>Company</strong></th><th><strong>: Kuching Port Authority</strong></th><th></th>
<th>Date / Time: ".$date."</th></tr>
<tr><th width=100><strong>Title</strong></th><th><strong>: Water Supply for SCN</strong></th><th></th><th></th></tr>
<tr><th colspan=4><hr></th></tr>
<tr>
<th><strong>SCN</strong></th><th>:</th>
<th><strong>Berth Date</strong></th><th>:</th></tr>
<tr>
<th><strong>Debtor Code</strong></th><th>:</th>
<th><strong>Expected Depart Date / Time</strong></th><th>:</th></tr>
<tr>
<th></th><th></th>
<th><strong>Actual Depart Date / Time</strong></th><th>:</th></tr>
<tr><th colspan=4><hr></th></tr>
</table>";
$tables="<table width=100%>
<tr align=center>
<th>Service Reference</th>
<th>Service Code</th>
<th>Water Supply Reference</th>
<th>Water Supply Sequence</th>
<th>Tariff Code</th>
<th>Tariff Description</th>
<th>UOM</th>
<th>Service Date</th>
<th>Requested Time</th>
<th>Volume<br />(Tonne)</th>
<th>Service Date</th>
<th>Started Time</th>
<th>Volume<br />(Tonne)</th>
<th>Service Date</th>
<th>Ended Date</th>
<th>Duration</th></tr>";
while($rs=mysql_fetch_assoc($res))
{
$tables.= "<tr align=center>
<td>".$rs['serv_opt']."</td>
<td>".$rs['dt_code']."</td>
<td>".$rs['scn']."</td>
<td>".$rs['term_code']."</td>
<td>".$rs['serv_cat']."</td>
<td>".$rs['serv_code']."</td>
<td>".$rs['activ_cnt']."</td>
<td>".$rs['serv_date_req']."</td>
<td>".$rs['serv_shift_req']."</td>
<td>".$rs['serv_qty']."</td>
<td>".$rs['serv_ref']."</td>
<td>".$rs['res_serv_date']."</td>
<td>".$rs['res_serv_time']."</td>
<td>".$rs['new_serv_date']."</td>
<td>".$rs['new_serv_time']."</td>
<td>".$rs['new_serv_qty']."</td>
</tr>";
}
$tables.="</table>";
//echo $hdd.'<br />'.$tables;
$p = new PDFTable('L','mm','a4');//set page orientation P/L
$p->SetFont('Times','',10);
$p->headerTable=$hdd;
$p->AddPage();
$p->htmltable($tables);
//ob_end_clean();
$p->output("Water Supply.pdf",'I'); //D=download
当我取消注意ob_end_clean时,它可以生成pdf输出,但只打印$ tables但不打印标题。 请帮助我,我做错了哪一部分。
答案 0 :(得分:1)
您可以尝试插入ob_end_clean();在输出之前。 示例
<?php
require('fpdf.php');
$pdf = new FPDF();
//your code for eneration of the pdf
ob_end_clean();
$pdf->Output();
?>
答案 1 :(得分:0)
好的,如果你想让FPdf正常工作,除了fpdf生成的内容之外根本不会有任何输出。您可以使用以下正则表达式解决删除.php文件末尾找到的所有新行字符的问题
\&GT;吗?\ n \ž
替换为
\吗?\ n
例如:
<?php
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Ok, OK
$pdf->Output();
?>
但这不会起作用
<?php
echo "You don't sent before output";
$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'OK oK);
$pdf->Output();
?>