source: trunk/phpgwapi/inc/fpdf/tutorial/tuto6.php @ 2

Revision 2, 2.4 KB checked in by niltonneto, 17 years ago (diff)

Removida todas as tags usadas pelo CVS ($Id, $Source).
Primeira versão no CVS externo.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2define('FPDF_FONTPATH','../font/');
3require('../fpdf.php');
4
5class PDF extends FPDF
6{
7var $B;
8var $I;
9var $U;
10var $HREF;
11
12function PDF($orientation='P',$unit='mm',$format='A4')
13{
14        //Call parent constructor
15        $this->FPDF($orientation,$unit,$format);
16        //Initialization
17        $this->B=0;
18        $this->I=0;
19        $this->U=0;
20        $this->HREF='';
21}
22
23function WriteHTML($html)
24{
25        //HTML parser
26        $html=str_replace("\n",' ',$html);
27        $a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
28        foreach($a as $i=>$e)
29        {
30                if($i%2==0)
31                {
32                        //Text
33                        if($this->HREF)
34                                $this->PutLink($this->HREF,$e);
35                        else
36                                $this->Write(5,$e);
37                }
38                else
39                {
40                        //Tag
41                        if($e{0}=='/')
42                                $this->CloseTag(strtoupper(substr($e,1)));
43                        else
44                        {
45                                //Extract attributes
46                                $a2=explode(' ',$e);
47                                $tag=strtoupper(array_shift($a2));
48                                $attr=array();
49                                foreach($a2 as $v)
50                                        if(ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
51                                                $attr[strtoupper($a3[1])]=$a3[2];
52                                $this->OpenTag($tag,$attr);
53                        }
54                }
55        }
56}
57
58function OpenTag($tag,$attr)
59{
60        //Opening tag
61        if($tag=='B' or $tag=='I' or $tag=='U')
62                $this->SetStyle($tag,true);
63        if($tag=='A')
64                $this->HREF=$attr['HREF'];
65        if($tag=='BR')
66                $this->Ln(5);
67}
68
69function CloseTag($tag)
70{
71        //Closing tag
72        if($tag=='B' or $tag=='I' or $tag=='U')
73                $this->SetStyle($tag,false);
74        if($tag=='A')
75                $this->HREF='';
76}
77
78function SetStyle($tag,$enable)
79{
80        //Modify style and select corresponding font
81        $this->$tag+=($enable ? 1 : -1);
82        $style='';
83        foreach(array('B','I','U') as $s)
84                if($this->$s>0)
85                        $style.=$s;
86        $this->SetFont('',$style);
87}
88
89function PutLink($URL,$txt)
90{
91        //Put a hyperlink
92        $this->SetTextColor(0,0,255);
93        $this->SetStyle('U',true);
94        $this->Write(5,$txt,$URL);
95        $this->SetStyle('U',false);
96        $this->SetTextColor(0);
97}
98}
99
100$html='You can now easily print text mixing different
101styles : <B>bold</B>, <I>italic</I>, <U>underlined</U>, or
102<B><I><U>all at once</U></I></B>!<BR>You can also insert links
103on text, such as <A HREF="http://www.fpdf.org">www.fpdf.org</A>,
104or on an image: click on the logo.';
105
106$pdf=new PDF();
107//First page
108$pdf->AddPage();
109$pdf->SetFont('Arial','',20);
110$pdf->Write(5,'To find out what\'s new in this tutorial, click ');
111$pdf->SetFont('','U');
112$link=$pdf->AddLink();
113$pdf->Write(5,'here',$link);
114$pdf->SetFont('');
115//Second page
116$pdf->AddPage();
117$pdf->SetLink($link);
118$pdf->Image('logo.png',10,10,30,0,'','http://www.fpdf.org');
119$pdf->SetLeftMargin(45);
120$pdf->SetFontSize(14);
121$pdf->WriteHTML($html);
122$pdf->Output();
123?>
Note: See TracBrowser for help on using the repository browser.