dompdf 0.8.2生成PHP错误:“未捕获错误:未找到类'Dompdf'”

时间:2018-02-28 19:27:22

标签: php dompdf

我正在处理的遗留应用程序使用setLocale(LC_ALL, ["de.utf", "de_DE.utf", "de_DE.UTF-8", "de", "de_DE"])从html内容生成PDF。我们正在努力将php 5x更新为php 7x,因此我们需要将dompdf 0.6.1 更新为 0.8.2

我首先在独立文件中测试了0.8.2,它运行正常。

在应用程序中,pdf创建发生在一个函数中,如(但更复杂的IRL)

dompdf

这会针对上述函数中的function createPDF($html,$filename,$paper,$orientation) { require_once("static/dompdf_0.8.2/autoload.inc.php"); use Dompdf\Dompdf; $dompdf = new Dompdf(); $dompdf->loadHtml($html); $dompdf->setPaper($paper, $orientation); $dompdf->render(); $dompdf->stream($filename); return true; } 行生成PHP Parse error: syntax error, unexpected 'use' (T_USE)

我尝试移动需求并使用函数之外的行(再次简化)

use Dompdf\Dompdf

这会在require_once("static/dompdf_0.8.2/autoload.inc.php"); use Dompdf\Dompdf; function createPDF($html,$filename,$paper,$orientation) { $dompdf = new Dompdf(); $dompdf->loadHtml($html); $dompdf->setPaper($paper, $orientation); $dompdf->render(); $dompdf->stream($filename); return true; } 行生成PHP Fatal error: Uncaught Error: Class 'Dompdf' not found

在函数中使用dompdf 0.8.2是否有相对无痛的方法?

1 个答案:

答案 0 :(得分:3)

您的代码应该有效:

require_once 'static/dompdf_0.8.2/src/autoload.inc.php';
use Dompdf\Dompdf;

function createPDF($html,$filename,$paper,$orientation)
{
    $dompdf = new Dompdf();
    $dompdf->loadHtml($html);
    $dompdf->setPaper($paper, $orientation);
    $dompdf->render();
    $dompdf->stream($filename);
    return true;
}

确保require_once已成功执行({1}}以加载autoload.inc.php