2010-09-08 2 views
5

Я хочу вставить изображение в свой файл PDF. Однако он вообще не будет позиционировать.Показать изображение в формате PDF с использованием fpdf

Если я это сделать:

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

Изображения будут появляться, однако, они слишком большие.

Если я делаю это: появится

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

Не все изображения. Отобразится только 1 изображение на страницу, но с нужного размера.

На самом деле, я вставляю изображение внутри цикла while. То, что я хотел бы, чтобы отобразить в файле PDF находится: (в порядке убывания)

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

ответ

5

Если одна страница содержит много изображений, то может быть ваши изображения размещены на друг друга. Вы должны изменить положение для каждого изображения на одной странице. Попробуйте что-то вроде этого.

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

Похож на Naveed, но немного более полный с остальными данными вашей строки. Хитрость заключается в том, чтобы захватить позицию X и Y перед размещением изображения, а затем вручную установить абсцисс («положение») на нужное место, учитывая новое изображение.

$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); 
} 
Смежные вопросы