Class: I2CE PDF

From IHRIS Wiki
Revision as of 15:15, 29 October 2009 by Litlfred (talk | contribs)

This article describes the class I2CE_PDF.

Variables

$print_header

true prints header @access protected

  • Type: protected If $print_header

$print_footer

true prints footer. @access protected

  • Type: protected If $print_footer

$header_width

width (0 = full page width). @access protected

  • Type: protected Header $header_width

image logo. @access protected

  • Type: protected Header $header_logo

$header_logo_width

image logo width in mm. @access protected

  • Type: protected Header $header_logo_width

$header_font

font. @access protected

  • Type: protected Header $header_font

$footer_font

font. @access protected

  • Type: protected Footer $footer_font

$header_title

to print as title on document header. @access protected

  • Type: protected String $header_title

$header_string

to print on document header. @access protected

  • Type: protected String $header_string

$header_desc

to print as a descroption under the logo in the document header @access protected $header_desc

  • Type: protected String $header_desc

$header_margin

distance between header and top page margin. @access protected

  • Type: protected Minimum $header_margin

$footer_margin

distance between footer and bottom page margin. @access protected

  • Type: protected Minimum $footer_margin

$original_lMargin

left margin value @access protected @since 1.53.0.TC013

  • Type: protected original $original_lMargin

$original_rMargin

right margin value @access protected @since 1.53.0.TC013

  • Type: protected original $original_rMargin

$enc

protected @var I2CE_Encoding enc

  • Type: protected $enc

$text_table

protected @var I2CE_TextTable $text_table

  • Type: protected $text_table

$hyphen

protected @var I2CE_Hyphen hyphen -- a hyphenation dictionary

  • Type: protected $hyphen

$font_metric

protected @var array of I2CE_FontMetric font_metrics

  • Type: protected $font_metric

$running_header

True if we want the header of a table repeated on each page

$row_spacing

-- the spacing (in points) between succesive rows of text in a table

$adobe_standard_encodings

of I2CE_Encodings $adobe_standard_encodings

  • Type: protected array $adobe_standard_encodings

$min_cell_width

the minimum number of points we want minimially as the width of a cell in a table

  • Type: protected int $min_cell_width

$header_fill_color

of int $header_fill_color for the fill color of the header row of a table

  • Type: protected array $header_fill_color

$header_text_color

of int $header_text_color for the text color of the header row of a table

  • Type: protected array $header_text_color

$data_fill_color

of int $header_fill_color for the fill color of the header row of a table

  • Type: protected array $data_fill_color

$table_framing_color

of int $table_framing_color the color used to draw the frame for the table

  • Type: protected array $table_framing_color

$data_text_color

of int $header_text_color for the text color of the header row of a table

  • Type: protected array $data_text_color

$glyph_list

  • Type: protected $glyph_list

Methods

AddCoreFontMetrics()

Add a Core PDF Font

  • Signature: protected function AddCoreFontMetrics($family,$style)
  • Parameters:

AddFontByTTFFile()

  • Signature: public function AddFontByTTFFile($family,$style,$ttf_file)
  • Parameters:
    • $family
    • $style
    • $ttf_file

AddPage()

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.

  • Signature: public function AddPage($orientation)
  • Parameters:
    • string $orientation
      Page orientation. Possible values are (case insensitive):
      • P or Portrait
      • L or Landscape
      The default value is the one passed to the constructor. @since 1.0 @see TCPDF(), Header(), Footer(), SetMargins()
      • Default Value:

Cell()

  • Signature: public function Cell($w,$h,$txt,$border,$ln,$align,$fill,$link)
  • Parameters:
    • $w
    • $h
      • Default Value: 0
    • $txt
      • Default Value:
    • $border
      • Default Value: 0
    • $ln
      • Default Value: 0
    • $align
      • Default Value:
    • $fill
      • Default Value: 0
    • $link
      • Default Value:

DisplayTextTableRow()

Draws a Text Table Row using wordwrapped rows @param array of array of strings $row_data. first index is column, second index is the text row in the cell

  • Signature: protected function DisplayTextTableRow($row_data,$widths,$h_user,$border,$align,$fill)
  • Parameters:
    • $row_data
    • $widths
    • numeric $h_user
      the height in user units @param array of numeric $widths in user units *
    • $border
    • $align
    • $fill

Error()

  • Signature: public function Error($msg,$level)
  • Parameters:
    • $msg
    • $level
      • Default Value: E_WARNING

GetStringWidth()

  • Signature: public function GetStringWidth($s)
  • Parameters:
    • $s

GetTableWidths()

Set the widths of the columns last used in the table

  • Signature: public function GetTableWidths()

GetTextTable()

Get the TextTable object

  • Signature: public function GetTextTable()
  • Returns: TextTable

Header()

This method is used to render the page header.

  • Signature: public function Header()

