Изображение DOMPDF не отображается на сервере - PullRequest
0 голосов
/ 01 ноября 2019

Я столкнулся с очень распространенной ошибкой, что изображение не отображается на сервере, на локальном сервере, изображение по-прежнему отображается хорошо, я на самом деле посмотрел много ответов и попробовал много способов, но он все еще нене работает, пожалуйста, посмотрите на мой код.

require_once("./vendor/dompdf_new/autoload.inc.php");
use Dompdf\Dompdf; //v0.8.3

class Pdfgenerator {

public function generate($html, $filename='', $stream=TRUE, $paper = 'A4', $orientation = "portrait")
{

    $dompdf = new DOMPDF();
    $contxt = stream_context_create([
        'ssl' => [
            'verify_peer' => FALSE,
            'verify_peer_name' => FALSE,
            'allow_self_signed'=> TRUE
        ]
    ]);
    $dompdf->setHttpContext($contxt);
    $dompdf->loadHtml($html);
    $dompdf->set_option('isRemoteEnabled', true);
    $dompdf->set_option('isHtml5ParserEnabled', true);
    $dompdf->set_option('debugKeepTemp', TRUE);
    $dompdf->setPaper($paper, $orientation);
    $dompdf->render();
    if ($stream) {
        $dompdf->stream($filename.".pdf", array("Attachment" => 0));
    } else {
        return $dompdf->output();
    }
}
}

// Using other file =========================================================
public function index()
{
    // $this->load->library('pdfgenerator');
    // $path = 'https://xxxxx.xx/images/logo.png';
    // $type = pathinfo($path, PATHINFO_EXTENSION);
    // $data = file_get_contents($path);
    // $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
    // $html = '<img src = "'.$base64.'" /><p>text</p>';
    // $this->pdfgenerator->generate($html,'filename');

    $html = '<img src ="'.$_SERVER['DOCUMENT_ROOT'].'/images/logo.png" /><p>text</p>';
    $this->pdfgenerator->generate($html,'filename');

}

1 Ответ

0 голосов
/ 01 ноября 2019

Попробуйте изменить путь к изображению на относительный, например, "/images/logo.png" или "../images/logo.png", посмотрите, сработает ли это для вас.

...