Class: I2CE PDF: Difference between revisions

From IHRIS Wiki
(Created page with 'This article desrcibes the class '''I2CE_PDF'''which extends the class tcpdf It is contained in the module textlayout in the package [https://lau…')
 
(Redirected page to Class: I2CE PDF (4.1.7))
 
(27 intermediate revisions by the same user not shown)
Line 1: Line 1:
This article desrcibes the class '''I2CE_PDF'''which extends the class tcpdf
#REDIRECT [[Class: I2CE_PDF (4.1.7)]]
It is contained in the module [[iHRIS Module List#textlayout|textlayout]] in the package [https://launchpad.net/textlayout TextLayout Tools]
The class is defined in the file: [http://bazaar.launchpad.net/~intrahealth+informatics/textlayout/4.0.0-release/files/head:lib/I2CE_PDF.php lib/I2CE_PDF.php]
==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
 
===$header_logo===
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 [http://www.php.net/manual/en/language.types.string.php String] $header_title
 
===$header_string===
to print on document header.
@access protected
*Type: protected [http://www.php.net/manual/en/language.types.string.php String] $header_string
 
===$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 ginal $original_lMargin
 
===$original_rMargin===
right margin value
@access protected
@since 1.53.0.TC013
*Type: protected ginal $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
*Type: protected n $running_header
 
===$row_spacing===
-- the spacing (in points) between succesive rows of text in  a table
*Type: protected [http://www.php.net/manual/en/language.pseudo-types.php numeric] $row_spacing
 
===$adobe_standard_encodings===
of I2CE_Encodings $adobe_standard_encodings
*Type: protected y $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 nt $min_cell_width
 
===$header_fill_color===
of int $header_fill_color for the fill color
of the header row of a table
*Type: protected y $header_fill_color
 
===$header_text_color===
of int $header_text_color for the text color
of the header row of a table
*Type: protected y $header_text_color
 
===$data_fill_color===
of int $header_fill_color for the fill color
of the header row of a table
*Type: protected y $data_fill_color
 
===$table_framing_color===
of int $table_framing_color  the color used to draw the frame for the table
*Type: protected y $table_framing_color
 
===$data_text_color===
of int $header_text_color for the text color
of the header row of a table
*Type: protected y $data_text_color
 
===$glyph_list===
*Type: protected $glyph_list
 
==Methods==
===AddCoreFontMetrics()===
Add a Core PDF Font
*Signature: protected function AddCoreFontMetrics($family,$style)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $family
* [http://www.php.net/manual/en/language.types.string.php string] $style
**Default Value: ''
===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.
@since 1.0
@see TCPDF(), Header(), Footer(), SetMargins()
*Signature: public function AddPage($orientation)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $orientation<br/>Page orientation. Possible values are (case insensitive):<ul><li>P or Portrait</li><li>L or Landscape</li></ul> The default value is the one passed to the constructor.
**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
@param array of numeric $widths in user units
*
*Signature: protected function DisplayTextTableRow($row_data,$widths,$h_user,$border,$align,$fill)
Parameters:
*$row_data
*$widths
* [http://www.php.net/manual/en/language.pseudo-types.php numeric] $h_user<br/>the height 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
is already set, non null > 0 is the maximum table width
<ul><li>0: no border (default)</li><li>1: frame</li></ul>
Possible values are:<ul><li>0: to the right</li><li>1: to the beginning of the next line [DEFAULT]</li><li>2: below</li></ul>
*Signature: public function MakeTable($text_table_data,$border,$max_table_width,$align_data,$header,$align_header,$ln)
Parameters:
*$text_table_data
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $border<br/>Indicates if borders must be drawn around the cell block. The value can be:
**Default Value: 0
* [http://www.php.net/manual/en/language.pseudo-types.php numeric] $max_table_width<br/>the maximum table width -- 0 fill the table to the right margin, null use the value as it
**Default Value: 0
*$align_data
**Default Value: 'C'
* [http://www.php.net/manual/en/language.types.integer.php int] $header<br/>: 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'
* [http://www.php.net/manual/en/language.types.integer.php int] $ln<br/>Indicates where the current position should go after the call.
**Default Value: 1
===SetAutoTableWidthStyle()===
Set the alogorithm used to determine column widths
*Signature: public function SetAutoTableWidthStyle($style)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $style<br/>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:<ul><li>They are in the current directory (the one where the running script lies)</li><li>They are in one of the directories defined by the include_path parameter</li><li>They are in the directory defined by the FPDF_FONTPATH constant</li></ul><br />
Example for the last case (note the trailing slash):<br />
<pre>
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');
</pre><br />
If the file corresponding to the requested font is not found, the error "Could not include font metric file" is generated.
@since 1.0
@see AddFont(), SetFontSize(), Cell(), MultiCell(), Write()
*Signature: public function SetFont($family,$style,$size)
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $family<br/>Family font. It can be either a name defined by AddFont() or one of the standard families (case insensitive):<ul><li>Courier (fixed-width)</li><li>Helvetica or Arial (synonymous; sans serif)</li><li>Times (serif)</li><li>Symbol (symbolic)</li><li>ZapfDingbats (symbolic)</li></ul>It is also possible to pass an empty string. In that case, the current family is retained.
* [http://www.php.net/manual/en/language.types.string.php string] $style<br/>Font style. Possible values are (case insensitive):<ul><li>empty string: regular</li><li>B: bold</li><li>I: italic</li><li>U: underline</li></ul>or any combination. The default value is regular. Bold and italic styles do not apply to Symbol and ZapfDingbats
**Default Value: ''
* [http://www.php.net/manual/en/language.types.float.php float] $size<br/>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
**Default Value: 0
===SetFontSize()===
Defines the size of the current font.
@since 1.0
@see SetFont()
*Signature: public function SetFontSize($size)
Parameters:
* [http://www.php.net/manual/en/language.types.float.php float] $size<br/>The size (in points)
===SetHyphenationDictionary()===
set the hyphenation dictionary used for text tables
*Signature: public function SetHyphenationDictionary($hyphen)
Parameters:
* [[Class: I2CE_Hyphen | I2CE_Hyphen]] $hyphen
===SetLineSpacing()===
Set the spacing between rows of the table
*Signature: public function SetLineSpacing($spacing)
Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php numeric] $spacing<br/>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:
* [http://www.php.net/manual/en/language.pseudo-types.php numeric] $width<br/>in user units
===SetMinTableCellWidth()===
Set the minimum cell width of the table
*Signature: public function SetMinTableCellWidth($width)
Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php numeric] $width
===SetRunningHeader()===
Set a running header for tables that span multiple pages
*Signature: public function SetRunningHeader($running_header)
Parameters:
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $running_header<br/>true to repeat the header
===SetTableColSpacing()===
Set the spacing between columns of the table
*Signature: public function SetTableColSpacing($spacing)
Parameters:
* [http://www.php.net/manual/en/language.pseudo-types.php numeric] $spacing
===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:
* [http://www.php.net/manual/en/language.types.string.php string] $algorithm
===__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
* [http://www.php.net/manual/en/language.types.string.php string] $orientation<br/>page orientation. Possible values are (case insensitive):<ul><li>P or Portrait (default)</li><li>L or Landscape</li></ul>
**Default Value: 'P'
* [http://www.php.net/manual/en/language.types.string.php string] $unit<br/>User measure unit. Possible values are:<ul><li>pt: point</li><li>mm: millimeter (default)</li><li>cm: centimeter</li><li>in: inch</li></ul><br />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'
* [http://www.php.net/manual/en/language.pseudo-types.php mixed] $format<br/>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).<ul><li>4A0</li><li>2A0</li><li>A0</li><li>A1</li><li>A2</li><li>A3</li><li>A4 (default)</li><li>A5</li><li>A6</li><li>A7</li><li>A8</li><li>A9</li><li>A10</li><li>B0</li><li>B1</li><li>B2</li><li>B3</li><li>B4</li><li>B5</li><li>B6</li><li>B7</li><li>B8</li><li>B9</li><li>B10</li><li>C0</li><li>C1</li><li>C2</li><li>C3</li><li>C4</li><li>C5</li><li>C6</li><li>C7</li><li>C8</li><li>C9</li><li>C10</li><li>RA0</li><li>RA1</li><li>RA2</li><li>RA3</li><li>RA4</li><li>SRA0</li><li>SRA1</li><li>SRA2</li><li>SRA3</li><li>SRA4</li><li>LETTER</li><li>LEGAL</li><li>EXECUTIVE</li><li>FOLIO</li></ul>
**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.<br>
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)
*Returns: [http://www.php.net/manual/en/language.types.string.php string]
Parameters:
* [http://www.php.net/manual/en/language.types.string.php string] $family
* [http://www.php.net/manual/en/language.types.string.php string] $style
===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)
Parameters:
*$logo
**Default Value: ""
* [http://www.php.net/manual/en/language.types.string.php string] $lw<br/>header image logo width in mm
**Default Value: 0
* [http://www.php.net/manual/en/language.types.string.php string] $ht<br/>string to print as title on document header
**Default Value: ""
* [http://www.php.net/manual/en/language.types.string.php string] $hs<br/>string to print on document header
**Default Value: ""
===setHeaderMargin()===
Set header margin.
(minimum distance between header and top page margin)
*Signature: public function setHeaderMargin($hm)
Parameters:
* [http://www.php.net/manual/en/language.types.integer.php int] $hm<br/>distance in user units
**Default Value: 10
===setHeaderWidth()===
Sets header width
*Signature: public function setHeaderWidth($w)
Parameters:
* [http://www.php.net/manual/en/language.types.integer.php int] $w<br/>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:
* [http://www.php.net/manual/en/language.types.boolean.php boolean] $val<br/>set to true to print the page header (default), false otherwise.
**Default Value: true
 
 
[[Category:Class Documentation]]

Latest revision as of 08:45, 23 August 2013