2012-11-04 89 views
0

我正在創建一個pdf生成頁面,上面有一張表用於開發票,我使用的是FPDF。可變單元格高度fpdf

我想改變每行的單元高度,以根據第一列的高度$column_item_name而變化。這樣做的原因是我可以將項目描述添加到與名稱相同的字段中,並且不會丟棄其餘的行。

我想我理解這個概念。單元格GetY,設置爲變量,使用變量作爲高度,但是我似乎錯過了一些東西,因爲還沒有設法使它變得有效。不幸的是我必須回滾,所以沒有我嘗試過的副本。

爲表目前代碼:

//First create each Field Name 
//Gray color filling each Field Name box 
$pdf->SetFillColor(232,232,232); 
//Bold Font for Field Name 
$pdf->SetFont('Arial','B',11); 
$pdf->SetY($Y_Fields_Name_position); 
$pdf->SetX(10); 
$pdf->Cell(100,6,'Description',1,0,'L',1); 
$pdf->SetX(110); 
$pdf->Cell(30,6,'Rate',1,0,'L',1); 
$pdf->SetX(140); 
$pdf->Cell(30,6,'Quantity',1,0,'R',1); 
$pdf->SetX(170); 
$pdf->Cell(30,6,'Price',1,0,'R',1); 
$pdf->Ln(); 


//Now show the 4 columns 
$pdf->SetFont('Arial','',10); 
$pdf->SetY($Y_Table_Position); 
$pdf->SetX(10); 
$pdf->MultiCell(100,6,$column_item_name,1); 
$pdf->SetY($Y_Table_Position); 
$pdf->SetX(110); 
$pdf->MultiCell(30,6,$column_unit_price,1,'R'); 
$pdf->SetY($Y_Table_Position); 
$pdf->SetX(140); 
$pdf->MultiCell(30,6,$column_quantity,1,'R'); 
$pdf->SetY($Y_Table_Position); 
$pdf->SetX(170); 
$pdf->MultiCell(30,6,$column_total_price,1,'R'); 
$pdf->SetX(140); 
$pdf->MultiCell(30,6,'Total (exc VAT)',1,'R'); 
$pdf->SetY($Y_Table_Position + ($number_of_products * 6)); 
$pdf->SetX(170); 
$pdf->MultiCell(30,6,'£ '.$total,1,'R'); 
$pdf->SetX(140); 
$pdf->MultiCell(30,6,$vat3,1,'R'); 
$pdf->SetY($Y_Table_Position + (($number_of_products + 1) * 6)); 
$pdf->SetX(170); 
$pdf->MultiCell(30,6,'£ '.$vat2,1,'R'); 
$pdf->SetX(140); 
$pdf->MultiCell(30,6,'Total (inc VAT)',1,'R'); 
$pdf->SetY($Y_Table_Position + (($number_of_products + 2) * 6)); 
$pdf->SetX(170); 
$pdf->MultiCell(30,6,'£ '.$total_inc_vat,1,'R'); 

任何意見將不勝感激。

親切的問候,

n00bstacker

+0

假設這不是完整的代碼是正確的嗎?就我所知,使用MultiCell,您需要定義寬度和高度 - 就像您已經完成的一樣。你有沒有找過wkhtml2pdf(http://code.google.com/p/wkhtmltopdf/)呢?製作表格可以非常簡單(或其他任何呈現爲網頁的內容)。 – dakdad

+0

更正這只是特定的表代碼。我想繼續使用FPDF,因爲它非常適合我想實現的目標 - 謝謝 – n00bstacker

回答

-3

上有fpdf.org網站,在表格處理高度可變的排幾個腳本。我收集了標題爲「表」一章中的主要方法,我 免費 (不再是免費的)書在:

http://basepath.com/PDFbook

如果你想在第一列以建立行的高度,而這最高的列,這是我在那裏提供的RowX函數的一個簡單變體。

+0

我轉向了其他方面 - 但下次有這個問題時會回來。謝謝 – n00bstacker

+0

書不是免費的,前10頁是。 – Lohardt

+0

2013年1月免費。 –