2012-12-18 25 views
0

我試圖使用writeHTML腳本(這裏是:http://www.fpdf.org/en/script/script41.php)以及教程6(這裏是:http://www.fpdf.org/en/tutorial/tuto2.htm)的頁眉和頁腳。在頁眉/頁腳中使用FPDF的WriteHTML()

我的代碼如下所示:

<?php 
require_once('WriteHTML.php'); 

class PDF extends FPDF 
{ 
    // Page footer 
    function Footer() 
    { 

    $this->SetY(-30); 
    $this->SetFont('Arial','I',8);  
    $this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C'); 
    $html = '<p>some HTML</p>'; 

    $this->WriteHTML($html); 
    } 

    // Some more functions... header, PrintChapter etc... 
} 

$pdf = new PDF(); 
$pdf->SetTitle($title); 
$pdf->AddPage(); 
$pdf->PrintChapter(1,'A RUNAWAY REEF','test.txt'); // print text file content 
$pdf->Output(); 
?> 

,我發現了以下錯誤:

Call to undefined method PDF::WriteHTML() in /path/to/test2.php on line 15

缺少什麼我在這裏?

回答

2

您需要延長PDF_HTML而不是FPDF,因爲WriteHTMLPDF_HTML的一部分。

如果你想繼承工作,你總是需要擴展你想要使用的類。假設你想擴展PDF_Index,你仍然需要在某處繼承WriteHTML

也許

PDF extends PDF_Index 

PDF_Index extends PDF_HTML 

或者,

PDF_HTML extends PDF_Index 

但你同時需要在鏈,使其工作。

如果你不把兩者都放在繼承鏈中,那麼你不會使用你沒有使用的分支中的可用函數。

 ---> PDF_HTML 
    /
FPDF ----> PDF_Index ----> PDF 

的,在PDF_HTML功能將無法使用PDF

+0

這工作,但我似乎無法理解繼承鏈中的作品與更多的腳本。添加書籤和索引腳本,如果我將代碼更新爲'class PDF extends PDF_Index',例如'WriteHTML($ html);'停止再次運行... –

+0

感謝您的擴展解釋。奇蹟般有效。我現在每個腳本都擴展了前一個腳本,我希望我可以跟蹤所有包含的腳本:) –