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");

我该如何解决?谢谢!

4

3 回答 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:(source

  • 从Github获取最新的 dompdf 版本并将其解压到一个目录中。
  • 也从Github下载库版本
  • 创建 dompdf/lib/php-font-lib/classes/ 目录。
  • 在 zip 文件中,获取 src/FontLib/ 文件夹的内容并将其粘贴到新创建的目录中。
于 2012-11-17T17:13:00.703 回答
2

在审核我的编辑时,我将在此处发布最新 dompdf 0.6.1 的详细信息

如果使用 composer 安装 dompdf(和 php-font-lib),则需要放入define("DOMPDF_ENABLE_AUTOLOAD", false);dompdf_config.custom.inc.php。这将允许 composer 自动加载通过 dompdf 的 composer.json 文件安装的 php-font-lib。否则,您仍然可能会收到错误消息。(请参阅此问题 #636)

如果你没有使用composer,想使用最新版的dompdf,则需要手动安装php-font-lib:(https://stackoverflow.com/a/24505929/3854385

  • 从Github获取最新的 dompdf 版本并将其解压到一个目录中。
  • 也从Github下载库版本
  • 创建 dompdf/lib/php-font-lib/classes/ 目录。
  • 在 zip 文件中,获取 src/FontLib/ 文件夹的内容并将其粘贴到新创建的目录中。
于 2014-10-17T15:51:35.283 回答
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;
于 2015-04-16T18:22:23.810 回答