0

我从画布上捕获了一张图像,并通过 ajax post 方法将其发送到我的 php 文件。

在这里,我需要将其放回具有文件类型和扩展名的 png 中。因为我将使用 fpdf 将此新图像添加到 pdf 中。

这是我的代码。我只剩下一个损坏的图像链接图标。

<?php 
require_once('fpdf/fpdf.php');
require_once('fpdi/fpdi.php');
$imgEmbed = $_POST['embed'];

//convert base64 string into an image file by wrapping
//it in the png container

$parts = explode(',',$imgEmbed);
$data = $parts[1];
$data = base64_decode($data);

header('Content-Type:image/png');

$pdf =& new FPDI();
$pdf->AddPage();

//Set the source PDF file
$pdf->setSourceFile("test2.pdf");

//Import the first page of the file
$tppl = $pdf->importPage(1);

//Use this page as template
// use the imported page and place it at point 20,30 with a width of 170 mm
$pdf->useTemplate($tppl, null, null, 215.9, 279.4, TRUE);

//Select Arial italic 8
$pdf->SetFont('Helvetica');
$pdf->SetTextColor(0,0,0);
$pdf->SetXY(100, 100);
$pdf->Write(0, 'This is just a simple text');
$pdf->Image($newIm,null,null,150,100);// x y h w 'png'

$pdf->Output("custom.pdf", "I"); // d send to browser, F send to local
// I auto open in browser window.
?>  
4

1 回答 1

1

$newIm='test.png';<br> if(exif_imagetype($newIm)==IMAGETYPE_PNG) {<br> $file_type="PNG";<br> }elseif (exif_imagetype($newIm) ==IMAGETYPE_JPEG) {<br> $file_type="JPG";<br> }<br> $pdf->Image($newIm,null,null,150,100,$file_type);<br>

在 Fpdf 中,图像语法逐个像素地读取整个图像,如果图像库是 png 并且我们将扩展名作为 test.jpg ,那么它会给出一个错误,所以在这里我使用了 exif_imagetype() 这会给我图像图像的类型。然后我将在语法中传递这个 $file_type 以获得结果。在我的情况下它已经工作了。

于 2015-05-19T06:05:10.850 回答