部分数据已经输出,无法发送PDF文件
Some data has already been output, can't send PDF file
我在 php 中使用 fpdf 创建 pdf,当 运行:
时出现此错误
Notice: Undefined index: id in C:\xampp1\htdocs\arvin2\public\pdf2\id.php on line 3
FPDF error: Some data has already been output, can't send PDF file
这是我的 php 代码 (report.php):
<form action="http://localhost/pdf2/id.php" method="post" target="_blank">
<input type="text" name="id">
<input type="submit" name="submitpdf" value="Print"/>
</form>
另一个(eto.php):
<?php
require('mysql_table.php');
$id=$_POST['id'];
class PDF extends PDF_MySQL_Table
{
function Header()
{
//Title
$this->SetFont('Arial','',18);
$this->Cell(0,6,'Type of Leave',0,1,'C');
$this->Ln(10);
//Ensure table header is output
parent::Header();
}
}
mysql_connect('localhost','root','');
mysql_select_db('auth');
$pdf=new PDF();
//First table: put all columns automatically
$pdf->AddPage();
//Second table: specify 3 columns
$pdf->AddCol('leave_id',20,'','C');
$pdf->AddCol('fullname',40,'Fullname');
$pdf->AddCol('type_of_leave',40,'Type of Leave','R');
$prop=array('HeaderColor'=>array(255,150,100),
'color1'=>array(210,245,255),
'color2'=>array(255,255,210),
'padding'=>2);
$pdf->Table('select leave_id, fullname, type_of_leave from application where id_no="$_POST[id]"',$prop);
$pdf->Output();
?>
当我输入时:
if(isset($_POST['submitpdf']))
{
$id=$_POST['id'];
//your code goes here
}
错误说:
Parse error: syntax error, unexpected '$pdf' (T_VARIABLE) in C:\xampp1\htdocs\arvin2\public\pdf2\id.php on line 34
输出应该是在pdf格式打印的文本字段中输入的所有ID号信息。
将 if 设置在您的代码中。即
if(isset($_POST['submitpdf']))
{
//$id=$_POST['id'];
//your code goes here
}
这是为了确保您的代码只会 运行 在读取您的表单数据后
编辑:
我猜你的新错误来自 select 字符串。
$pdf->Table('select leave_id, fullname, type_of_leave from application where id_no="$_POST[id]"',$prop);
改成这样:
$pdf->Table("select leave_id, fullname, type_of_leave from application where id_no=".$_POST[id],$prop);
错误: 部分数据已经输出,无法发送PDF文件
您可以使用两行代码来解决这个问题
- 你应该写在页首
ob_start()
- 在您的 PDF 输出行之前 $pdf->Output(); 添加新行
ob_end_flush();
$pdf->Output();
我想你可以解决这个问题并且享受更多!
Thanks
Md Salahuddin Khan
我遇到了同样的错误。
Data has already been sent to output, unable to output PDF file
这意味着在使用 mPDF 创建 pdf 之前,一些数据存储在发送到浏览器的缓冲区中。因此无法创建PDF。
只需这样做.. 如果您正在为 pdf 准备数据,请在页面第一行的 php built-in 函数下方添加此内容。
op_start();
并在 mPDF 代码之前的 php built-in 函数下方添加此内容(在您调用 mpdf 的位置之前)
ob_end_flush();
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$mpdf->Output();
以便在处理 mPDF 之前清除所有缓冲区输出。
您应该在要输出为 pdf 的数据之前使用。
ob_start();
然后使用ob_end_clean()。
ob_end_clean();
$pdf->Output(time().'.pdf', 'D')
我在 php 中使用 fpdf 创建 pdf,当 运行:
时出现此错误Notice: Undefined index: id in C:\xampp1\htdocs\arvin2\public\pdf2\id.php on line 3
FPDF error: Some data has already been output, can't send PDF file
这是我的 php 代码 (report.php):
<form action="http://localhost/pdf2/id.php" method="post" target="_blank">
<input type="text" name="id">
<input type="submit" name="submitpdf" value="Print"/>
</form>
另一个(eto.php):
<?php
require('mysql_table.php');
$id=$_POST['id'];
class PDF extends PDF_MySQL_Table
{
function Header()
{
//Title
$this->SetFont('Arial','',18);
$this->Cell(0,6,'Type of Leave',0,1,'C');
$this->Ln(10);
//Ensure table header is output
parent::Header();
}
}
mysql_connect('localhost','root','');
mysql_select_db('auth');
$pdf=new PDF();
//First table: put all columns automatically
$pdf->AddPage();
//Second table: specify 3 columns
$pdf->AddCol('leave_id',20,'','C');
$pdf->AddCol('fullname',40,'Fullname');
$pdf->AddCol('type_of_leave',40,'Type of Leave','R');
$prop=array('HeaderColor'=>array(255,150,100),
'color1'=>array(210,245,255),
'color2'=>array(255,255,210),
'padding'=>2);
$pdf->Table('select leave_id, fullname, type_of_leave from application where id_no="$_POST[id]"',$prop);
$pdf->Output();
?>
当我输入时:
if(isset($_POST['submitpdf']))
{
$id=$_POST['id'];
//your code goes here
}
错误说:
Parse error: syntax error, unexpected '$pdf' (T_VARIABLE) in C:\xampp1\htdocs\arvin2\public\pdf2\id.php on line 34
输出应该是在pdf格式打印的文本字段中输入的所有ID号信息。
将 if 设置在您的代码中。即
if(isset($_POST['submitpdf']))
{
//$id=$_POST['id'];
//your code goes here
}
这是为了确保您的代码只会 运行 在读取您的表单数据后
编辑:
我猜你的新错误来自 select 字符串。
$pdf->Table('select leave_id, fullname, type_of_leave from application where id_no="$_POST[id]"',$prop);
改成这样:
$pdf->Table("select leave_id, fullname, type_of_leave from application where id_no=".$_POST[id],$prop);
错误: 部分数据已经输出,无法发送PDF文件
您可以使用两行代码来解决这个问题
- 你应该写在页首
ob_start()
- 在您的 PDF 输出行之前 $pdf->Output(); 添加新行
ob_end_flush();
$pdf->Output();
我想你可以解决这个问题并且享受更多!
Thanks
Md Salahuddin Khan
我遇到了同样的错误。
Data has already been sent to output, unable to output PDF file
这意味着在使用 mPDF 创建 pdf 之前,一些数据存储在发送到浏览器的缓冲区中。因此无法创建PDF。
只需这样做.. 如果您正在为 pdf 准备数据,请在页面第一行的 php built-in 函数下方添加此内容。
op_start();
并在 mPDF 代码之前的 php built-in 函数下方添加此内容(在您调用 mpdf 的位置之前)
ob_end_flush();
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$mpdf->Output();
以便在处理 mPDF 之前清除所有缓冲区输出。
您应该在要输出为 pdf 的数据之前使用。
ob_start();
然后使用ob_end_clean()。
ob_end_clean();
$pdf->Output(time().'.pdf', 'D')