Ik heb een script waarmee ik plaatjes en opgemaakte tekstblokken in een PDF zet. De PDF is een A4 en bestaat uit een enkele pagina.
Gewone plaatjes en tekst werkt allemaal perfect, maar zodra er een variabel plaatje gegenereerd moet worden gaat t mis.
Ik krijg niet eens een foutmelding of wat dan ook, maar een "pagina kan niet worden weergegeven" melding!
Ik kan r dus met geen mogelijkheid achterkomen wat er nou misgaat.
Hieronder volgt de functie om een plaatje in de pagina te zetten:
($editable kan 1 of 0 zijn en wil zeggen of er een variabel plaatje gegenereerd moet worden)
Gewone plaatjes en tekst werkt allemaal perfect, maar zodra er een variabel plaatje gegenereerd moet worden gaat t mis.
Ik krijg niet eens een foutmelding of wat dan ook, maar een "pagina kan niet worden weergegeven" melding!
Ik kan r dus met geen mogelijkheid achterkomen wat er nou misgaat.
Hieronder volgt de functie om een plaatje in de pagina te zetten:
($editable kan 1 of 0 zijn en wil zeggen of er een variabel plaatje gegenereerd moet worden)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| function pdf_image($pdf,$editable,$source,$x,$y,$w,$h){ if($editable){ $font = realpath("../../fonts/verdana.ttf"); $img = imagecreate($w,$h); $light = imagecolorallocate($img,229,228,232); $dark = imagecolorallocate($img,77,77,77); imagerectangle($img,0,0,$w-1,$h-1,$dark); imageline($img,1,1,$w-2,$h-2,$dark); imageline($img,1,$h-2,$w-2,1,$dark); $font_size = 0; $text1 = "variabele afbeelding:"; $dxt = 0; $dyt = 0; while(($dxt < ($w - 50)) && ($dyt < 50)){ $font_size++; $size = imagettfbbox($font_size,0,$font,$text1); $dxt = abs($size[2] - $size[0]); $dyt = abs($size[5] - $size[3]); $xt = (($w - $dxt) / 2) - 1; $yt = $dyt + 3; } imagettftext($img,$font_size,0,$xt,$yt,$dark,$font,$text1); $font_size = 0; $text2 = substr($source,strrpos($source,"=")+1); $dxt = 0; $dyt = 0; while(($dxt < ($wt - 50)) && ($dyt < ($h - 50))){ $font_size++; $size = imagettfbbox($font_size,0,$font,$text2); $dxt = abs($size[2] - $size[0]); $dyt = abs($size[5] - $size[3]); $xt = (($w - $dxt) / 2) - 1; } imagettftext($img,$font_size,0,$xt,$h-10,$dark,$font,$text2); $pdfimage = pdf_open_memory_image($pdf, $img); imagedestroy($img); $scale = 1; } else{ $strs = explode(".",$source); $extension = strtolower($strs[count($strs)-1]); if($extension=="jpg") $imagetype = "jpeg"; else if($extension=="tif") $imagetype = "tiff"; else $imagetype = $extension; $pdfimage = pdf_open_image_file($pdf, $imagetype, $source); $size = getimagesize($source); $scale = $w / $size[0]; } $x = $x - 11; $y = 842 - $y - $h + 10; pdf_place_image($pdf,$pdfimage,$x,$y,$scale); pdf_close_image($pdf,$pdfimage); } |