2010-09-08 29 views
5

Je veux insérer une image dans mon fichier PDF créé. Cependant, il ne sera pas bien positionné du tout.Afficher l'image en PDF en utilisant fpdf

Si je fais ceci:

$fpdf->Image($row_products['prod_imagelarge'], 10); 

Les images apparaîtront cependant, ils sont trop gros.

Si je fais ceci:

$fpdf->Image($row_products['prod_imagelarge'],30, 40, 40, 40); 

Pas toutes les images apparaîtront. Seulement 1 image par page apparaîtra mais avec la bonne taille.

En fait, j'insère une image dans une boucle while. Ce que je veux afficher dans le fichier pdf est: (pour)

-product name (works fine) 
-product image (the problem is here!) 
-product description (works fine) 

Répondre

5

Si une page contient de nombreuses images peuvent alors être vos images sont placées sur les uns des autres. Vous devez changer de position pour chaque image sur une page. Essayez quelque chose comme ça.

for($i=10; $i<=200; $i=$i+10) { 
    $fpdf->Image($row_products['prod_imagelarge'],30, $i, 40, 40); 
} 
7

Semblable à Naveed, mais un peu plus complète avec le reste de vos données de ligne. L'astuce consiste à capturer la position X et Y avant de placer l'image, puis de définir manuellement l'abscisse ("position") à l'endroit approprié, compte tenu de la nouvelle image.

$image_height = 40; 
$image_width = 40; 
while ($row_products = mysql_fetch_array($products)) { 
    $fpdf->Cell(0, 0, $row_products['prod_name'], 0, 2); 
    $fpdf->Cell(0, 0, $row_products['prod_description'], 0, 2); 

    // get current X and Y 
    $start_x = $fpdf->GetX(); 
    $start_y = $fpdf->GetY(); 

    // place image and move cursor to proper place. "+ 5" added for buffer 
    $fpdf->Image($row_products['prod_imagelarge'], $fpdf->GetX(), $fpdf->GetY() + 5, 
       $image_height, $image_width) 
    $fpdf->SetXY($start_x, $start_y + $image_height + 5); 
}