MakeTable()

Given a 2-dimensional table of string prints out a 'fancy' table @param float $w width of the table, 0 goes to right margin in user units @param float $h height of each row of text in user units @param array $text_table 2 dimensional array of text (indexing is [$row][$col]) .. Row has to be numeric sequential starting at 0. Column does not

  • Signature: public function MakeTable($text_table_data,$border,$max_table_width,$align_data,$header,$align_header,$ln)
  • Parameters:
    • $text_table_data
    • mixed $border
      Indicates if borders must be drawn around the cell block. The value can be:
      • 0: no border (default)
      • 1: frame
      • Default Value: 0
    • numeric $max_table_width
      the maximum table width -- 0 fill the table to the right margin, null use the value as it is already set, non null > 0 is the maximum table width
      • Default Value: 0
    • $align_data
      • Default Value: 'C'
    • int $header
      0 no header, 1 has a header, 2 has a header and the header should repeat on a page break
      • Default Value: 1
    • $align_header
      • Default Value: 'L'
    • int $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 [DEFAULT]
      • 2: below
      • Default Value: 1

SetAutoTableWidthStyle()

Set the alogorithm used to determine column widths

  • Signature: public function SetAutoTableWidthStyle($style)
  • Parameters:
    • string $style
      Valid values are 'All', 'Header', and 'Explicit'

SetFont()

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 Windows encoding cp1252 (Western Europe). The method can be called before the first page is created and the font is retained from page to page. If you just wish to change the current font size, it is simpler to call SetFontSize(). Note: for the standard fonts, the font metric files must be accessible. There are three possibilities for this:

  • They are in the current directory (the one where the running script lies)
  • They are in one of the directories defined by the include_path parameter
  • They are in the directory defined by the FPDF_FONTPATH constant


Example for the last case (note the trailing slash):

 define('FPDF_FONTPATH','/home/www/font/'); require('tcpdf.php'); //Times regular 12 $pdf->SetFont('Times'); //Arial bold 14 $pdf->SetFont('Arial','B',14); //Removes bold $pdf->SetFont(''); //Times bold, italic and underlined 14 $pdf->SetFont('Times','BIU'); 


If the file corresponding to the requested font is not found, the error "Could not include font metric file" is generated.

  • Signature: public function SetFont($family,$style,$size)
  • Parameters:
    • string $family
      Family font. It can be either a name defined by AddFont() or one of the standard families (case insensitive):
      • Courier (fixed-width)
      • Helvetica or Arial (synonymous; sans serif)
      • Times (serif)
      • Symbol (symbolic)
      • ZapfDingbats (symbolic)
      It is also possible to pass an empty string. In that case, the current family is retained.
    • string $style
      Font style. Possible values are (case insensitive):
      • empty string: regular
      • B: bold
      • I: italic
      • U: underline
      or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats
      • Default Value:
    • float $size
      Font size in points. The default value is the current size. If no size has been specified since the beginning of the document, the value taken is 12 @since 1.0 @see AddFont(), SetFontSize(), Cell(), MultiCell(), Write()
      • Default Value: 0

SetFontSize()

Defines the size of the current font.

  • Signature: public function SetFontSize($size)
  • Parameters:
    • float $size
      The size (in points) @since 1.0 @see SetFont()

SetHyphenationDictionary()

set the hyphenation dictionary used for text tables

  • Signature: public function SetHyphenationDictionary($hyphen)
  • Parameters:

SetLineSpacing()

Set the spacing between rows of the table

  • Signature: public function SetLineSpacing($spacing)
  • Parameters:
    • numeric $spacing
      number to multiply the text height by to get the spacing

SetMaxTableWidth()

Set the maximum width of the table width

  • Signature: public function SetMaxTableWidth($width)
  • Parameters:

SetMinTableCellWidth()

Set the minimum cell width of the table

  • Signature: public function SetMinTableCellWidth($width)
  • Parameters:

SetRunningHeader()

Set a running header for tables that span multiple pages

  • Signature: public function SetRunningHeader($running_header)
  • Parameters:
    • boolean $running_header
      true to repeat the header

SetTableColSpacing()

Set the spacing between columns of the table

  • Signature: public function SetTableColSpacing($spacing)
  • Parameters:

SetTableDataFillColor()

Set the data fill color for a table @param array of $int -- the rgb values

  • Signature: public function SetTableDataFillColor($color)
  • Parameters:
    • $color

SetTableDataTextColor()

Set the data text color for a table @param array of $int -- the rgb values

  • Signature: public function SetTableDataTextColor($color)
  • Parameters:
    • $color

SetTableFramingColor()

Set the framing color for a table @param array of $int -- the rgb values

  • Signature: public function SetTableFramingColor($color)
  • Parameters:
    • $color

SetTableHeaderFillColor()

