2010-09-08 65 views
5

Tôi muốn chèn hình ảnh vào tệp PDF đã tạo của mình. Tuy nhiên, nó sẽ không có vị trí nào cả.Hiển thị hình ảnh bằng PDF sử dụng fpdf

Nếu tôi làm điều này:

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

Các hình ảnh sẽ xuất hiện tuy nhiên, chúng quá lớn.

Nếu tôi làm điều này:

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

Không phải tất cả các hình ảnh sẽ xuất hiện. Chỉ 1 hình ảnh trên mỗi trang sẽ xuất hiện nhưng với kích thước phù hợp.

Thực ra, tôi đang chèn hình ảnh trong vòng lặp while. Những gì tôi muốn hiển thị trong file pdf là: (theo thứ tự)

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

Trả lời

5

Nếu một trang có chứa nhiều hình ảnh sau đó có thể được hình ảnh của bạn được đặt trên mỗi khác. Bạn nên thay đổi vị trí cho mỗi hình ảnh trên một trang. Hãy thử một cái gì đó như thế này.

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

Tương tự như Naveed, nhưng hoàn chỉnh hơn một chút với phần còn lại của dữ liệu hàng. Bí quyết là để nắm bắt vị trí X và Y trước khi đặt hình ảnh và sau đó đặt thủ công abscissa ("vị trí") đến vị trí thích hợp, cho hình ảnh mới.

$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); 
} 
Các vấn đề liên quan