FPDF17 - 如何将数据传递给生成的pdf

时间:2013-11-13 21:23:54

标签: php fpdf

我目前正在尝试通过表单生成pdf,我希望将用户数据传递给生成的pdf。但是当我发现并阅读有关FPDF的内容时,除了FPDF类所做的事情外,它无法生成其他内容。所以这是我的问题:

如何在生成的pdf中实现/使用不同的数据?

我尝试过以下方法(在单元格中使用会话变量):

require 'fpdf17/fpdf.php';


class PDF extends FPDF
{   

function Header() {

    $this->setFont("Arial", '', 32);
    $this->Image('pics/invoiceLogo.png', 5,5,50);
    $this->ln(25);

    $this->setTextColor(0,0,0);
    $this->setFont("Arial", '', 8);
    $this->cell(100, 4, $_SESSION['firstname'] , 0, 0, 'L');
}
... 

顺便说一句,我得知错误:

  

FPDF错误:某些数据已经输出,无法发送PDF文件

1 个答案:

答案 0 :(得分:1)

FPDF告诉您它无法更改响应中的HTTP标头,然后将PDF作为文件发送。也就是说,在较大程序中的某个地方,某些内容已经通过echo,内联HTML或包含文件开始输出。

这不是FPDF中的错误。你发布的内容看起来很好。

在尝试调用Output()的代码中,将其包装在try { ... } catch (Exception $e) { ... }块中。然后,您可以执行echo $e->getMessage();print_r($e->getTrace());之类的操作,以查看输出的开始位置或发生的情况。

try {
  $my_pdf = new PDF();
  // ... work here ...
  $my_pdf->Output();
} catch (Exception $e) {
  echo $e->getMessage() . "<br>\n";
  echo "<pre>";
  print_r($e->getTrace()); 
  echo "</pre>";
}