1

我目前正在尝试通过表单生成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 文件

4

1 回答 1

1

FPDF 告诉您它无法更改响应中的 HTTP 标头,然后将 PDF 作为文件发送。也就是说,在您的较大程序中的某处,某些内容已经通过回显、内联 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>";
}
于 2013-11-13T21:29:57.580 回答