Set the header of a table's fill color @param array of $int -- the rgb values

  • Signature: public function SetTableHeaderFillColor($color)
  • Parameters:
    • $color

SetTableHeaderTextColor()

Set the header of a table's text color @param array of $int -- the rgb values

  • Signature: public function SetTableHeaderTextColor($color)
  • Parameters:
    • $color

SetTableWitdths()

Set the widths of the columns used in the table explicitly @parma array of number $widths -- the column widths Note: setting table width will set the table width style to explicit

  • Signature: public function SetTableWitdths($widths)
  • Parameters:
    • $widths

SetWordWrapAlgorithm()

Set the alogorithm used to determine word-wrapping

  • Signature: public function SetWordWrapAlgorithm($algorithm)
  • Parameters:

__construct()

This is the class constructor. It allows to set up the page format, the orientation and the measure unit used in all the methods (except for the font sizes). @param I2CE_Encoding $enc charset encoding for all input strings

  • Signature: public function __construct($encoding,$orientation,$unit,$format)
  • Parameters:
    • $encoding
    • string $orientation
      page orientation. Possible values are (case insensitive):
      • P or Portrait (default)
      • L or Landscape
      • Default Value: 'P'
    • string $unit
      User measure unit. Possible values are:
      • pt: point
      • mm: millimeter (default)
      • 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: 'mm'
    • mixed $format
      The format used for pages. It can be either one of the following values (case insensitive) or a custom format in the form of a two-element array containing the width and the height (expressed in the unit given by unit).
      • 4A0
      • 2A0
      • A0
      • A1
      • A2
      • A3
      • A4 (default)
      • A5
      • A6
      • A7
      • A8
      • A9
      • A10
      • B0
      • B1
      • B2
      • B3
      • B4
      • B5
      • B6
      • B7
      • B8
      • B9
      • B10
      • C0
      • C1
      • C2
      • C3
      • C4
      • C5
      • C6
      • C7
      • C8
      • C9
      • C10
      • RA0
      • RA1
      • RA2
      • RA3
      • RA4
      • SRA0
      • SRA1
      • SRA2
      • SRA3
      • SRA4
      • LETTER
      • LEGAL
      • EXECUTIVE
      • FOLIO
      • Default Value: 'A4'

_escapetext()

Format a text string @access protected

  • Signature: public function _escapetext($s)
  • Parameters:
    • $s

_putfonts()

Adds fonts _putfonts @access protected

  • Signature: protected function _putfonts()

_puttruetypeembedded()

Adds unicode fonts.
Based on PDF Reference 1.3 (section 5) @access protected @author Nicola Asuni @since 1.52.0.TC005 (2005-01-05)

  • Signature: protected function _puttruetypeembedded($font)
  • Parameters:
    • $font

_textstring()

Format a text string @access protected

  • Signature: protected function _textstring($s)
  • Parameters:
    • $s

getAdobeStandardEncoding()

Get the I2CE_Encoding according to one of the standard adobe encodings

  • Signature: protected function getAdobeStandardEncoding($encoding)
  • Parameters:
    • $encoding

getDescription()

Setup the array the required fields for the FontDescriptor entry The required fields are 'Ascent' 'Descent' 'CapHeight' 'Flags' 'FontBBox' 'ItalicAngle' 'StemV' 'MissingWidth'

  • Signature: protected function getDescription($fm,$uses_adobe_standard_encoding)
  • Parameters:
    • $fm
    • $uses_adobe_standard_encoding

getFontKey()

get the fontkey associated to a fmaily and style

  • Signature: protected function getFontKey($family,$style)
  • Parameters:
  • Returns: string

loadGlyphList()

  • Signature: protected function loadGlyphList()

load_file()

  • Signature: protected function load_file($category,$file_name)
  • Parameters:
    • $category
    • $file_name

setHeaderData()

Set header data. @param string $ln header image logo

  • Signature: public function setHeaderData($logo,$lw,$ht,$hs,$hd)
  • Parameters:
    • $logo
      • Default Value: ""
    • string $lw
      header image logo width in mm
      • Default Value: 0
    • string $ht
      string to print as title on document header
      • Default Value: ""
    • string $hs
      string to print on document header
      • Default Value: ""
    • string $hd
      a description of the report.
      • Default Value:

setHeaderMargin()

Set header margin. (minimum distance between header and top page margin)

  • Signature: public function setHeaderMargin($hm)
  • Parameters:
    • int $hm
      distance in user units
      • Default Value: 10

setHeaderWidth()

Sets header width

  • Signature: public function setHeaderWidth($w)
  • Parameters:
    • int $w
      width in user units. Value of 0 says to use all the avaiable width
      • Default Value: 0

setPrintHeader()

Set a flag to print page header.

  • Signature: public function setPrintHeader($val)
  • Parameters:
    • boolean $val
      set to true to print the page header (default), false otherwise.
      • Default Value: true