未找到图像或输入未知的Dompdf 0.8.1和CodeIgniter

时间:2018-02-07 03:38:13

标签: php codeigniter dompdf

我想从生成的图片中将图片加载到PDF。

我已将 isRemoteEnabled设置为true 和 生成的QRCode工作正常

这是我的代码。

$this->load->library(array('pdf', 'ciqrcode'));

$data = array('qrlink' => base_url('generateQR?text=123'));
$this->pdf->set_paper('folio');
$this->pdf->loadHtml($this->load->view('pdfoutput', $data, true));
$this->pdf->set_base_path(base_url());
$this->pdf->render();
$this->pdf->stream('QR-PDF', array("Attachment" => false));

这是我的观点

<img src="<?= $qrlink ?>" alt="QRcode" width="150px">

但输出结果显示未找到图像或未知类型。 那我该怎么办?

提前致谢。

干杯。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,经过数小时的网络搜索,我发现(由于Atiruz Dompdf 不会渲染图像与远程URL很好,例如 http://your-domain.com/com/images/img.png“ /> 总是给我相同的错误[找不到图像或键入未知]。 ***我不得不使用base64编码的图像,它似乎已经解决了我的问题。

我写了一个小片段,可以将您的图像编码为base64,并返回一个在标记内使用的字符串。

以下是如何将base64编码数据用作img src

//Use a valid base64 encoded data string
<img src="your-base64-encoded-image-string" />

以下是将您的图像转换为以base64编码的图像数据的代码段

function encode_img_base64( $img_path = false, $img_type = 'png' ){
    if( $img_path ){
        //convert image into Binary data
        $img_data = fopen ( $img_path, 'rb' );
        $img_size = filesize ( $img_path );
        $binary_image = fread ( $image_data, $img_size );
        fclose ( $img_data );

        //Build the src string to place inside your img tag
        $img_src = "data:image/".$img_type.";base64,".str_replace ("\n", "", base64_encode ( $binary_image ) );
        return $img_src;
    }
    return false;
}

我希望这对外面的人有帮助!