2009-10-08 01:42:23 -07:00
< ? php
App :: import ( 'Vendor' , 'tcpdf/tcpdf' );
class XTCPDF extends TCPDF
{
var $xheadertext = 'PDF created using CakePHP and TCPDF' ;
var $xheadercolor = array ( 0 , 0 , 200 );
var $xfootertext = 'Copyright © %d XXXXXXXXXXX. All rights reserved.' ;
var $xfooterfont = PDF_FONT_NAME_MAIN ;
var $xfooterfontsize = 8 ;
2009-10-11 01:59:21 -07:00
2009-10-08 01:42:23 -07:00
/**
* Overwrites the default header
* set the text in the view using
* $fpdf -> xheadertext = 'YOUR ORGANIZATION' ;
* set the fill color in the view using
* $fpdf -> xheadercolor = array ( 0 , 0 , 100 ); ( r , g , b )
* set the font in the view using
* $fpdf -> setHeaderFont ( array ( 'YourFont' , '' , fontsize ));
*/
2009-10-11 01:59:21 -07:00
function Page1Header ()
2009-10-08 01:42:23 -07:00
{
2009-10-08 22:07:50 -07:00
2009-10-08 01:42:23 -07:00
list ( $r , $b , $g ) = $this -> xheadercolor ;
2009-10-08 22:07:50 -07:00
2009-10-08 01:42:23 -07:00
//$this->setY(10); // shouldn't be needed due to page margin, but helas, otherwise it's at the page top
2009-10-08 22:07:50 -07:00
2009-10-08 01:42:23 -07:00
$this -> SetFillColor ( 255 , 255 , 255 );
2009-10-08 22:07:50 -07:00
$this -> SetTextColor ( 0 , 0 , 152 ); //Set the Text Color to Blue
2009-10-08 01:42:23 -07:00
2009-10-11 01:59:21 -07:00
// $this->Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $ismask, $imgmask, $border, $fitbox, $hidden)
$this -> Image ( K_PATH_IMAGES . 'cmclogosmall.jpg' , 10 , 10 , 30 , 0 , null , 'http://www.cmctechnologies.com.au' , null , false , null , 'L' );
2009-10-08 22:07:50 -07:00
$this -> Cell ( 30 );
$this -> SetFont ( 'times' , 'B' );
2009-10-11 01:59:21 -07:00
$this -> SetFontSize ( 30 );
2009-10-08 01:42:23 -07:00
$this -> Cell ( 0 , 0 , $this -> xheadertext , 0 , 1 , 'C' , 1 );
2009-10-08 22:07:50 -07:00
$this -> SetFontSize ( 10 );
2009-10-11 01:59:21 -07:00
$this -> SetY ( 22 );
2009-10-08 22:07:50 -07:00
$this -> Cell ( 30 );
2009-10-09 00:10:41 -07:00
$this -> Cell ( 0 , 0 , " PTY LIMITED ACN: 47 085 991 224 ABN: 47 085 991 224 " , 0 , 1 , 'C' , 1 );
2009-10-08 22:07:50 -07:00
2009-10-09 00:10:41 -07:00
2009-10-15 23:43:17 -07:00
$this -> Rect ( $this -> GetX () + 33 , $this -> GetY () + 2 , 157 , 2 , 'DF' , array ( 'width' => 0 ), array ( 0 , 0 , 0 ));
2009-10-08 22:07:50 -07:00
/* Start the contact details */
$this -> SetTextColor ( 0 ); //Set the Text Color to Black
2009-10-14 23:58:09 -07:00
$this -> MultiCell ( 18 , 0 , " Phone: \n Fax: \n Email: \n Web Site: \n " , 0 , 'L' , 0 , 0 , 45 , 32 );
2009-10-08 22:07:50 -07:00
$this -> MultiCell ( 50 , 0 , " +61 2 9669 4000<br>+61 2 9669 4111<br><a href= \" mailto:sales@cmctechnologies.com.au \" >sales@cmctechnologies.com.au</a>
< br >< a href = \ " http://www.cmctechnologies.com.au \" >www.cmctechnologies.com.au</a><br> " , 0 , 'L' , 0 , 0 , 65 , null , true , 0 , true );
$this -> MultiCell ( 50 , 0 , " Unit 19, 77 Bourke Rd \n Alexandria \n NSW 2015 \n AUSTRALIA \n " , 0 , 'L' , 0 , 0 , 150 , null );
$this -> SetTextColor ( 0 , 0 , 152 ); //Set the Text Color to Blue
$this -> SetFont ( 'times' , 'B' );
2009-10-14 23:58:09 -07:00
$this -> MultiCell ( 30 , 20 , " Engineering & \n Industrial \n Instrumentation " , 0 , 'L' , 0 , 1 , 10 , 37 );
2009-10-08 22:07:50 -07:00
2009-10-08 01:42:23 -07:00
}
/**
* Overwrites the default footer
* set the text in the view using
* $fpdf -> xfootertext = 'Copyright © %d YOUR ORGANIZATION. All rights reserved.' ;
*/
2009-10-15 23:43:17 -07:00
function Page1Footer ()
2009-10-08 01:42:23 -07:00
{
$this -> SetY ( - 20 );
2009-10-29 23:29:20 -07:00
$this -> Image ( K_PATH_IMAGES . 'cmcfooter.jpg' , null , 255 , 200 , 0 , null , 'http://www.cmctechnologies.com.au' , null , false , null , 'C' );
2009-10-08 22:07:50 -07:00
}
/**
* For Quotes and ( hopefully ) Invoices . Identifies who the document is for , date , reference number , etc .
*/
2009-10-15 23:43:17 -07:00
function DetailsBox ( $companyName , $emailTo , $attention , $fromName , $fromEmail , $enquiryNumber , $your_reference ) {
2009-10-08 22:07:50 -07:00
2009-10-09 00:10:41 -07:00
$this -> SetTextColor ( 0 ); //Black Text
$boxYstart = 45 ;
2009-10-11 01:59:21 -07:00
$boxXstart = 10 ;
2009-10-09 00:10:41 -07:00
$firstColWidth = 40 ;
2009-10-29 23:29:20 -07:00
$secondColWidth = 70 ;
2009-10-09 00:10:41 -07:00
$thirdColWidth = 30 ;
2009-10-14 23:58:09 -07:00
$fourthColWidth = - 10 ;
2009-10-09 00:10:41 -07:00
$pageNo = $this -> PageNoFormatted ();
//$pageOf = $this->getAliasNbPages();
2009-10-15 23:43:17 -07:00
/* Debugging Vars
2009-10-14 23:58:09 -07:00
$companyName = " LONG COMPANY NAME TRADING AS MR AWESOME PTY LTD LONG COMPANY NAME TRADING AS MR AWESOME PTY LTD " ;
2009-10-09 00:10:41 -07:00
$emailTo = " theman@theman.com " ;
$attention = " Joe Bloggs " ;
$fromName = " Mr Sales Man " ;
$fromEmail = " SalesMan@cmctechnologies.com.au " ;
$enquiryNumber = " CMC1234NE22656-41 " ;
2009-10-15 23:43:17 -07:00
*/
2009-10-08 22:07:50 -07:00
2009-10-09 00:10:41 -07:00
2009-10-14 23:58:09 -07:00
$this -> SetXY ( $boxXstart , 55 );
$heightNeeded = $this -> getNumLines ( $companyName , $secondColWidth );
echo " Height needed: $heightNeeded " ;
2009-10-09 00:10:41 -07:00
2009-10-14 23:58:09 -07:00
$lineHeight = 6.40997 ; //Size of a single line of text. If the company name is more, multiply this by the number of lines it needs.
2009-10-15 23:43:17 -07:00
2009-10-14 23:58:09 -07:00
// $lineHeight = 0;
2009-10-09 00:10:41 -07:00
2009-10-14 23:58:09 -07:00
// $this->MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml);
$this -> MultiCell ( $firstColWidth , $lineHeight * $heightNeeded , " QUOTATION TO: " , 'LTR' , 'L' , 0 , 0 );
$this -> MultiCell ( $secondColWidth , $lineHeight * $heightNeeded , $companyName , 'LTR' , 'L' , 0 , 0 );
2009-10-11 01:59:21 -07:00
2009-10-14 23:58:09 -07:00
$this -> MultiCell ( $thirdColWidth , $lineHeight * $heightNeeded , " FROM: " , 'LT' , 'L' , 0 , 0 );
2009-10-15 23:43:17 -07:00
$this -> MultiCell ( $fourthColWidth , $lineHeight * $heightNeeded , " <a href= \" mailto: $fromEmail\ " > $fromName </ a > " , 'TR', 'L', 0, 1, null,null, true,0,true); //Start a new line after this.
2009-10-14 23:58:09 -07:00
// echo "Last height: ".$this->getLastH();
2009-10-11 01:59:21 -07:00
2009-10-14 23:58:09 -07:00
$this -> MultiCell ( $firstColWidth , 0 , " EMAIL TO: " , 'LR' , 'L' , 0 , 0 );
$this -> MultiCell ( $secondColWidth , 0 , " <a href= \" mailto: $emailTo\ " > $emailTo </ a > " , 'LR','L', 0, 0, null, null, true, 0, true);
$this -> MultiCell ( $thirdColWidth , 0 , " CMC REF#: " , 'L' , 'L' , 0 , 0 );
$this -> MultiCell ( $fourthColWidth , 0 , $enquiryNumber , 'R' , 'L' , 0 , 1 ); //Start a new line after thi
2009-10-09 00:10:41 -07:00
2009-10-14 23:58:09 -07:00
$this -> MultiCell ( $firstColWidth , 0 , " ATTENTION: " , 'LRB' , 'L' , 0 , 0 );
$this -> MultiCell ( $secondColWidth , 0 , $attention , 'LRB' , 'L' , 0 , 0 );
$this -> MultiCell ( $thirdColWidth , 0 , " PAGE: " , 'LB' , 'L' , 0 , 0 );
$this -> MultiCell ( $fourthColWidth , 0 , " $pageNo of { nb} " , 'BR' , 'L' , 0 , 1 );
2009-10-09 00:10:41 -07:00
2009-10-15 23:43:17 -07:00
$todaysDateString = date ( 'l, j F Y' );
$this -> MultiCell ( $firstColWidth + $secondColWidth , 0 , " DATE: $todaysDateString " , 'LRB' , 'L' , 0 , 0 );
$this -> MultiCell ( $thirdColWidth , 0 , " YOUR REF: " , 'LB' , 'L' , 0 , 0 );
2009-10-09 00:10:41 -07:00
2009-10-15 23:43:17 -07:00
$this -> MultiCell ( $fourthColWidth , 0 , $your_reference , 'BR' , 'L' , 0 , 1 );
$this -> SetFontSize ( 6 );
//Kinda lame that I cant seem to wrap this text nicer. But Whatever.
$this -> MultiCell ( 0 , 0 , 'The information in this document is confidential and may be privileged. If you are not the indended recipient then access, disclosure, copying or other dissemination of the contents of t his message is unauthorised and may be unlawful. Please inform the sender immediately if you are not the intended addressee.' ,
'' , 'L'
);
2009-10-14 23:58:09 -07:00
/*
2009-10-15 23:43:17 -07:00
*
2009-10-14 23:58:09 -07:00
*
2009-10-09 00:10:41 -07:00
$this -> Cell ( $firstColWidth , 0 , " ATTENTION: " , 'LTRB' , 0 , 'L' , 0 , null , 0 , false );
$this -> Cell ( $secondColWidth , 0 , $attention , 'LTRB' , 0 , 'L' , 0 , " mailto: $emailTo " , 0 , false );
$this -> Cell ( $thirdColWidth , 0 , " PAGE: " , 'LTB' , 0 , 'L' , 0 , null , 0 , false );
$this -> Cell ( $fourthColWidth , 0 , " $pageNo of { nb} " , 'TBR' , 1 , 'L' , 0 , null , 0 , false ); //Start a new line after thi
2009-10-14 23:58:09 -07:00
*/
2009-10-15 23:43:17 -07:00
// $this->lastPage();
2009-10-09 00:10:41 -07:00
//$this->Cell($w, $h, $txt, $border, $ln, $align, $fill, $link, $stretch, $ignore_min_height)
// $this->MultiCell($firstColWidth, 0, "QUOTATION TO:", 'LTRB', 'L', 0, 0, $boxXstart, $boxYstart, false, false, true, false, 0);
//Next Cell to the right.
//$this->MultiCell(50, 0, "COMPANY NAME", 'LTRB', 'L', 0, 0, $boxXstart, $boxYstart+$firstColWidth, true, false, true, true, 0);
//$this->MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml, $autopadding, $maxh)
2009-10-08 01:42:23 -07:00
}
2009-10-15 23:43:17 -07:00
2009-10-29 23:29:20 -07:00
function continuedHeader ( $cmcRef ) {
$this -> Image ( K_PATH_IMAGES . 'cmclogosmall.jpg' , 10 , 10 , 15 , 13.6 , null , 'http://www.cmctechnologies.com.au' , null , false , null , 'L' );
$this -> SetFontSize ( 10 );
$pageNo = $this -> PageNoFormatted ();
$this -> MultiCell ( 0 , 13.6 , " $cmcRef PAGE $pageNo OF { nb} " , '' , 'R' );
//$this->MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml)
//$this->Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi)
2009-10-15 23:43:17 -07:00
}
2009-10-08 01:42:23 -07:00
}
2009-10-10 00:06:46 -07:00
?>