source: trunk/client/inc/hpdf/_fpdf/tutorial/tuto2.htm@ 2

Last change on this file since 2 was 2, checked in by root, 15 years ago

importo il progetto

File size: 5.4 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
5<title>Header, footer, page break and image</title>
6<link type="text/css" rel="stylesheet" href="../fpdf.css">
7</head>
8<body>
9<h1>Header, footer, page break and image</h1>
10Here is a two page example with header, footer and logo:
11<div class="source">
12<pre><code>&lt;?php
13<span class="kw">require(</span><span class="str">'fpdf.php'</span><span class="kw">);
14
15class </span>PDF <span class="kw">extends </span>FPDF
16<span class="kw">{
17</span><span class="cmt">//Page header
18</span><span class="kw">function </span>Header<span class="kw">()
19{
20 </span><span class="cmt">//Logo
21 </span>$<span class="kw">this-&gt;</span>Image<span class="kw">(</span><span class="str">'logo_pb.png'</span><span class="kw">,</span>10<span class="kw">,</span>8<span class="kw">,</span>33<span class="kw">);
22 </span><span class="cmt">//Arial bold 15
23 </span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Arial'</span><span class="kw">,</span><span class="str">'B'</span><span class="kw">,</span>15<span class="kw">);
24 </span><span class="cmt">//Move to the right
25 </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>80<span class="kw">);
26 </span><span class="cmt">//Title
27 </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>30<span class="kw">,</span>10<span class="kw">,</span><span class="str">'Title'</span><span class="kw">,</span>1<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">);
28 </span><span class="cmt">//Line break
29 </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">(</span>20<span class="kw">);
30}
31
32</span><span class="cmt">//Page footer
33</span><span class="kw">function </span>Footer<span class="kw">()
34{
35 </span><span class="cmt">//Position at 1.5 cm from bottom
36 </span>$<span class="kw">this-&gt;</span>SetY<span class="kw">(-</span>15<span class="kw">);
37 </span><span class="cmt">//Arial italic 8
38 </span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Arial'</span><span class="kw">,</span><span class="str">'I'</span><span class="kw">,</span>8<span class="kw">);
39 </span><span class="cmt">//Page number
40 </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>0<span class="kw">,</span>10<span class="kw">,</span><span class="str">'Page '</span><span class="kw">.</span>$<span class="kw">this-&gt;</span>PageNo<span class="kw">().</span><span class="str">'/{nb}'</span><span class="kw">,</span>0<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">);
41}
42}
43
44</span><span class="cmt">//Instanciation of inherited class
45</span>$pdf<span class="kw">=new </span>PDF<span class="kw">();
46</span>$pdf<span class="kw">-&gt;</span>AliasNbPages<span class="kw">();
47</span>$pdf<span class="kw">-&gt;</span>AddPage<span class="kw">();
48</span>$pdf<span class="kw">-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Times'</span><span class="kw">,</span><span class="str">''</span><span class="kw">,</span>12<span class="kw">);
49for(</span>$i<span class="kw">=</span>1<span class="kw">;</span>$i<span class="kw">&lt;=</span>40<span class="kw">;</span>$i<span class="kw">++)
50 </span>$pdf<span class="kw">-&gt;</span>Cell<span class="kw">(</span>0<span class="kw">,</span>10<span class="kw">,</span><span class="str">'Printing line number '</span><span class="kw">.</span>$i<span class="kw">,</span>0<span class="kw">,</span>1<span class="kw">);
51</span>$pdf<span class="kw">-&gt;</span>Output<span class="kw">();
52</span>?&gt;</code></pre>
53</div>
54<p class='demo'><a href='tuto2.php' target='_blank' class='demo'>[Demo]</a></p>
55This example makes use of the <a href='../doc/header.htm'>Header()</a> and <a href='../doc/footer.htm'>Footer()</a> methods to process page headers and
56footers. They are called automatically. They already exist in the FPDF class but do nothing,
57therefore we have to extend the class and override them.
58<br>
59<br>
60The logo is printed with the <a href='../doc/image.htm'>Image()</a> method by specifying its upper-left corner and
61its width. The height is calculated automatically to respect the image proportions.
62<br>
63<br>
64To print the page number, a null value is passed as the cell width. It means that the cell
65should extend up to the right margin of the page; it is handy to center text. The current page
66number is returned by the <a href='../doc/pageno.htm'>PageNo()</a> method; as for the total number of pages, it is obtained
67by means of the special value <code>{nb}</code> which will be substituted on document closure
68(provided you first called <a href='../doc/aliasnbpages.htm'>AliasNbPages()</a>).
69<br>
70Note the use of the <a href='../doc/sety.htm'>SetY()</a> method which allows to set position at an absolute location in
71the page, starting from the top or the bottom.
72<br>
73<br>
74Another interesting feature is used here: the automatic page breaking. As soon as a cell would
75cross a limit in the page (at 2 centimeters from the bottom by default), a break is performed
76and the font restored. Although the header and footer select their own font (Arial), the body
77continues with Times. This mechanism of automatic restoration also applies to colors and line
78width. The limit which triggers page breaks can be set with <a href='../doc/setautopagebreak.htm'>SetAutoPageBreak()</a>.
79</body>
80</html>
Note: See TracBrowser for help on using the repository browser.