mPDF 5.7.1 - изображение отображается в виде разбитого [x]


У меня небольшая проблема с mPDF (версия 5.7.1).

Этот код должен генерировать PDF с файлом изображения:

 $mpdf = new mPDF();
 $html = '<img src="https://www.google.pl/images/srpr/logo11w.png"/>';
 $mpdf->WriteHTML($html);
 $mpdf->debug = true; 
 $output = $mpdf->Output(); 
 exit();

Ну, вместо этого нет изображения, кроме [x].

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

Единственное, что я не пробовал, это <img src="logo11w.png"> и копирование изображения в папку, потому что я не знаю, в какую папку мне следует скопировать файл logo11w.png.

Любой предложения?

Author: Simon East, 2014-02-28

6 answers

У меня была та же проблема с отображением изображений PNG, что и [X] при создании PDF-файлов с помощью mPDF.

Я добавил: $mpdf->showImageErrors = true;

После: $mpdf = new Mpdf();

И получил сообщение об ошибке:

Библиотека GD, необходимая для изображения PNG (альфа-канал)#

Итак, после запуска apt-get install php5-gd создание PDF с помощью PNG сработало как чудо!

 50
Author: ddn, 2015-01-26 14:09:27

Включение изображений в mPDF довольно сложно. У меня тоже были некоторые проблемы. Я обнаружил еще больше проблем.

Сначала вы должны включить переменную отладки:

$mpdf = new mPDF();    
$mpdf->showImageErrors = true;

Обычно у людей не установлен модуль GD для PHP. На компьютере с Linux выполните:

sudo apt-get install php5-gd
sudo service apache2 restart

На серверах Windows, php_gd2.dll включен в стандартную установку PHP, но по умолчанию не включен. Чтобы включить его, раскомментируйте extension=php_gd2.dll строка в вашем файле php.ini (удалите # из начала этой строки) и перезапустите расширение PHP. [1]

Если вы получите эту ошибку, вы, вероятно, увидите [x] изображение:

Ошибка MPDF: Ошибка ИЗОБРАЖЕНИЯ (http://www.domain.com/directory/image.jpg ): Не удалось найти файл изображения

Проверьте URL-адрес, существует ли ваше изображение и доступно ли оно. Если да, то вы можете попробовать изменить абсолютный URL на относительный. Вы можете попробовать обе версии:

<img src="directory/image.jpg">
<img src="./directory/image.jpg">

На самом деле у меня тоже был проблема с форматами PNG. Преобразованное изображение PNG в JPG работало нормально.

Связывание в шаблонах mPDF должно быть таким же, как и для всей вашей платформы/системы.

 16
Author: pevac, 2014-09-26 18:19:17

Я столкнулся с той же проблемой после переноса скрипта.

Проблема заключалась в том, что каталог tmp внутри папки mpdf был недоступен для записи. Я надеюсь, что это кому-то поможет.

 5
Author: Dimitri L., 2017-10-23 12:43:07

Хорошо. После последнего комментария к вопросу (14:30). Здесь тот же самый код, который работает с mPDF 5.4. И он сохраняет его вывод в каталоге сценариев как test.pdf. Проблемы с брандмауэром?

Отредактированный

У меня есть следующие каталоги/файлы:

  • изображения
    • wallpaper01.jpg
    • wallpaper02.jpg
  • index.php (исходный код)

Таким образом, эти файлы изображений относительно начинаются с каталога скриптов как похоже на то.

require_once __DIR__ . DIRECTORY_SEPARATOR . 'MPDF/mpdf.php';

try {
    $mpdf = new mPDF(); 
    $mpdf->WriteHTML('<img src="images/wallpaper01.jpg" alt="" width="480">');
    $mpdf->WriteHTML('<img src="images/wallpaper02.jpg" alt="" width="480">');
    $mpdf->Output(__DIR__ . DIRECTORY_SEPARATOR . 'test.pdf', 'F');
} catch(Exception $e) {
    echo $e;
}

Полностью рабочий пример (скачать)

 1
Author: KoalaBear, 2014-02-28 21:35:02

Для меня это работает на данный момент. Надеюсь, это кому-нибудь поможет.

Решение: Попробуйте относительный путь изображения вместо URL. Изображение должно быть размещено на том же сервере.

Пример:/var/www/mysite/image/xyz.jpg

 0
Author: Krupal Patel, 2017-10-09 10:05:39

Измените, чтобы удалить вторую строку перед инициализацией $html , которая в то время не была определена. новый код будет выглядеть следующим образом

$mpdf = new mPDF();
$html= "<img src='https://www.google.pl/images/srpr/logo11w.png' alt=''>";
$mpdf->WriteHTML($html);
$mpdf->debug = true; 
$output = $mpdf->Output(); 
exit();
 -1
Author: user2706194, 2014-02-28 11:48:44