我正在使用FPDF将ExpressionEngine的通道数据导出到PDF文件。我使用的FPDF-stuff是我之前在另一个项目中使用的代码,所以它应该工作。在FPDF对象正常的工作方法,但只要他们得到包裹在一个函数,我得到:ExpressionEngine中的PHP&FDPF错误'致命错误:调用非对象上的成员函数'
Fatal error: Call to a member function MultiCell() on a non-object
所以此工程:
include '../apps/assets/fpdf.php';
// setup the PDF object:
$pdf = new FPDF();
$pdf->SetMargins(0,0,0);
$pdf->SetAuthor("Author");
$pdf->addPage("P", "A4");
$pdf->SetTextColor(82,82,82);
// write something to the PDF:
$pdf->MultiCell(80, 6, "some text here", 0, "L");
但这并不:
include '../apps/assets/fpdf.php';
// setup the PDF object:
$pdf = new FPDF();
$pdf->SetMargins(0,0,0);
$pdf->SetAuthor("Author");
$pdf->addPage("P", "A4");
$pdf->SetTextColor(82,82,82);
writeStuff("some stuff to write");
function writeStuff($stuff) {
global $pdf;
$pdf->MultiCell(80, 6, $stuff, 0, "L");
}
最后一段代码会抛出上面发布的错误。
这很奇怪,因为完全相同的设置没有工作过。主要区别在于这一次,PHP被包装在ExpressionEngine模板中。该模板确实启用了PHP解析功能,并且在同一个应用程序中使用了许多其他模板,其中包含许多可以工作的PHP。
它与ExpressionEngine的解析顺序有关吗?在创建$ pdf对象之前调用writeStuff方法?
任何想法?
太好了,谢谢。将永远无法自己弄清楚这一点;) – Rein 2012-05-02 14:36:52