0

我在 php 中有我的代码,我打算从我的数据库中制作一个 pdf。我尝试阅读并找到用于创建 pdf 的 tcpdf。我下载它并尝试它的一些代码。创建pdf时真的需要$html吗?或者我下面带有回声的代码可以吗?每当我运行时总是出现错误:

注意:未定义的偏移量:16906 行 C:\xampp\htdocs\TopHealth\tcpdf\tcpdf.php 中的 0

注意:未定义的偏移量:17277 行 C:\xampp\htdocs\TopHealth\tcpdf\tcpdf.php 中的 0

TCPDF ERROR: 一些数据已经输出,无法发送 PDF 文件..

<?PHP

require_once('tcpdf/config/tcpdf_config.php');
require_once('tcpdf/tcpdf.php');


$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

$con = mysql_connect("localhost","root","");

if (!$con)
{
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("inventory", $con);

$result = mysql_query("SELECT * FROM critical");

echo "<center>";
echo "<table class='table1'>
<tr class='tablelist'>
<th>Code</th>
<th>Item Description</th>
<th>Beginning Balance</th>
<th>Reg. Quantity</th>
<th>Quantity Received</th>
<th>Consumed</th>
<th>Stock Level</th>
<th>Critical?</th>
</tr>";
echo "</center>";
while($row = mysql_fetch_array($result))
{

    echo "<tr  class='tablelist'>";
    echo "<td>" . $row['CODE'] . "</td>";
    echo "<td>" . $row['Item_Description'] . "</td>";
    echo "<td>" . $row['Beginning_Balance'] . "</td>";
    echo "<td>" . $row['Reg_Quantity'] . "</td>";
    echo "<td>" . $row['Quantity_Received'] . "</td>";
    echo "<td>" . $row['Consumed'] . "</td>";
    echo "<td>" . $row['Stock_Level'] . "</td>";
    echo "<td>" . $row['rate'] . "</td>";
    echo "</tr>";
}

echo "</table>";

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


   $pdf->Output('name.pdf', 'I');

mysql_close($con);

?>

谢谢

4

3 回答 3

3

用这个

while (ob_get_level())
        ob_end_clean();
        header("Content-Encoding: None", true);
于 2013-09-06T05:39:13.373 回答
2

发生这种情况是因为您在使用 php.ini 回显时已经输出了一些数据。

echo "<center>";

这是行不通的,因为您不想在 TCPDF 生成的实际 PDF 数据之前拥有 html 数据。

$html还没有定义,是吗?

您可能想要创建一个字符串,然后将其传递给TCPDF

$html = '<center';
$html .= '<table></table>';

$pdf->writeHTML($html, true, false, true, false, '');
于 2013-09-06T05:38:56.150 回答
-1

使用..pdf

http://www.fpdf.org/

阅读和实验

于 2013-09-06T06:30:45.287 回答