| 
<?phpdefine('FPDF_FONTPATH','font/');
 require('fpdf.php');
 
 class PDF extends FPDF
 {
 var $B;
 var $I;
 var $U;
 var $HREF;
 
 function PDF($orientation='P',$unit='mm',$format='A4')
 {
 //Call parent constructor
 $this->FPDF($orientation,$unit,$format);
 //Initialization
 $this->B=0;
 $this->I=0;
 $this->U=0;
 $this->HREF='';
 }
 
 function WriteHTML($html)
 {
 //HTML parser
 $html=str_replace("\n",' ',$html);
 $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
 foreach($a as $i=>$e)
 {
 if($i%2==0)
 {
 //Text
 if($this->HREF)
 $this->PutLink($this->HREF,$e);
 else
 $this->Write(5,$e);
 }
 else
 {
 //Tag
 if($e{0}=='/')
 $this->CloseTag(strtoupper(substr($e,1)));
 else
 {
 //Extract attributes
 $a2=explode(' ',$e);
 $tag=strtoupper(array_shift($a2));
 $attr=array();
 foreach($a2 as $v)
 if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
 $attr[strtoupper($a3[1])]=$a3[2];
 $this->OpenTag($tag,$attr);
 }
 }
 }
 }
 
 function OpenTag($tag,$attr)
 {
 //Opening tag
 if($tag=='B' or $tag=='I' or $tag=='U')
 $this->SetStyle($tag,true);
 if($tag=='A')
 $this->HREF=$attr['HREF'];
 if($tag=='BR')
 $this->Ln(5);
 }
 
 function CloseTag($tag)
 {
 //Closing tag
 if($tag=='B' or $tag=='I' or $tag=='U')
 $this->SetStyle($tag,false);
 if($tag=='A')
 $this->HREF='';
 }
 
 function SetStyle($tag,$enable)
 {
 //Modify style and select corresponding font
 $this->$tag+=($enable ? 1 : -1);
 $style='';
 foreach(array('B','I','U') as $s)
 if($this->$s>0)
 $style.=$s;
 $this->SetFont('',$style);
 }
 
 function PutLink($URL,$txt)
 {
 //Put a hyperlink
 $this->SetTextColor(0,0,255);
 $this->SetStyle('U',true);
 $this->Write(5,$txt,$URL);
 $this->SetStyle('U',false);
 $this->SetTextColor(0);
 }
 }
 
 $html='You can now easily print text mixing different
 styles : <B>bold</B>, <I>italic</I>, <U>underlined</U>, or
 <B><I><U>all at once</U></I></B>!<BR>You can also insert links
 on text, such as <A HREF="http://www.fpdf.org">www.fpdf.org</A>,
 or on an image: click on the logo.';
 
 $pdf=new PDF();
 //First page
 $pdf->AddPage();
 $pdf->SetFont('Arial','',20);
 $pdf->Write(5,'To find out what\'s new in this tutorial, click ');
 $pdf->SetFont('','U');
 $link=$pdf->AddLink();
 $pdf->Write(5,'here',$link);
 $pdf->SetFont('');
 //Second page
 $pdf->AddPage();
 $pdf->SetLink($link);
 $pdf->Image('logo.png',10,10,30,0,'','http://www.fpdf.org');
 $pdf->SetLeftMargin(45);
 $pdf->SetFontSize(14);
 $pdf->WriteHTML($html);
 $pdf->Output();
 ?>
 |