使用 dompdf 后抛出致命错误

Throwing Fatal Error after using dompdf

我正在尝试编写一个脚本,使用 dompdf.I 将 HTML 文件转换为 PDF 有一个名为 converter.php 的 php 文件,其中包含以下代码行:

<?php
use Dompdf\Dompdf;

$dompdf = new Dompdf();
$dompdf->loadHtml('Hello, its my first HTML to PDF Converter');
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream();

编译程序后抛出 2 个异常:

First:

Fatal error: Uncaught Error: Class 'Dompdf\Dompdf' not found in C:\xampp\htdocs\PHP-PDFConverter\converter.php on line 4

第二个:

Error: Class 'Dompdf\Dompdf' not found in C:\xampp\htdocs\PHP-PDFConverter\converter.php on line 4

我确定问题不在于某个目录的路径。

编辑: 这是我的 Dompdf class:

/**
 * @package dompdf
 * @link    http://dompdf.github.com/
 * @author  Benj Carson <benjcarson@digitaljunkies.ca>
 * @author  Fabien Ménager <fabien.menager@gmail.com>
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 */
namespace Dompdf;

use DOMDocument;
use DOMNode;
use Dompdf\Adapter\CPDF;
use DOMXPath;
use Dompdf\Frame\Factory;
use Dompdf\Frame\FrameTree;
use HTML5_Tokenizer;
use HTML5_TreeBuilder;
use Dompdf\Image\Cache;
use Dompdf\Renderer\ListBullet;
use Dompdf\Css\Stylesheet;

和自动加载文件:

<?php
/**
 * @package dompdf
 * @link    http://dompdf.github.com/
 * @author  Benj Carson <benjcarson@digitaljunkies.ca>
 * @author  Fabien Ménager <fabien.menager@gmail.com>
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 */

/**
 * Dompdf autoload function
 *
 * If you have an existing autoload function, add a call to this function
 * from your existing __autoload() implementation.
 *
 * @param string $class
 */

require_once __DIR__ . '/lib/html5lib/Parser.php';
require_once __DIR__ . '/lib/php-font-lib/src/FontLib/Autoloader.php';
require_once __DIR__ . '/lib/php-svg-lib/src/autoload.php';

/*
 * New PHP 5.3.0 namespaced autoloader
 */
require_once __DIR__ . '/src/Autoloader.php';

Dompdf\Autoloader::register();

抛出的第一个异常意味着 "Hey, there is a exception that you haven't yet handled using try ... catch",你可以忽略它,除非你想用它做点什么,但看到你在这里,你唯一想做的就是解决它.
第二个异常意味着 class 不为 PHP 所知,这意味着它在调用 class 之前的任何地方都不是 included/required。在您的情况下,这可能意味着自动加载器无法按预期工作,或者文件位于自动加载器的错误位置。

确保您正在执行以下操作:

  • 尽早包含自动加载器文件
  • 包括 composer 的自动加载器(如果使用 composer)
  • 注册自动加载器(阅读如何here
  • 将 DomPDF class 放在自动加载的位置