изображение, не показывающее использование mpdf под exeoutput для php - PullRequest
0 голосов
/ 19 февраля 2019

Я использую EXEOUTPUT для PHP, чтобы создать настольное приложение с использованием платформы Codeigniter.На всех веб-страницах отображается изображение, хранящееся в поле BLOB MYSQL, но только pdf, созданный с помощью библиотеки mpdf, не может отобразить изображение.

Когда я запускаю тот же код в браузере, отображается изображение.Даже когда я использую базовый URL, как http://localhost/applicationname/, изображение отображается.Но когда я выполняю тот же код внутри Exeoutput для PHP, используя http://heserver/ в качестве базового URL, изображение не отображается.

$config['base_url'] = 'http://heserver/';
//$config['base_url'] = 'http://localhost/applicationname/';

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

Я пробовал все следующие варианты:

$top.='<img width="40px" src="logo.png"/>'; //accessing from file system
$top.='<img width="40px" src="data:image/png;base64,'.base64_encode($this->session->userdata('logo')).'"/>'; //accessing from database
$top.='<img width="30px" src="'.exo_getglobalvariable('HEPubStorageLocation', '').'rs\logo.png" />' //accessing through variable provided by exeoutput4php tool

ob_clean();
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="'.$billno.'.pdf"');
header('Content-Transfer-Encoding: binary');
header('Accept-Ranges: bytes');
include($_SERVER['DOCUMENT_ROOT']."/application/views/admin/mpdf/vendor/autoload.php");
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML($top);
$mpdf->SetJS('this.print();');
$mpdf->Output();
exit;

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

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

Пожалуйста, предложите какое-нибудь решение.

1 Ответ

0 голосов
/ 19 февраля 2019

Большинство библиотек PDF не смогут встроить изображения, если вы не обратитесь к ним с помощью $_SERVER superglobal, потому что им нужен не URI для изображения (https://example.com/directory/file.jpg), а путь к изображению(/home/user/directory/directory/.../file.jpg).

попробуйте ссылаться на ваши изображения (для целей экспорта в PDF), например:

<img src="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>/assets/pdf_images/logo.png" border="0" width="174" height="38">

(это прямо из моего собственного кода, измените путь и атрибуты наподходит под себя)

...