2014-03-12 191 views
1

好吧,我有一個FPDF文檔,我用PHP編寫,在這個頁面中,我有一個使用set x和Y定位完美的logo,並且工作正常。對齊FPDF文本旁邊的圖像

我想現在要做的是在標題旁邊添加一個圖像,現在我再次可以用x和y來定位它。問題是頁面中的信息是動態的,因此設置x和y將意味着標題可能會移動,但圖像不會。

此刻我的圖像和單元格設置如下,但標題總是坐在圖像下方一行,我找不到它們坐在同一行上。

$pdf->Image('images/school.png'); 
$pdf->Cell(10,10,"Education",0,1,'L'); 

回答

4

不幸的是,FPDF不知道如何將文本浮動到圖像旁邊。但是,通常存在解決方法。下面的方法寫入一個浮動圖像。請注意,您必須指定圖像的高度。它應該很容易重寫它也讓你指定寬度或沒有。

class FloatPDF extends FPDF 
{ 
    public function floatingImage($imgPath, $height) { 
     list($w, $h) = getimagesize($imgPath); 
     $ratio = $w/$h; 
     $imgWidth = $height * $ratio; 

     $this->Image($imgPath, $this->GetX(), $this->GetY()); 
     $this->x += $imgWidth; 
    } 
} 

這裏是一個演示:

$pdf = new FloatPDF(); 

$imgPath = "/logo.png"; 
$pdf->SetFont(self::FONT, 'B', 20); 
$height = 10; 

$pdf->floatingImage($imgPath, $height); 
$pdf->Write($height, " This is a text "); 
$pdf->floatingImage($imgPath, $height); 
$pdf->Write($height, " with floating images. "); 
$pdf->floatingImage($imgPath, $height); 

$pdf->Output('demo.pdf', 'D'); 

這裏是演示的樣子:

Floating images and text FPDF

哦,對了,你也難過,你有問題在調用$pdf->Image()之後,該單元打印在下一行。一個簡單的解決方法是將參數$pdf->Image()中的$y設置爲$pdf->getY()。如果未設置$y參數,FPDF會嘗試幫助並默認進行換行。