【问题标题】:Image not found or type unknown Dompdf 0.8.1 and CodeIgniter找不到图像或类型未知 Dompdf 0.8.1 和 CodeIgniter
【发布时间】:2022-04-01 00:36:04
【问题描述】:

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

我已将 isRemoteEnabled 设置为 true 并且 生成的二维码工作正常

这是我的代码。

$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">

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

提前致谢。

干杯。

【问题讨论】:

  • echo $qrlink 并发布输出
  • intra.mydomain.go.id/generateQR?text=123 注意:服务器内网。它在本地主机上工作正常,但在服务器@DeadManAlive 上不工作
  • 这不是正确的intra.mydomain.go.id/generateQR?text=123图像文件扩展名

标签: php codeigniter dompdf


【解决方案1】:

我遇到了类似的问题,经过数小时的互联网搜索后,我发现(感谢 AtiruzDompdf 确实 NOT 可以很好地渲染图像远程网址,例如http://your-domain.com/com/images/img.png" /> 总是给我同样的错误 [图片未找到或类型未知]。在我的情况下***强文本*** 我必须使用 base64 编码的图像,它似乎已经解决了我的问题。

我写了一个小sn-p,它可以将你的图像编码成base64并返回一个字符串以在你的标签中使用。

这里是如何使用base64编码数据作为你的img src

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

这里是将你的图片转换成base64编码的图片数据的sn-p

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 ( $img_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;
}

我希望这对那里的人有所帮助!

【讨论】:

    【解决方案2】:

    我在使用 pdf 时遇到了同样的问题,我用这个函数解决了

    function encode_img_base64($img_path = false): string
    {
        if($img_path){
            $path = $img_path;
            $type = pathinfo($path, PATHINFO_EXTENSION);
            $data = file_get_contents($path);
            return 'data:image/' . $type . ';base64,' . base64_encode($data);
        }
        return '';
    }
    

    【讨论】:

      猜你喜欢
      • 2017-03-16
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      相关资源
      最近更新 更多