【问题标题】:FPDF17 - how to pass data to a generated pdfFPDF17 - 如何将数据传递给生成的 pdf
【发布时间】:2013-11-14 05:29:57
【问题描述】:

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

【问题讨论】:

  • 这听起来不像是 FPDF 的问题,而更像是您的 PHP 页面已经向客户端发送数据或响应标头的问题。您能确定在实际 PDF 上线之前没有发送任何数据吗?

标签: php fpdf


【解决方案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>";
}

【讨论】:

  • 帮助我朝着正确的方向前进。我认为我的问题现在已经解决了。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 2014-09-23
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 2019-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多