Удаленное изображение Dompdf не отображается в pdf

На моем сервере pdf, созданный с помощью dompdf, не показывал изображения. Потому что они – удаленные url-изображения (локальные изображения работают нормально), тогда я узнаю, что для визуализации удаленных изображений ему нужны некоторые настройки.

allow_url_fopen = true => i can not as server control is not in my hand.(and no one will suggest to do this due to security reasons) read/write access to the DOMPDF_TEMP_DIR (already have this) DOMPDF_ENABLE_REMOTE = true (already have this) 

Поэтому, конечно, проблема allow_url_fopen, я устанавливаю false в своем локальном хосте, который теперь дает тот же результат, что и сервер.

Итак, теперь проблема заключается в том, что я хочу отображать удаленные изображения в формате PDF с помощью allow_url_fopen = false

  • Я попробовал почти 5-10 уникальных способов сделать это.
  • Я попытался отобразить изображение в php-файле (через заголовки настроек), а затем отобразить ссылку php в pdf
  • Я попытался отобразить изображение через абсолютный путь к php, но ничего не получилось.
  • Я попытался получить изображение через curl в функции, а затем отобразить его в php-файле … но не повезло.

Кто-нибудь может предложить мне, как я могу отображать изображение в pdf, пожалуйста. Ошибка, которую я всегда получаю …

 Image not found http://localhost/dompdf/image.php 

а также

 Image not found http://localhost/dompdf/image.jpg 

У меня была та же проблема, dompdf изображение не найдено на живом сервере

Я нашел его решение, вам просто нужно дважды проверить путь к изображению,

Учитывая ваш путь к изображению в реальном времени

 <img src="http://www.example.com/public/images/thumb.png"> 

Вам просто нужно изменить его,

 <img src="public/images/thumb.png"> 

Примечание. Убедитесь, что все настройки такие же, как вы уже сделали.

Я надеюсь, что это поможет вам.

Пытаться

 $options = new Options(); $options->set('isRemoteEnabled', true); $dompdf = new Dompdf($options); 

Есть две вещи, о которых нужно позаботиться.

1) Если вы используете изображение с того же сервера, используйте полный путь к каталогу, например, /var/www/html/project_folder/images/logo.jpg

2) Используйте изображение JPEG вместо png или других типов.

Можете ли вы найти эти URL-адреса в своем веб-браузере на компьютере, который вы используете, чтобы открыть PDF-файл? В противном случае читатель PDF тоже не сможет.

Я подозреваю, что домен «localhost» означает, что эти URL-адреса видны только с веб-сервера, который сгенерировал PDF-файл. Вам нужно вывести URL-адрес, например http://example.com/dompdf/image.jpg

(Чтобы обойти эту проблему, имейте в виду, что есть веские причины не использовать удаленные изображения. Документ будет выглядеть плохо, если зритель не подключен к Интернету, например. Можно ли просто вставлять изображения непосредственно в документ?)

В настоящее время dompdf не имеет механизма для различения локального и удаленного домена, поэтому любой URL-адрес, начинающийся с http: // …, рассматривается как удаленный. Кроме того, любое изображение, использующее посредника на основе PHP (например, pic.php), не может использовать локальный путь, потому что PHP не будет анализироваться, если вы не пройдете через веб-сервер.

Это сложная перспектива, но ваши страницы генерируются динамически. Поэтому я вижу два варианта:

  1. загрузка удаленных изображений и их привязка к локальной файловой системе
  2. загрузка удаленных изображений и использование URI данных.

Поскольку вы уже разработали изображение с помощью curl, вы сможете реализовать любой из них.

Я думаю, вы могли бы добавить это

 private function change_url_image($data, $url) { $str = $url; //for example "http://localhost/yoursite/"; $str2 = str_replace($str, "", $data); return $str2; } 

изменить URL-адрес для изображения

Та же проблема, с которой я столкнулся, когда был установлен «DOMPDF_ENABLE_REMOTE => true» в «dompdf / dompdf_config.inc», но не работал.

Одна вещь работала для меня, чтобы изменить src для images / css от абсолютного к относительному и вещей, сделанных. В этом случае у меня есть все css / images на моем сервере.

Перейдите в файл dompdf_config.inc.php и установите для переменной DOMPDF_ENABLE_REMOTE значение TRUE …