DOMPDF加载失败(dompdf fails to load)

2019-07-20 09:25发布

我试图让DOMPDF一个内部的服务器上运行。 使用默认的config.inc.php设置,我得到的运行演示“你好世界国际”脚本相当于当以下情况:

Warning: require_once(/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php): failed to open stream: No such file or directory in /var/www/dompdf-master/dompdf_config.inc.php on line 335
Fatal error: require_once(): Failed opening required '/var/www/dompdf-master/lib/php-font-lib/classes/font.cls.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/dompdf-master/dompdf_config.inc.php on line 335 

当我关掉DOMPDF_ENABLE_AUTOLOAD ,我不再得到这样的警告,但代码失败,出现以下内容:

Fatal error: Class 'DOMPDF' not found in /var/www/rfq/test.php on line 115

以下是代码:

require_once("/var/www/dompdf-master/dompdf_config.inc.php");

$dompdf = new DOMPDF(); // this is the line that fails
$dompdf->load_html($quotehtml);
$dompdf->render();
$dompdf->stream("rfq".$_REQUEST['quoteid'].".pdf");

这是Ubuntu的12.04,上最新的补丁,以默认的Apache设置。

非常感谢。

Answer 1:

  • 转到https://github.com/PhenX/php-font-lib并下载库。
  • 创建dompdf/lib/php-font-lib/classes/目录。
  • 在zip文件,把内容src/FontLib/文件夹,并粘贴到新创建的目录。

这似乎为我工作。



Answer 2:

这是一个暂时性的问题后DOMPDF项目转移到Github上。 查看回答这个问题 。 获得完整的包最简单的办法就是下载从谷歌代码DOMPDF 0.6 Beta 3中 。



Answer 3:

我们将使用DOMPDF在笨但我心中已经从GitHub下载的文件不具有所有我们需要的文件。 缺少PHP-字体LIB的所有文件。 因此,我们必须下载并上传到相应的文件夹中。 因此,有DOMPDF在笨的工作,你可能需要下载它。

看到这里http://www.digitalwhores.net/codeigniter/codeigniter-dompdf-master-and-php-font-lib/



Answer 4:

如果您使用的作曲家安装DOMPDF,你需要把define("DOMPDF_ENABLE_AUTOLOAD", false); 在dompdf_config.custom.inc.php。 然后,这将允许作曲家自动加载PHP-字体-lib的,因为它已经安装。 (详见本期: https://github.com/dompdf/dompdf/issues/636 )

如果您使用的不是作曲家,看到Mikepote的答案。



Answer 5:

如果错误是没有做修正后什么其他答案建议:

In dompdf_config.inc.php, change line 332 to point to the actual location of your Font.php  file.
mine was /php-font-lib/src/FontLib

还有就是在那里提到没有类文件夹。



Answer 6:

我几乎完全一样的问题。 我的代码是工作在我的本地dev的机器 - Windows中 - 但是是失败我们的生产服务器上 - 在Linux中

问题是,在“类”目录中是小写(\程序\供应商\ DOMPDF \ LIB \ PHP-字体的lib \类)的Windows并不介意 - 但Linux的是区分大小写的做到了!

简单的编辑在dompdf_config.inc.php以下行解决了这个问题:

require_once(DOMPDF_LIB_DIR . "/php-font-lib/Classes/Font.php");

为了保持一致性我改名与在Windows中的大写字母“C”的目录。



Answer 7:

DOMPDF的新版本不工作“的作曲家安装”或“作曲更新”。 它需要的字体库可能并不总是最新版本的特殊版本,所以这可能会在未来发生改变。 但你可以找到如何通过DOMPDF的文件进行安装。 不知道为什么作者没有硬编码的composer.json内这些字体的版本,但反正这里是如何做到这一点。

目前使用该库的最简单有效的方法是通过GIT中(从官方文档拍摄)

git clone https://github.com/dompdf/dompdf.git
cd dompdf

git clone https://github.com/PhenX/php-font-lib.git lib/php-font-lib
cd lib/php-font-lib
git checkout 0.4
cd ..

git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib
cd php-svg-lib
git checkout v0.1

然后,你可以做

use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream( "/path-to-save-pdf-file/sample.pdf");


文章来源: dompdf fails to load