2010-08-12 57 views
19

我試圖插入圖像,但不想指定x和y座標。那可能嗎?用PHP和FPDF插入圖像

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

我想能夠指定大小(33.78),但不是x和y,以便它基於內容移動。

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

以上是我使用的代碼。如果$ reportSubtitle是兩行或三行,它會將$ prod1title和$$ prod1sub向下推,並且不可避免地在固定的圖像下面。沒有辦法讓圖像像產品標題和副標題那樣行動,並且在宣佈尺寸的同時也被壓低了?

回答

39

我想通了,它實際上很簡單。

設置您的變量:

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

然後ceate細胞,它定位,然後,而不是設置在圖像是,使用上面創建的變量有以下幾點:

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

現在如果其周圍的其他單元格移動,單元格將隨內容上下移動。

希望這可以幫助他人在同一條船上。

9

您可以使用$pdf->GetX()$pdf->GetY()獲取當前cooridnates並使用它們插入圖像。

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

甚至

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

(儘管在第一種情況下,你可以添加一個數字來創造一個有點空間)

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

-1

你可以用」 t將HTML視爲一種HTML文檔。圖像不能在文檔中「浮動」,並讓東西在它們周圍流動,或與周圍文本一起流動。 FPDF允許您將html嵌入到文本塊中,但僅僅是因爲它解析了標籤,並用Postscript等效命令替換了<i><b>等等。動態放置圖像不夠智能。

換句話說,您必須指定座標(如果您不這樣做,則無論如何都會使用當前位置的座標)。

+0

看到我上面的修改。 – Carson 2010-08-12 20:05:46

+0

最多可以嘗試計算文本大小(也許用'GetStringWidth()'看看它是否需要調整圖像的座標。但是,不能在不提供座標的情況下將圖像插入到PDF中。無法根據其他內容調整座標,但不能盲目插入 – 2010-08-12 20:26:42

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

歡迎使用StackOverflow!雖然答案總是值得讚賞,但這個問題在6年前問過,並且已經有了一個可接受的解決方案,請儘量避免「通過向他們提供答案來將'問題'碰到頂部,除非問題還沒有被標記爲已解決,或者您找到了一個更好的替代方法來解決問題。還請確保提供上下文以全面解釋您的代碼如何解決手頭的問題:) – 2017-02-28 23:40:12

+0

它在FPDF 1.6上運行良好 – 151291 2017-05-27 11:33:49