PHP-font-lib必须通过composer安装或复制到lib/php-font-lib。

29
我正在尝试将一些HTML转换为PDF。 经过一番谷歌搜索,我找到了dompdf。但是当我尝试进行转换时,我得到了以下结果:

PHP-font-lib must either be installed via composer or copied to lib/php-font-lib

这是我想要做的:

require 'pdf/dompdf.php';
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");

我该怎么解决?谢谢!

3个回答

48

Dompdf最近迁移到Github,并增加了Composer支持。为此,我们删除了对所需的外部库php-font-lib的引用。

注意:如果您使用composer安装dompdf(和php-font-lib),则需要将define("DOMPDF_ENABLE_AUTOLOAD", false);放在dompdf_config.custom.inc.php中。这样就可以让composer自动加载通过dompdf的composer.json文件安装的php-font-lib。否则,您可能仍然会收到错误提示。(参见此问题

如果您没有使用composer并想要使用此库的最新版本的dompdf:(来源)

  • Github获取最新的dompdf发布版并将其解压到一个目录中。
  • 也从Github下载库发行版。
  • 创建dompdf/lib/php-font-lib/classes/目录。
  • 在zip文件中,将src/FontLib/文件夹的内容复制并粘贴到新创建的目录中。

29
请注意,不是每个人都知道什么是composer或PHP-font-lib。因此,在错误消息中添加更多信息将非常有帮助。 ;) - s.Daniel
5
我认为这仍然是一个问题。当不通过composer下载时,应将其添加到要求信息或安装信息中。 - bottleboot
如何从零开始?我已经让他们的脚本示例运行了,但我想创建自己的脚本。我还没有看到这方面的教程,任何链接都会有所帮助。谢谢。 - Ivo San
3
请注意,我找到了这个答案,但对我没有用。看起来当答案被写下时,使用的php-font-lib版本是0.2.2,使用0.4版本并不能解决问题。请使用0.2.2版本(https://github.com/PhenX/php-font-lib/releases/tag/0.2.2)。 - Ofir Baruch
在Drupal 7中安装php-font-lib以供打印模块使用,版本7.2.0需要查找版本0.2.2文件布局-0.4会出现类未找到的情况。 - Chris
显示剩余4条评论

2

当我提交的编辑正在被审查时,我将在此处发布有关最新dompdf 0.6.1的详细信息。

如果你使用composer安装dompdf(和php-font-lib),那么你需要在dompdf_config.custom.inc.php中添加define("DOMPDF_ENABLE_AUTOLOAD", false);。这将允许composer自动加载通过dompdf的composer.json文件安装的php-font-lib。否则,可能仍会出现错误。(请参见问题#636)

如果你不使用composer并想使用最新版本的dompdf,则需要手动安装php-font-lib:(https://dev59.com/jWUp5IYBdhLWcg3wz58H#24505929)

  • Github获取最新版的dompdf,并将其解压到一个目录中。
  • 也从Github下载库的版本。
  • 创建dompdf / lib / php-font-lib / classes /目录。
  • 在zip文件中,将src / FontLib /文件夹的内容复制并粘贴到新创建的目录中。

0
另一个技巧,为了避免Composer自动下载的文件更改,是定义DOMPDF_ENABLE_AUTOLOAD,然后重新加载配置文件:
// Disable DOMPDF's internal autoloader if you are using Composer
define('DOMPDF_ENABLE_AUTOLOAD', false);
require_once CONFIG_DIR . 'vendor/dompdf/dompdf/dompdf_config.inc.php';

$dompdf = new \DOMPDF;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接