Cell(float w [, float h [, string txt [, mixed border [, int ln [, string align [, boolean fill [, mixed link]]]]]]])
Description
Prints a cell (rectangular area) with optional borders, background color and character string.
The upper-left corner of the cell corresponds to the current position. The text can be aligned
or centered. After the call, the current position moves to the right or to the next line. It is
possible to put a link on the text.
If automatic page breaking is enabled and the cell goes beyond the limit, a page break is
done before outputting.
Parameters
w
Cell width. If 0, the cell extends up to the right margin.
h
Cell height.
Default value: 0.
txt
String to print.
Default value: empty string.
border
Indicates if borders must be drawn around the cell. The value can be either a number:
0: no border
1: frame
or a string containing some or all of the following characters (in any order):
L: left
T: top
R: right
B: bottom
Default value: 0.
ln
Indicates where the current position should go after the call. Possible values are:
0: to the right
1: to the beginning of the next line
2: below
Putting 1 is equivalent to putting 0 and calling Ln() just after.
Default value: 0.
align
Allows to center or align the text. Possible values are:
L or empty string: left align (default value)
C: center
R: right align
fill
Indicates if the cell background must be painted (true) or transparent (false).
Default value: false.
link
URL or identifier returned by AddLink().
Example
// Set font
$pdf->SetFont('Arial', 'B', 16);
// Move to 8 cm to the right
$pdf->Cell(80);
// Centered text in a framed 20*10 mm cell and line break
$pdf->Cell(20, 10, 'Title', 1, 1, 'C');
Sets the ordinate and optionally moves the current abscissa back to the left margin. If the value
is negative, it is relative to the bottom of the page.
Parameters
y
The value of the ordinate.
resetX
Whether to reset the abscissa. Default value: true.
Defines the color used for text. It can be expressed in RGB components or gray scale. The
method can be called before the first page is created and the value is retained from page to
page.
Parameters
r
If g et b are given, red component; if not, indicates the gray level.
Value between 0 and 255.
Creates a new internal link and returns its identifier. An internal link is a clickable area
which directs to another place within the document.
The identifier can then be passed to Cell(), Write(), Image() or Link(). The destination is
defined with SetLink().
Prints a character string. The origin is on the left of the first character, on the baseline.
This method allows to place a string precisely on the page, but it is usually easier to use
Cell(), MultiCell() or Write() which are the standard methods to print text.
This method is automatically called in case of a fatal error; it simply throws an exception
with the provided message.
An inherited class may override it to customize the error handling but the method should
never return, otherwise the resulting document would probably be invalid.
SetFont(string family [, string style [, float size]])
Description
Sets the font used to print character strings. It is mandatory to call this method
at least once before printing text or the resulting document would not be valid.
The font can be either a standard one or a font added via the AddFont() method. Standard fonts
use the Windows encoding cp1252 (Western Europe).
The method can be called before the first page is created and the font is kept from page
to page.
If you just wish to change the current font size, it is simpler to call SetFontSize().
Note: the font definition files must be accessible. They are searched successively in:
The directory defined by the FPDF_FONTPATH constant (if that constant is defined)
The font directory located in the same directory as fpdf.php (if it exists)
This method prints text from the current position. When the right margin is reached (or the \n
character is met) a line break occurs and text continues from the left margin. Upon method exit,
the current position is left just at the end of the text.
It is possible to put a link on the text.
Parameters
h
Line height.
txt
String to print.
link
URL or identifier returned by AddLink().
Example
// Begin with regular font
$pdf->SetFont('Arial', '', 14);
$pdf->Write(5, 'Visit ');
// Then put a blue underlined link
$pdf->SetTextColor(0, 0, 255);
$pdf->SetFont('', 'U');
$pdf->Write(5, 'www.fpdf.org', 'http://www.fpdf.org');
AddPage([string orientation [, mixed size [, int rotation]]])
Description
Adds a new page to the document. If a page is already present, the Footer() method is called
first to output the footer. Then the page is added, the current position set to the top-left
corner according to the left and top margins, and Header() is called to display the header.
The font which was set before calling is automatically restored. There is no need to call
SetFont() again if you want to continue with the same font. The same is true for colors and
line width.
The origin of the coordinate system is at the top-left corner and increasing ordinates go
downwards.
Parameters
orientation
Page orientation. Possible values are (case insensitive):
P or Portrait
L or Landscape
The default value is the one passed to the constructor.
size
Page size. It can be either one of the following values (case insensitive):
A3
A4
A5
Letter
Legal
or an array containing the width and the height (expressed in user unit).
The default value is the one passed to the constructor.
rotation
Angle by which to rotate the page. It must be a multiple of 90; positive values
mean clockwise rotation. The default value is 0.
This method allows printing text with line breaks. They can be automatic (as soon as the
text reaches the right border of the cell) or explicit (via the \n character). As many cells
as necessary are output, one below the other.
Text can be aligned, centered or justified. The cell block can be framed and the background
painted.
Parameters
w
Width of cells. If 0, they extend up to the right margin of the page.
h
Height of cells.
txt
String to print.
border
Indicates if borders must be drawn around the cell block. The value can be either a number:
0: no border
1: frame
or a string containing some or all of the following characters (in any order):
L: left
T: top
R: right
B: bottom
Default value: 0.
align
Sets the text alignment. Possible values are:
L: left alignment
C: center
R: right alignment
J: justification (default value)
fill
Indicates if the cell background must be painted (true) or transparent (false).
Default value: false.
Whenever a page break condition is met, the method is called, and the break is issued or not
depending on the returned value. The default implementation returns a value according to the
mode selected by SetAutoPageBreak().
This method is called automatically and should not be called directly by the application.
Example
The method is overriden in an inherited class in order to obtain a 3 column layout:
class PDF extends FPDF
{
protected $col = 0;
function SetCol($col)
{
// Move position to a column
$this->col = $col;
$x = 10 + $col*65;
$this->SetLeftMargin($x);
$this->SetX($x);
}
function AcceptPageBreak()
{
if($this->col<2)
{
// Go to next column
$this->SetCol($this->col+1);
$this->SetY(10);
return false;
}
else
{
// Go back to first column and issue page break
$this->SetCol(0);
return true;
}
}
}
$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Arial', '', 12);
for($i=1;$i<=300;$i++)
$pdf->Cell(0, 5, "Line $i", 0, 1);
$pdf->Output();
AddFont(string family [, string style [, string file]])
Description
Imports a TrueType, OpenType or Type1 font and makes it available. It is necessary to generate a font
definition file first with the MakeFont utility.
The definition file (and the font file itself when embedding) must be present in the font directory.
If it is not found, the error "Could not include font definition file" is raised.
Parameters
family
Font family. The name can be chosen arbitrarily. If it is a standard family name, it will
override the corresponding font.
style
Font style. Possible values are (case insensitive):
empty string: regular
B: bold
I: italic
BI or IB: bold italic
The default value is regular.
file
The font definition file.
By default, the name is built from the family and style, in lower case with no space.
This method is used to render the page header. It is automatically called by AddPage() and
should not be called directly by the application. The implementation in FPDF is empty, so
you have to subclass it and override the method if you want a specific processing.
Example
class PDF extends FPDF
{
function Header()
{
// Select Arial bold 15
$this->SetFont('Arial', 'B', 15);
// Move to the right
$this->Cell(80);
// Framed title
$this->Cell(30, 10, 'Title', 1, 0, 'C');
// Line break
$this->Ln(20);
}
}
Terminates the PDF document. It is not necessary to call this method explicitly because Output()
does it automatically.
If the document contains no page, AddPage() is called to prevent from getting an invalid document.
Enables or disables the automatic page breaking mode. When enabling, the second parameter is
the distance from the bottom of the page that defines the triggering limit. By default, the
mode is on and the margin is 2 cm.
Link(float x, float y, float w, float h, mixed link)
Description
Puts a link on a rectangular area of the page. Text or image links are generally put via Cell(),
Write() or Image(), but this method can be useful for instance to define a clickable area inside
an image.
Parameters
x
Abscissa of the upper-left corner of the rectangle.
y
Ordinate of the upper-left corner of the rectangle.
Defines the color used for all drawing operations (lines, rectangles and cell borders). It
can be expressed in RGB components or gray scale. The method can be called before the first
page is created and the value is retained from page to page.
Parameters
r
If g et b are given, red component; if not, indicates the gray level.
Value between 0 and 255.
__construct([string orientation [, string unit [, mixed size]]])
Description
This is the class constructor. It allows to set up the page size, the orientation and the
unit of measure used in all methods (except for font sizes).
Parameters
orientation
Default page orientation. Possible values are (case insensitive):
P or Portrait
L or Landscape
Default value is P.
unit
User unit. Possible values are:
pt: point
mm: millimeter
cm: centimeter
in: inch
A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). This
is a very common unit in typography; font sizes are expressed in that unit.
Default value is mm.
size
The size used for pages. It can be either one of the following values (case insensitive):
A3
A4
A5
Letter
Legal
or an array containing the width and the height (expressed in the unit given by unit).
Defines the line width. By default, the value equals 0.2 mm. The method can be called before
the first page is created and the value is retained from page to page.
Defines the left margin. The method can be called before creating the first page.
If the current abscissa gets out of page, it is brought back to the margin.
Image(string file [, float x [, float y [, float w [, float h [, string type [, mixed link]]]]]])
Description
Puts an image. The size it will take on the page can be specified in different ways:
explicit width and height (expressed in user unit or dpi)
one explicit dimension, the other being calculated automatically in order to keep the original proportions
no explicit dimension, in which case the image is put at 96 dpi
Supported formats are JPEG, PNG and GIF. The GD extension is required for GIF.
For JPEGs, all flavors are allowed:
gray scales
true colors (24 bits)
CMYK (32 bits)
For PNGs, are allowed:
gray scales on at most 8 bits (256 levels)
indexed colors
true colors (24 bits)
For GIFs: in case of an animated GIF, only the first frame is displayed.
Transparency is supported.
The format can be specified explicitly or inferred from the file extension.
It is possible to put a link on the image.
Remark: if an image is used several times, only one copy is embedded in the file.
Parameters
file
Path or URL of the image.
x
Abscissa of the upper-left corner. If not specified or equal to null, the current abscissa
is used.
y
Ordinate of the upper-left corner. If not specified or equal to null, the current ordinate
is used; moreover, a page break is triggered first if necessary (in case automatic page breaking is enabled)
and, after the call, the current ordinate is moved to the bottom of the image.
w
Width of the image in the page. There are three cases:
If the value is positive, it represents the width in user unit
If the value is negative, the absolute value represents the horizontal resolution in dpi
If the value is not specified or equal to zero, it is automatically calculated
h
Height of the image in the page. There are three cases:
If the value is positive, it represents the height in user unit
If the value is negative, the absolute value represents the vertical resolution in dpi
If the value is not specified or equal to zero, it is automatically calculated
type
Image format. Possible values are (case insensitive): JPG, JPEG, PNG and GIF.
If not specified, the type is inferred from the file extension.
link
URL or identifier returned by AddLink().
Example
// Insert a logo in the top-left corner at 300 dpi
$pdf->Image('logo.png', 10, 10, -300);
// Insert a dynamic image from a URL
$pdf->Image('http://chart.googleapis.com/chart?cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World', 60, 30, 90, 0, 'PNG');
Defines the color used for all filling operations (filled rectangles and cell backgrounds).
It can be expressed in RGB components or gray scale. The method can be called before the first
page is created and the value is retained from page to page.
Parameters
r
If g and b are given, red component; if not, indicates the gray level.
Value between 0 and 255.
Activates or deactivates page compression. When activated, the internal representation of
each page is compressed, which leads to a compression ratio of about 2 for the resulting
document.
Compression is on by default.
Note: the Zlib extension is required for this feature. If not present, compression
will be turned off.
Parameters
compress
Boolean indicating if compression must be enabled.
Defines an alias for the total number of pages. It will be substituted as the document is
closed.
Parameters
alias
The alias. Default value: {nb}.
Example
class PDF extends FPDF
{
function Footer()
{
// Go to 1.5 cm from bottom
$this->SetY(-15);
// Select Arial italic 8
$this->SetFont('Arial', 'I', 8);
// Print current and total page numbers
$this->Cell(0, 10, 'Page '.$this->PageNo().'/{nb}', 0, 0, 'C');
}
}
$pdf = new PDF();
$pdf->AliasNbPages();
Defines the way the document is to be displayed by the viewer. The zoom level can be set: pages can be
displayed entirely on screen, occupy the full width of the window, use real size, be scaled by a
specific zooming factor or use viewer default (configured in the Preferences menu of Adobe Reader).
The page layout can be specified too: single at once, continuous display, two columns or viewer
default.
Parameters
zoom
The zoom to use. It can be one of the following string values:
This method is used to render the page footer. It is automatically called by AddPage() and
Close() and should not be called directly by the application. The implementation in FPDF is
empty, so you have to subclass it and override the method if you want a specific processing.
Example
class PDF extends FPDF
{
function Footer()
{
// Go to 1.5 cm from bottom
$this->SetY(-15);
// Select Arial italic 8
$this->SetFont('Arial', 'I', 8);
// Print centered page number
$this->Cell(0, 10, 'Page '.$this->PageNo(), 0, 0, 'C');
}
}
string Output([string dest [, string name [, boolean isUTF8]]])
Description
Send the document to a given destination: browser, file or string. In the case of a browser, the
PDF viewer may be used or a download may be forced.
The method first calls Close() if necessary to terminate the document.
Parameters
dest
Destination where to send the document. It can be one of the following:
I: send the file inline to the browser. The PDF viewer is used if available.
D: send to the browser and force a file download with the name given by name.
F: save to a local file with the name given by name (may include a path).
S: return the document as a string.
The default value is I.
name
The name of the file. It is ignored in case of destination S.
The default value is doc.pdf.
isUTF8
Indicates if name is encoded in ISO-8859-1 (false) or UTF-8 (true).
Only used for destinations I and D.
The default value is false.
Defines the abscissa and ordinate of the current position. If the passed values are negative,
they are relative respectively to the right and bottom of the page.