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");
Как я могу решить? Спасибо!
Ответы
Ответ 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;