dompdf не загружается

Я пытаюсь запустить dompdf на собственном сервере. С настройками config.inc.php по умолчанию я получаю следующее при запуске эквивалента демо-скрипта «Hello Wolrd»:

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 по умолчанию.

Огромное спасибо.


person Mark T. Johns    schedule 22.02.2013    source источник
comment
comment
Любой, кто читает это и испытывает проблемы даже после добавления php-font-lib, изменяет имя файла Font.php на font.cls.php в строке 332 из dompdf_config.inc.php.   -  person Sisir    schedule 20.01.2014


Ответы (7)


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

Кажется, это сработало для меня.

person Mikepote    schedule 01.07.2014
comment
Это помогло, спасибо!! Мне пришлось назвать свой путь dompdf/lib/php-font-lib/src вместо класса, но простое исправление! - person Joseph Charnin; 08.08.2016

Это временная проблема после того, как проект DOMPDF переместился на Github. См. ответы на этот вопрос. Самый простой способ получить полный пакет — загрузить бета-версию 3 DOMPDF 0.6 из Google Code.

person Jpsy    schedule 22.10.2013

Мы будем использовать dompdf в codeigniter, НО файл, который я скачал с GitHub, не содержит всех файлов, которые нам нужны. Отсутствуют все файлы php-font-lib. Поэтому нам пришлось скачать его и загрузить в соответствующую папку. Итак, чтобы dompdf работал в codeigniter, вам, возможно, придется его скачать.

См. здесь http://www.digitalwhores.net/codeigniter/codeigniter-dompdf-master-and-php-font-lib/

person Valko Valkov    schedule 29.09.2013

Если вы используете composer для установки dompdf, вам нужно поместить define("DOMPDF_ENABLE_AUTOLOAD", false); в dompdf_config.custom.inc.php. Это позволит композитору автоматически загружать php-font-lib, поскольку он уже установлен. (См. этот выпуск: https://github.com/dompdf/dompdf/issues/636)

Если вы не используете composer, см. ответ Mikepote.

person Loren    schedule 17.10.2014

Если ошибка не исправлена ​​после выполнения того, что предлагают другие ответы:

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

Там нет папки CLASSES, о которой упоминалось.

person edgarmtze    schedule 31.05.2015

У меня была почти такая же проблема. Мой код работал на моем локальном компьютере разработчика — компьютере с Windows — но затем произошел сбой на нашем производственном сервере — компьютере с Linux.

Проблема заключалась в том, что каталог «classes» был в нижнем регистре (\app\Vendor\dompdf\lib\php-font-lib\classes), что Windows не возражало, но Linux с учетом регистра!

Простое редактирование следующей строки в dompdf_config.inc.php решило проблему:

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

Для согласованности я переименовал каталог с заглавной буквой «C» в поле Windows.

person foxbeefly    schedule 24.06.2015

Новая версия 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");
person omer Farooq    schedule 03.02.2017