 |
 |
|
|
 |
| |
 |
Downloads > Add-On |
 |
|
 |
| |
|
|
|
|
| |
Write HTML
InformationsAuthor: Aramis License: Freeware
DescriptionThis is an enhancement of the WriteHTML() method from tutorial 6. Two tags have been added: P
and HR. P with the ALIGN attribute equal to center allows to center a line. HR adds a
horizontal rule, either through the whole page or with a width given by the WIDTH attribute.
Source
<?php require('fpdf.php');
class PDF_HTML extends FPDF { var $B=0; var $I=0; var $U=0; var $HREF=''; var $ALIGN='';
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); elseif($this->ALIGN == 'center') $this->Cell(0, 5, $e, 0, 1, 'C'); else $this->Write(5, $e); } else { //Tag if($e{0}=='/') $this->CloseTag(strtoupper(substr($e, 1))); else { //Extract properties $a2=split(' ', $e); $tag=strtoupper(array_shift($a2)); $prop=array(); foreach($a2 as $v) if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$', $v, $a3)) $prop[strtoupper($a3[1])]=$a3[2]; $this->OpenTag($tag, $prop); } } } }
function OpenTag($tag, $prop) { //Opening tag if($tag=='B' or $tag=='I' or $tag=='U') $this->SetStyle($tag, true); if($tag=='A') $this->HREF=$prop['HREF']; if($tag=='BR') $this->Ln(5); if($tag=='P') $this->ALIGN=$prop['ALIGN']; if($tag=='HR') { if( $prop['WIDTH'] != '' ) $Width = $prop['WIDTH']; else $Width = $this->w - $this->lMargin-$this->rMargin; $this->Ln(2); $x = $this->GetX(); $y = $this->GetY(); $this->SetLineWidth(0.4); $this->Line($x, $y, $x+$Width, $y); $this->SetLineWidth(0.2); $this->Ln(2); } }
function CloseTag($tag) { //Closing tag if($tag=='B' or $tag=='I' or $tag=='U') $this->SetStyle($tag, false); if($tag=='A') $this->HREF=''; if($tag=='P') $this->ALIGN=''; }
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); } } ?>
|
Example
<?php define('FPDF_FONTPATH', 'font/'); require('WriteHTML.php');
$pdf=new PDF_HTML(); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont('Arial'); $pdf->WriteHTML('You can<BR><P ALIGN="center">center a line</P>and add a horizontal rule:<BR><HR>'); $pdf->Output(); ?>
|
View the result here.
DownloadZIP | TGZ
| | |