tworząc plik PDF napotkałem na pewien problem. Otóż do tworzonego dokumentu chcę dodać obrazek, nieistotny jest jego typ, a głównie to, że jest on tworzony w locie, co widoczne jest w funkcji createPNG, jej kod zawarłem poniżej. Tablica $images zawiera fizyczne ścieżki do plików png, z których tworzony jest jeden wyjściowy. I tutaj wszystko działa poprawnie do momentu, kiedy funkcja ta jest parametrem metody klasy fpdf->Image(). Otrzymuję komunikat błędu: FPDF error: Image file has no extension and no type was specified. Sam w sobie błąd oczywiście rozumiem, jednak, niebardzo wiem, w jaki sposób mogę go rozwiązać, obejść, czy istnieje osoba, która jest w stanie mi pomóc?
Dodanie obrazka do pliku pdf.
Kod
$pdf->Image($this->createPNG($tableImages2PDF),160,65,20);
Kod tworzący obrazek.
Kod
$obrazek = @imagecreatefrompng('./files/framework/createPngBg.png');color(2000, 2000);
for($i=0;$i<sizeof($images);++$i){
list($width, $height, $type, $attr) = @getimagesize($images[$i]);
$images[$i] = @imagecreatefrompng($images[$i]);
$sizes[$i][0]=$width;
$sizes[$i][1]=$height;
}
$imgWidth=ustawienia::$modelWidth;
$imgHeight=ustawienia::$modelHeight;
if(sizeof($sizes)>0){
$imgWidth=$sizes[0][0];
$imgHeight=$sizes[0][1];
}
for($i=0;$i<sizeof($images);++$i) {
imagecolortransparent($images[$i],imagecolorexact($images[$i],0,0,0));
imagealphablending($images[$i], false); imagesavealpha($images[$i], true);
}
for($i=0;$i<sizeof($images);++$i) {
ImageCopyResampled($obrazek ,$images[$i], 0, 0, 0, 0, $imgWidth, $imgHeight, $imgWidth, $imgHeight);
}
@imagealphablending($obrazek, false);
@imagesavealpha($obrazek, true);
@imagepng($obrazek, NULL);
for($i=0;$i<sizeof($images);++$i)
@imagedestroy($images[$i]);
@imagedestroy($obrazek);
for($i=0;$i<sizeof($images);++$i){
list($width, $height, $type, $attr) = @getimagesize($images[$i]);
$images[$i] = @imagecreatefrompng($images[$i]);
$sizes[$i][0]=$width;
$sizes[$i][1]=$height;
}
$imgWidth=ustawienia::$modelWidth;
$imgHeight=ustawienia::$modelHeight;
if(sizeof($sizes)>0){
$imgWidth=$sizes[0][0];
$imgHeight=$sizes[0][1];
}
for($i=0;$i<sizeof($images);++$i) {
imagecolortransparent($images[$i],imagecolorexact($images[$i],0,0,0));
imagealphablending($images[$i], false); imagesavealpha($images[$i], true);
}
for($i=0;$i<sizeof($images);++$i) {
ImageCopyResampled($obrazek ,$images[$i], 0, 0, 0, 0, $imgWidth, $imgHeight, $imgWidth, $imgHeight);
}
@imagealphablending($obrazek, false);
@imagesavealpha($obrazek, true);
@imagepng($obrazek, NULL);
for($i=0;$i<sizeof($images);++$i)
@imagedestroy($images[$i]);
@imagedestroy($obrazek);