class_mcFPDF.inc.php 2.37 KB
<?php
/** 
 * @copyright (c) 2014, netz.coop eG
 */

class mcFPDF extends FPDF {

	protected static function setCell(FPDF $param_fpdf, $param_value, $param_x, $param_width, $param_align='L') {
		$param_fpdf->SetX($param_x);
		if($param_width < 0) {
			$param_width = 0;
		}
		$param_fpdf->Cell($param_width, 7, $param_value, 0, 0, $param_align);
	}

	public static  function tab_setHeadLine(FPDF $param_fpdf, array $param_values, array $param_table_parameter=null, $param_left= 10) {
		$param_fpdf->SetFont('Arial', 'B', 8);
		self::tab_setLine($param_fpdf, $param_values, $param_table_parameter);
		// Linienfarbe auf schwarz einstellen
//		$param_fpdf->SetDrawColor(0, 0, 0);
		// Linienbreite einstellen, 0.2 mm
//		$param_fpdf->SetLineWidth(0.2);

		// Linien zeichnen 
//		$param_fpdf->Line($param_left, $param_fpdf->getY(), 186, $param_fpdf->getY());
//		$param_fpdf->Line($param_left, $param_fpdf->getY(), 0, $param_fpdf->getY());
		$param_fpdf->ncLine(0.2, array(0, 0, 0));
//		$param_fpdf->Line(20, 40, 222, 40);

		$param_fpdf->Ln(3);
	}

	private static  function tab_getdefaultTableParameter() {
		$table_parameter = array();
		$table_parameter['leftPostions'] = array();
		foreach($param_values as $tmp) {
			$table_parameter['leftPostions'][] = array('pos'	=>	20,		'align' => 'L');
		}
		$table_parameter['linesize'] = 5;
		return $table_parameter;
	}

	public static  function tab_setLine(FPDF $param_fpdf, array $param_values, array $param_table_parameter=null) {

		if(is_null($param_table_parameter)) {
			$param_table_parameter = self::tab_getdefaultTableParameter();
		}

		if(count($param_table_parameter['leftPostions']) == count($param_values)) {
			foreach($param_values as $id => $value) {
				if(array_key_exists($id+1, $param_table_parameter['leftPostions'])) {
					self::setCell($param_fpdf, $value, $param_table_parameter['leftPostions'][$id]['pos'], $param_table_parameter['leftPostions'][$id+1]['pos']-$param_table_parameter['leftPostions'][$id]['pos'], $param_table_parameter['leftPostions'][$id]['align']);
				} else {
//					echo $param_fpdf->lMargin.' | '.$param_fpdf->rMargin.'<br/>';
					self::setCell($param_fpdf, $value, $param_table_parameter['leftPostions'][$id]['pos'], $param_fpdf->rMargin-$param_table_parameter['leftPostions'][$id]['pos'], $param_table_parameter['leftPostions'][$id]['align']);
				}
				
			}
		}
		$param_fpdf->Ln($param_table_parameter['linesize']);
	}

}

?>