From 9ade03abba848e7b1ae6f810cbaf8346108041f0 Mon Sep 17 00:00:00 2001 From: Rodolphe Quiedeville Date: Sun, 29 Feb 2004 14:32:04 +0000 Subject: [PATCH] Nouveau fichier --- htdocs/includes/fpdf/fpdf_html.php | 104 +++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 htdocs/includes/fpdf/fpdf_html.php diff --git a/htdocs/includes/fpdf/fpdf_html.php b/htdocs/includes/fpdf/fpdf_html.php new file mode 100644 index 00000000000..41974667315 --- /dev/null +++ b/htdocs/includes/fpdf/fpdf_html.php @@ -0,0 +1,104 @@ +FPDF($orientation,$unit,$format); + //Initialisation + $this->B=0; + $this->I=0; + $this->U=0; + $this->HREF=''; + } + + function WriteHTML($html) + { + //Parseur HTML + $html=str_replace("\n",' ',$html); + $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE); + foreach($a as $i=>$e) + { + if($i%2==0) + { + //Texte + if($this->HREF) + $this->PutLink($this->HREF,$e); + else + $this->Write(5,$e); + } + else + { + //Balise + if($e{0}=='/') + $this->CloseTag(strtoupper(substr($e,1))); + else + { + //Extraction des attributs + $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) + { + //Balise ouvrante + 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) + { + //Balise fermante + if($tag=='B' or $tag=='I' or $tag=='U') + $this->SetStyle($tag,false); + if($tag=='A') + $this->HREF=''; + } + + function SetStyle($tag,$enable) + { + //Modifie le style et sélectionne la police correspondante + $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) + { + //Place un hyperlien + $this->SetTextColor(0,0,255); + $this->SetStyle('U',true); + $this->Write(5,$txt,$URL); + $this->SetStyle('U',false); + $this->SetTextColor(0); + } +} +?>