2010-08-12 68 views
19

Tôi đang cố chèn hình ảnh nhưng không muốn chỉ định toạ độ x và y. Điều đó có thể không?Chèn hình ảnh bằng PHP và FPDF

$pdf->Image($image1, 5, 70, 33.78); 

Tôi muốn có thể chỉ định kích thước (33,78) chứ không phải x và y sao cho nó di chuyển dựa trên nội dung.

$pdf->Write(70, $reportTitle); 
$pdf->Ln(45); 
$pdf->SetFont('Arial', '', 12); 
$pdf->Write(6, $reportSubtitle); 

/** 
    Create product 1 
**/ 
$pdf->Ln(10); 
$pdf->SetFont('Arial', '', 12); 
$pdf->Write(6, $prod1title); 
$pdf->Ln(30); 
$pdf->SetFont('Arial', '', 10); 
$pdf->Write(5, $prod1sub); 
$pdf->Ln(30); 
$pdf->Image($image1, 5, 70, 33.78); 

Ở trên là mã tôi sử dụng. Nếu $ reportSubtitle là hai hoặc ba dòng, nó sẽ đẩy $ prod1title và $$ prod1sub xuống, và chắc chắn dưới hình ảnh được sửa. Không có cách nào để hình ảnh hoạt động giống như tiêu đề sản phẩm và phụ đề và bị đẩy xuống quá trong khi vẫn tuyên bố kích thước?

Trả lời

39

Tôi đã tìm ra, và nó thực sự khá thẳng về phía trước.

Đặt biến của bạn:

$image1 = "img/products/image1.jpg"; 

Sau đó ceate một ô, vị trí của nó, sau đó chứ không phải là thiết lập nơi hình ảnh là, sử dụng biến mà bạn đã tạo ở trên như sau:

$this->Cell(40, 40, $pdf->Image($image1, $pdf->GetX(), $pdf->GetY(), 33.78), 0, 0, 'L', false); 

Bây giờ các tế bào sẽ di chuyển lên và xuống với nội dung nếu các tế bào khác xung quanh nó di chuyển.

Hy vọng điều này sẽ giúp những người khác trong cùng một chiếc thuyền.

9

Bạn có thể sử dụng $pdf->GetX()$pdf->GetY() để nhận đồng bộ hiện tại và sử dụng chúng để chèn hình ảnh.

$pdf->Image($image1, 5, $pdf->GetY(), 33.78);

hoặc thậm chí

$pdf->Image($image1, 5, null, 33.78);

(mặc dù trong trường hợp đầu tiên bạn có thể thêm một số để tạo ra một chút của một không gian)

$pdf->Image($image1, 5, $pdf->GetY() + 5, 33.78);

-1

Bạn có thể' t coi một tệp PDF giống như tài liệu HTML. Hình ảnh không thể "trôi nổi" trong một tài liệu và có những thứ lưu thông xung quanh chúng hoặc dòng chảy với văn bản xung quanh. FPDF cho phép bạn nhúng html vào một khối văn bản, nhưng chỉ vì nó phân tích các thẻ và thay thế <i><b> và cứ thế với các lệnh tương đương Postscript. Nó không đủ thông minh để tự động đặt một hình ảnh.

Nói cách khác, bạn phải chỉ định tọa độ (và nếu không, tọa độ vị trí hiện tại sẽ được sử dụng anyways).

+0

Xem chỉnh sửa của tôi ở trên. – Carson

+0

Hầu hết bạn có thể thử tính cỡ chữ (có thể với 'GetStringWidth()' và xem liệu nó có cần điều chỉnh tọa độ của ảnh hay không, nhưng một lần nữa, bạn KHÔNG thể chèn hình ảnh vào PDF mà không cung cấp tọa độ. không thể điều chỉnh tọa độ dựa trên nội dung khác, nhưng bạn không thể chèn một cách mù quáng. –

2
$image="img_name.jpg"; 
$pdf =new FPDF(); 
$pdf-> AddPage(); 
$pdf-> SetFont("Arial","B",10); 
$pdf-> Image('profileimage/'.$image,100,15,35,35); 
+0

Chào mừng bạn đến với StackOverflow! Trong khi câu trả lời luôn được đánh giá cao, câu hỏi này được hỏi 6 năm trước và đã có giải pháp được chấp nhận. đưa câu hỏi lên đầu bằng cách cung cấp câu trả lời cho họ, trừ khi câu hỏi chưa được đánh dấu là đã được giải quyết hoặc bạn đã tìm thấy phương pháp thay thế tốt hơn đáng kể cho vấn đề.Ngoài ra hãy đảm bảo cung cấp ngữ cảnh để giải thích đầy đủ cách mã của bạn giải quyết vấn đề trong tầm tay :) –

+0

Nó hoạt động tốt tại FPDF 1.6 – 151291

Các vấn đề liên quan