Неустранимая ошибка PHP: класс «DOMPDF» не найден в строке 30

Я использую DOMPDF для создания PDF-файлов из HTML. Я скопировал все необходимые файлы из github (ветвь кодирования). Но он говорит, что класс DOMPDF не является ошибкой, как показано ниже.

ссылка на dompdf_config.inc.php в gitbub: https://github.com/dompdf/dompdf/tree/encoding

Вот мой код:

require_once("APIs/dompdf-encoding/dompdf_config.inc.php");     
$cart_body='<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>New Order Placed</title></head><body><p>Test Printing...</p></body></html>';
        $dompdf = new DOMPDF();
        $dompdf->load_html($cart_body);//body -> html content which needs to be converted as pdf..
        $dompdf->render();
        $dompdf->stream("sample.pdf"); //To popup pdf as download

Фактический вывод:

Неустранимая ошибка: класс «DOMPDF» не найден в /home/web/www/test_dompdf.php в строке 30.

Строка 30: $dompdf = new DOMPDF();

Примечание. Другие основные ветки работают нормально. Мне нужна эта ветвь кодирования, так как она решает проблемы, связанные с кодировкой шрифтов.


person logan    schedule 30.06.2014    source источник


Ответы (1)


Я протестировал ваш код, и у меня он работает нормально - файл sample.pdf загружается в браузер. Я скачал библиотеку с https://github.com/dompdf/dompdf/releases/tag/v0.6.1 URL (не только ветку кодировки(

Возможно, вы не переместили весь проект в выбранный каталог или не загрузили всю библиотеку. Я переместил все загруженное содержимое каталога в каталог APIs/dompdf-encoding, и здесь у меня есть файлы dompdf_config.inc.php и каталоги lib, include и www.

ИЗМЕНИТЬ

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

use Dompdf\Adapter\CPDF;
use Dompdf\Dompdf;
use Dompdf\Exception;

ИЗМЕНИТЬ2

Весь рабочий код:

<?php
use Dompdf\Adapter\CPDF;
use Dompdf\Dompdf;
use Dompdf\Exception;



        require_once("APIs/dompdf-encoding/dompdf_config.inc.php");     
$cart_body='<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>New Order Placed</title></head><body><p>Test Printing...</p></body></html>';
        $dompdf = new Dompdf();
        $dompdf->load_html($cart_body);//body -> html content which needs to be converted as pdf..
        $dompdf->render();
        $dompdf->stream("sample.pdf"); //To popup pdf as download

Я также изменил DOMPDF на Dompdf на всякий случай (в Windows оба работают)

person Marcin Nabiałek    schedule 30.06.2014
comment
где папка продавца? я ничего не вижу внутри - person logan; 30.06.2014
comment
Вам нужно установить Composer и использовать его. Просто посмотрите на URL-адрес http://getcomposer.org/doc/00-intro.md, как в комментарии выше, из примера DomPDF. - person Marcin Nabiałek; 30.06.2014
comment
если я установил DOMPDF_ENABLE_AUTOLOAD в False, то мне не нужно устанавливать автозагрузку? - person logan; 30.06.2014
comment
Вы, вероятно, можете попробовать включить в начале этот файл: https://github.com/dompdf/dompdf/blob/encoding/include/autoload.inc.php (конечно, с вашей структурой сервера). В этом случае эти 2 строки выше не нужны (но я их не проверял) - person Marcin Nabiałek; 30.06.2014
comment
я только что проверил файл конфигурации: def("DOMPDF_ENABLE_AUTOLOAD", true);if (DOMPDF_ENABLE_AUTOLOAD) { require_once(DOMPDF_INC_DIR . "/autoload.inc.php"); require_once(DOMPDF_LIB_DIR . "/php-font-lib/classes/Font.php"); } так что файл уже называется. думаю дело в другом - person logan; 30.06.2014
comment
Пожалуйста, посмотрите на мой измененный ответ - person Marcin Nabiałek; 30.06.2014
comment
Я знаю, что это сработает. даже у меня это работало, когда я загружал только код v0.6.1. Как вы объединили код версии кодирования и код версии 0.6.1 вместе? потому что мне нужен код ветки кодирования, поскольку в нем решены проблемы, связанные с кодированием. - person logan; 01.07.2014
comment
Я ничего не сливал. У меня есть простая загруженная v0.6.1, и она отлично работает - person Marcin Nabiałek; 01.07.2014
comment
да., я не хочу этого. Я хочу ветку кодирования, поскольку в ней решены проблемы, связанные с кодировкой шрифтов. ! - person logan; 01.07.2014
comment
В какой файл мне нужно добавить эти строки? - person logan; 01.07.2014
comment
Давайте продолжим обсуждение в чате. - person logan; 01.07.2014
comment
Спасибо. это сработало. но символы UT8 не печатаются. Не могли бы вы попробовать распечатать этот html? $cart_body=<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>New Order Placed</title> </head> <body><p>தமிழ் முந்திரி </p></body> </html> - person logan; 01.07.2014
comment
У меня это тоже не работает. Я получаю ? знаков. Я не нашел решения для этого. - person Marcin Nabiałek; 01.07.2014
comment
да .. Я действительно хочу напечатать эти символы .. Знаете ли вы какой-либо другой конвертер HTML в PDF на рынке? - person logan; 01.07.2014
comment
Я решаю проблему, помещая `use Dompdf\Dompdf; ` в верхней части моего файла php перед любым оператором inlude . - person Salem; 14.06.2016