Ошибки интеграции Joomla и DOMPDF

Я пытаюсь интегрировать DOMPDF в наш проект Joomla (версия 1.5.24) и продолжаю получать следующие ошибки:

    Strict standards: Non-static method JLoader::load() should not be called statically in C:\xampp\htdocs\proj\libraries\loader.php on line 162
    Strict standards: Non-static method JLoader::register() should not be called statically in C:\xampp\htdocs\proj\libraries\loader.php on line 139
    Fatal error: Class 'DOMPDF' not found in C:\xampp\htdocs\proj\components\com_reports\views\details\view.pdf.php on line 23
    Strict standards: Non-static method JFactory::getDBO() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\oasis\libraries\joomla\session\storage\database.php on line 84
    Strict standards: Non-static method JTable::getInstance() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\oasis\libraries\joomla\session\storage\database.php on line 89
    Strict standards: Non-static method JFactory::getDBO() should not be called statically, assuming $this from incompatible context in C:\xampp\htdocs\oasis\libraries\joomla\database\table.php on line 112

Функция, которая создает экземпляр объекта DOMPDF, находится в одном из представлений компонента:

class ReportsViewDetails extends JView{
  function display($tpl = null){
    global $mainframe;
    //echo "hello";
    $this->generatePDF();
   }

  function generatePDF(){
    require_once("./components/com_reports/helper/dompdf/dompdf_config.inc.php");

    $html =
      '<html><body>'.
      '<p>Put your html here, or generate it with your favourite '.
      'templating system.</p>'.
      '</body></html>';

    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->render();
    $dompdf->stream("sample.pdf");
   }
}

Он видит нужный файл, но dompdf_config.inc.php выдает ошибки, описанные выше. Я не уверен, что вызывает это, поскольку файл содержит только define строк и autoload функции. Содержимое файла можно увидеть здесь: http://code.google.com/p/dompdf/source/browse/trunk/dompdf/dompdf_config.inc.php.

Пожалуйста помоги! Спасибо!


person spicefoo    schedule 03.01.2012    source источник
comment
если у вас есть какие-либо предложения по более простым в использовании инструментам HTML-PDF, пожалуйста, будьте моим гостем и опубликуйте их. До сих пор я пробовал HTML2FPDF с FPDF, и он не соответствует моим требованиям (необходимо показывать заголовок для каждой сгенерированной страницы, но каким-то образом сгенерированный результат html не позиционируется автоматически после заголовка для 2-й страницы и ниже. если вы знаете, как чтобы исправить это, пожалуйста, поделитесь :D )   -  person spicefoo    schedule 03.01.2012
comment
ошибка говорит обо всем, что он не может найти класс DOMPDF, и почему вы указываете путь к файлу конфигурации? не должен ли путь быть для файла, который фактически реализует этот класс?   -  person Kishore    schedule 03.01.2012
comment
согласно тому, что я понимаю в файле конфигурации, это includes файл, который реализует класс DOMPDF. Думаю, так они это реализовали.   -  person spicefoo    schedule 03.01.2012
comment
Какая версия dompdf? Вы ссылаетесь на последнюю версию dompdf_config.inc.php в репозитории кода, но если вы используете 0.5.1, он использует другой автозагрузчик, который может быть несовместим с Joomla. 0.6.0 включает более современный код автозагрузчика.   -  person BrianS    schedule 04.01.2012
comment
Я попробовал dompdf_0-6-0_beta2, и теперь он создает PDF-файл, однако он поврежден. Посмотрев на содержимое файла, ff. видна ошибка: Fatal error: Class 'JResponse' not found in C:\xampp\htdocs\oasis\libraries\joomla\document\document.php on line 776   -  person spicefoo    schedule 04.01.2012
comment
JResponse не является классом dompdf. Либо что-то не так реализовано, либо автозагрузчик dompdf в 0.6.0 все еще конфликтует с Joomla. Если вы удалите код dompdf и просто повторите переменную $html, страница будет работать правильно?   -  person BrianS    schedule 05.01.2012
comment
Когда я удалил строку require_once, $html можно успешно отобразить.   -  person spicefoo    schedule 10.01.2012


Ответы (1)


все эти строгие стандартные предупреждения, которые вы получаете, связаны с этой строкой

отчет об ошибках (E_STRICT | E_ALL);

в dompdf_config.inc.php

и вы должны включить dompdf/include/dompdf.cls.php

person Anand    schedule 03.01.2012
comment
На самом деле, поскольку dompdf разработан в настоящее время, вы должны включить dompdf_config.inc.php. Этот файл устанавливает константы, которые требуются DOMPDF, и определяет автозагрузчик, который загружает необходимые файлы классов во время рендеринга. - person BrianS; 04.01.2012