Подтвердить что ты не робот

PHP-шрифт-lib должен либо быть установлен через композитор, либо скопирован в lib/php-font-lib

Я пытаюсь преобразовать некоторые html в pdf. После некоторого поиска в Google я нахожу dompdf, но когда я пытаюсь преобразовать я retrieve

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

Как я могу решить? Спасибо!

4b9b3361

Ответ 1

Dompdf недавно переместился в Github, и мы также добавили поддержку Composer. Для этого мы удалили ссылку на требуемую внешнюю библиотеку php-font-lib.

Примечание. Если вы используете композитор для установки dompdf (и php-font-lib), вам нужно поместить define("DOMPDF_ENABLE_AUTOLOAD", false); в dompdf_config. custom.inc.php. Это позволит автору загрузить php-font-lib, который устанавливается через файл dompdf composer.json. В противном случае вы все равно можете получить сообщение об ошибке. (См. issue)

Если вы не используете композитор и хотите использовать последнюю версию dompdf с этой библиотекой: (источник)

  • Получите последнюю версию dompdf от Github и извлеките ее в каталог.
  • Загрузите релиз библиотеки также из Github
  • Создайте каталог dompdf/lib/php-font-lib/classes/.
  • В zip файле возьмите содержимое папки src/FontLib/и вставьте его в новый созданный каталог.

Ответ 2

Пока мое редактирование пересматривается, я опубликую подробности здесь для последней версии dompdf 0.6.1

Если вы используете композитор для установки dompdf (и php-font-lib), вам нужно поместить define("DOMPDF_ENABLE_AUTOLOAD", false); в dompdf_config.custom.inc.php. Это позволит автору загружать php-font-lib, который устанавливается через файл dompdf composer.json. В противном случае вы все равно можете получить сообщение об ошибке. (См. Этот выпуск № 636)

Если вы не используете композитор и хотите использовать последнюю версию dompdf, вам нужно будет вручную установить php-font-lib: (fooobar.com/questions/187152/...)

  • Получить последнюю версию dompdf из Github и извлечь ее в каталог.
  • Загрузите релиз библиотеки также из Github
  • Создайте каталог dompdf/lib/php-font-lib/classes/.
  • В zip файле возьмите содержимое папки src/FontLib/и вставьте его в новый созданный каталог.

Ответ 3

Другим трюком, чтобы избежать смены автоматических загружаемых файлов из Composer, является определение DOMPDF_ENABLE_AUTOLOAD и после перезагрузки файла конфигурации:

// Disable DOMPDF 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;