TCPDF не отображает изображение с помощью writeHTML

этот вопрос кажется вечнозеленым на TCPDF …
У меня проблема, которая сводит меня с ума.

У меня есть html-код, который я использую как «шаблон» для моего PDF-документа, здесь у меня есть логотип моей компании.
Все работает нормально на localhost (Windows), но когда я перехожу в онлайн, изображение не отображается.
Обратите внимание: я не получаю никакой ошибки (т. Е. Невозможно получить ошибку изображения ) в моем PDF-изображении, просто пусто!
Infact, если я нажимаю на PDF в том месте, где должны быть изображения, я могу выбрать его, а Adobe включает опцию «Копировать изображение».

Очевидно, что изображение существует, здесь, и разрешение правильное.
Если я пытаюсь поработать там или просматривать сгенерированную HTML-страницу, все в порядке.

Это код PHP:

$pdf->SetMargins($params->get('pdfMarginLeft', 15), $params->get('pdfMarginTop', 27), $params->get('pdfMarginRight', 15)); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); $pdf->SetFont('helvetica', '', 8); $pdf->AddPage(); $pdf->writeHTML($html, true, false, true, false, ''); $pdf->lastPage(); 

Тогда это мой HTML-код (я просто пропустил все, кроме изображения):

 <img alt="logo black" src="../images/logo_black.png" height="60" width="210" /> 

Я пробовал с URL (относительный и абсолютный) и с путём (относительным и абсолютным), проблема все еще возникает. Есть идеи?

Поскольку все работает локально, вы можете попробовать изменить тип изображения с png на jpg и проверить после изменения кода и загрузить jpg на сервере.

Это не ваша проблема, но это возможное решение для людей с аналогичной проблемой в футурте. Убедитесь, что атрибуты HTML имеют двойные кавычки.

 $html = "<img src='...' />"; // This will not work $html = '<img src="..." />'; // This will work 

В моем случае тег IMG не работает, пока я не напишу полный путь к файлу

Не работает

 <img src="/pdfrender/XXX.jpg" width="50" height="50"> 

Рабочий (пример localhost)

 <img src="http://img.ruphp.com/php/XXX.jpg" width="50" height="50"> 

Вы можете преобразовать тип изображения «jpg / png» в base64. <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgA...."/> это может вам помочь!

Я реализовал str_replace для изображения src, и теперь это работает нормально.

 $html = str_replace("../images", $_SERVER["DOCUMENT_ROOT"] . '/images', $html); 

Я должен был «сохранить» изображения:

 $image = 'images/logo_example.png'; imagepng(imagecreatefrompng($image),$image); 

Тогда это сработало.