0

我有一个 base64 png 图像。
我想在 FPDF 中使用它

我这样创建它:

var dataURI = canvas.toDataURL("image/png");

并将其发送到 FPDF,如下所示:

$('#send').click(function(e){
    e.preventDefault(); 
    var uri = "create_pdf.php?imgURI="+ dataURI;
    window.open ( uri, "Temp wind" );
});

在里面create_pdf.php我有:

require('fpdf.php');

$img = $_GET['imgURI'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);

$pdf = new FPDF();
$pdf->AddPage();
$pdf->Image( $data, 0, 0, 200 );

$pdf->Output( "myimage.pdf", 'D' );

而不是通常提示保存 PDF 我得到这个错误:

图像文件没有扩展名,也没有指定类型:�PNG IHDRSJ����IDATx......

如何正确发送 base64 编码图像?

4

2 回答 2

1

似乎 pfdf 将保存的 iamge 作为参数,而不是 base64 在这里尝试答案

于 2013-02-19T17:05:22.393 回答
0

FPDF image() 函数根据应该包含文件路径的 $file 字符串检查文件类型。如果您在可选参数中提供一个类型,例如“png”,您可以克服这部分。

之后,FPDF 将尝试在其 _parsepng 和 _parsejpg 函数中打开 $file,以便您可以轻松地使用数据包装器 http://www.php.net/manual/en/wrappers.data.php

$fpdf->Image('data://image/png;base64,'.$image_data,null, null, 0, 0, 'png');
于 2014-02-17T14:16:05.350 回答