我有一个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的常规提示,而是收到此错误:
图片文件没有扩展名,也没有指定类型: PNGIHDRSJ IDATx......
如何正确发送base64编码的图像?
答案 0 :(得分:1)
似乎pdf将保存的图像作为参数,而不是base64 尝试回答here
答案 1 :(得分: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');