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
.
Любой предложения?
6 answers
У меня была та же проблема с отображением изображений PNG, что и [X] при создании PDF-файлов с помощью mPDF.
Я добавил: $mpdf->showImageErrors = true;
После: $mpdf = new Mpdf();
И получил сообщение об ошибке:
Библиотека GD, необходимая для изображения PNG (альфа-канал)#
Итак, после запуска apt-get install php5-gd
создание PDF с помощью PNG сработало как чудо!
Включение изображений в 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 должно быть таким же, как и для всей вашей платформы/системы.
Я столкнулся с той же проблемой после переноса скрипта.
Проблема заключалась в том, что каталог tmp
внутри папки mpdf был недоступен для записи. Я надеюсь, что это кому-то поможет.
Хорошо. После последнего комментария к вопросу (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;
}
Для меня это работает на данный момент. Надеюсь, это кому-нибудь поможет.
Решение: Попробуйте относительный путь изображения вместо URL. Изображение должно быть размещено на том же сервере.
Пример:/var/www/mysite/image/xyz.jpg
Измените, чтобы удалить вторую строку перед инициализацией $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();