DOMPdf не создает PDF на рабочем сервере, показывает только код

У меня есть рабочая генерация DOMPdf из HTML на локальном сервере. Я загрузил его на свой рабочий сервер, и, судя по моим первым тестам, он работал. Теперь, пару дней назад, я начал получать сообщения о том, что генерация PDF показывает только символы и буквы. Итак, я проверил и провел некоторое тестирование, и, по-видимому, проблема где-то между библиотекой DOMPdf, PHP fpm и CodeIgniter.

Рабочий сервер использует:

  • Убунту 20.04.2 ЛТС
  • Апач 2.4.41
  • PHP 7.4.3 (Apache использует FPM)

На сайте используются:

  • CodeIgniter 4.1.1
  • ДомPDF 1.0.2

Итак, поиграв немного, я заметил, что если я использовал код генерации PDF вне CodeIgniter, он работает нормально, но если я попытаюсь использовать его внутри экземпляра CodeIgniter, я получу следующее:

введите здесь описание изображения

Моя теория заключается в том, что это в основном проблема с заголовком, но я не уверен, что ее вызывает.


person Mihail Minkov    schedule 19.03.2021    source источник


Ответы (1)


В конце я проверил это с ребятами из форума CodeIgniter и получил два возможных решения. Очевидно, это была проблема с заголовком/буфером.

Итак, есть два варианта исправить это:

Вариант 1. Удаление определенного заголовка для Content-Type

//in controller method
$this->response->removeHeader('Content-Type'); 

Вариант 2. Добавление команды exit() в конец кода

$dompdf->stream("test.pdf",array('Attachment'=>0)); 
exit(); 
person Mihail Minkov    schedule 19.03.2021