Отображение изображения в PDF с использованием fpdf - PullRequest
6 голосов
/ 08 сентября 2010

Я хочу вставить изображение в созданный файл PDF.Однако, это не будет хорошо позиционироваться вообще.

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

$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)

Ответы [ 2 ]

7 голосов
/ 29 сентября 2010

Аналогично 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);
}
5 голосов
/ 08 сентября 2010

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

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