<?php
require_once 'PhonalisaPDF.php';

class SpeedDialPDFGenerator {
	
	private $pdf = NULL;
	public function init($title = "", $subject = "") {
		
		$this->pdf = new PhonalisaPDF ( PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false );
		// set document information
		$this->pdf->SetCreator ( PDF_CREATOR );
		$this->pdf->SetAuthor ( cfg ( "PHONALISA_NAME" ) );
		$this->pdf->SetTitle ( $title );
		$this->pdf->SetSubject ( $subject );
		$this->pdf->SetKeywords ( 'Phonalisa, ' );
		
		// set default header data
		$this->pdf->SetHeaderData ( PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, $title, $subject, array (
				0,
				64,
				255 
		), array (
				0,
				64,
				128 
		) );
		$this->pdf->setFooterData ( array (
				0,
				64,
				0 
		), array (
				0,
				64,
				128 
		) );
		
		// set header and footer fonts
		$this->pdf->setHeaderFont ( Array (
				PDF_FONT_NAME_MAIN,
				'',
				PDF_FONT_SIZE_MAIN 
		) );
		$this->pdf->setFooterFont ( Array (
				PDF_FONT_NAME_DATA,
				'',
				PDF_FONT_SIZE_DATA 
		) );
		
		// set default monospaced font
		$this->pdf->SetDefaultMonospacedFont ( PDF_FONT_MONOSPACED );
		
		// set margins
		$this->pdf->SetMargins ( PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT );
		$this->pdf->SetHeaderMargin ( PDF_MARGIN_HEADER );
		$this->pdf->SetFooterMargin ( PDF_MARGIN_FOOTER );
		
		// set auto page breaks
		$this->pdf->SetAutoPageBreak ( TRUE, PDF_MARGIN_BOTTOM );
		
		// set image scale factor
		$this->pdf->setImageScale ( PDF_IMAGE_SCALE_RATIO );
		
		// set some language-dependent strings (optional)
		if (@file_exists ( dirname ( __FILE__ ) . '/lang/eng.php' )) {
			require_once (dirname ( __FILE__ ) . '/lang/eng.php');
			$this->pdf->setLanguageArray ( $l );
		}
		
		// ---------------------------------------------------------
		
		// set default font subsetting mode
		$this->pdf->setFontSubsetting ( true );
		
		// Set font
		// dejavusans is a UTF-8 Unicode font, if you only need to
		// print standard ASCII chars, you can use core fonts like
		// helvetica or times to reduce file size.
		$this->pdf->SetFont ( 'dejavusans', '', 11, '', true );
	}
	
	public function generate(array $speedDials) {
		$this->pdf->AddPage ();
		
		// set text shadow effect
		$this->pdf->setTextShadow ( array (
				'enabled' => true,
				'depth_w' => 0.2,
				'depth_h' => 0.2,
				'color' => array (
						196,
						196,
						196 
				),
				'opacity' => 1,
				'blend_mode' => 'Normal' 
		) );
		$header = array (
				__ ( 'SPEED_DIAL_PREFIX_PHONE_KEY' ),
				__ ( 'SPEED_DIAL_MODEL_PHONENUMBER' ),
				__ ( 'SPEED_DIAL_MODEL_DESCRIPTION' ) 
		);
		$footer = array ();
		$data = array ();
	
		$prefix = cfg("DP_SPEED_DIAL_ON_PREFIX");
		foreach ( $speedDials as $speedDial ) {
			$set = array ();
			$set [] = $prefix.$speedDial->key;
			$set [] = $speedDial->phoneNumber;
			$set [] = $speedDial->description;
			$data[$speedDial->key] = $set;
		}
		ksort($data);
		
		$headerCols = array(25, 50, 95);
		
		// print colored table
		$this->pdf->ColoredTable ( $header, $footer, $data, $headerCols);
		
		// Set some content to print
		/*
		 * $html = ' <h2>'.__("INVOICE_TOTAL_PRICE").': '.$totalPriceCent.'</h2> <i>This is the first example of TCPDF library.</i> <p>This text is printed using the <i>writeHTMLCell()</i> method but you can also use: <i>Multicell(), writeHTML(), Write(), Cell() and Text()</i>.</p> <p>Please check the source code documentation and other examples for further information.</p> <p style="color:#CC0000;">TO IMPROVE AND EXPAND TCPDF I NEED YOUR SUPPORT, PLEASE <a href="http://sourceforge.net/donate/index.php?group_id=128076">MAKE A DONATION!</a></p> '; // Print text using writeHTMLCell() $this->pdf->writeHTML($html, true, false, true, false, '');
		 */
		// $this->pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
		
		$this->pdf->Output ( 'keys.pdf', 'I' );
	}
}