doctype = $doctype; $this->setupTax(); } /*********************************** * data aggregation functions ***********************************/ public function addItem($rdata){ $rdata['tprice'] = $rdata['amount']*$rdata['price']; $this->items[]=$rdata; } public function setFooter1($rdata){ $this->footer[0]=$rdata; } public function setFooter2($rdata){ $this->footer[1]=$rdata; } public function setLogo($logofile) { $this->logofile = "../pdf/images/".$logofile; } public function Header() { $this->Line(0,87,2,87); $this->Line(0,148,4,148); $this->Line(0,192,2,192); if(isset($this->logofile)) $this->Image($this->logofile,15,10,110); } public function Footer() { $this->SetXY(10,-34); $this->SetFont('HelveticaCond','',8); $this->Cell(0,10,'Seite '.$this->PageNo().'/{nb}',0,0,'C'); $this->SetXY(10,-26); $this->SetDrawColor(50); $this->SetTextColor(50); $this->SetFont('HelveticaCond','',7); $this->MultiCell(45,3," Sitz der Gesellschaft / Lieferanschrift\n WaWision GmbH\n Holzbachstraße 4\n D-86152 Augsburg\n Telefon +49 821 27 95 99 0\n Telefax +49 821 27 95 99 20",'L','L'); $this->SetXY(55,-26); $this->MultiCell(40,3," Geschäftsführer:\n Dipl.-Inf.(FH) Benedikt Sauter\n Handelsregister: HRB 23930\n Amtsgericht: Augsburg\n \n ",'L','L'); if(isset($this->footer[0])){ $this->SetXY(95,-26); $this->MultiCell(50,3,$this->footer[0],'L','L'); } if(isset($this->footer[1])){ $this->SetXY(145,-26); $this->MultiCell(50,3,$this->footer[1],'LR','L'); } } public function displayDocument() { $this->renderDocument(); $this->Output(); } public function sendDocument() { $this->renderDocument(); return $this->Output($this->filename,'S'); } /*********************************** * private functions ***********************************/ // setup relevant data for a invoice private function setupTax() { // full taxrate define("USTV",0.19); // reduced taxrate define("USTR",0.07); } private function renderDocument() { // prepare page details parent::PDF('P','mm','A4'); $this->AddFont('HelveticaBoldCond','','HLBC____.php'); $this->AddFont('HelveticaBoldCondItalic','','HLBCO___.php'); $this->AddFont('HelveticaCond','','HLC_____.php'); $this->AddFont('HelveticaCondItalic','','HLCO____.php'); // invoke Header() and Footer() by adding a new page $this->AddPage(); $this->SetDisplayMode("real","single"); $this->SetMargins(15,50); $this->SetAutoPageBreak(true,30); $this->AliasNbPages('{nb}'); if(!empty($this->items)) $this->renderItems(); } private function renderItems() { $amWidth = 15; $itemNoWidth = 35; $eanWidth = 38; $descWidth = 85; $taxWidth = 22; $priceWidth = 22; $sumWidth = 22; // $lineLength = $amWidth + $itemNoWidth + $descWidth + $taxWidth + $priceWidth + $sumWidth; $cellhoehe = 5; // render table header if(isset($this->textDetails['body'])) $this->Ln(); else $this->Ln(31); $this->SetFont('HelveticaBoldCond','',10); $this->Cell($amWidth,6,'Menge',0,0,'C'); $this->Cell($itemNoWidth,6,'Artikelnr',0,0,'C'); $this->Cell($eanWidth,6,'EAN',0,0,'C'); $this->Cell($descWidth,6,'Artikel'); $this->Ln(); $this->Line($this->GetX(), $this->GetY(), 190, $this->GetY()); $this->Ln(2); // render table body $this->SetFont('HelveticaCond','',10); foreach($this->items as $item){ $this->Cell($amWidth,$cellhoehe,$item['amount'],0,0,'C'); $this->Cell($itemNoWidth,$cellhoehe,$item['itemno'],0,0,'L'); // $this->Code39($this->GetX(),$this->GetY()+1,$item['barcode'],0.5,3); $this->Cell($eanWidth); $this->Cell($descWidth,$cellhoehe,$item['name'],0); $this->Ln(); if(isset($item['desc'])) { $this->SetFont('HelveticaCond','',8); $this->Cell($amWidth); $this->Cell($itemNoWidth); $this->Cell($eanWidth); $this->MultiCell($descWidth,3,$item['desc'],0); $this->Ln(); $this->SetFont('HelveticaCond','',10); } } $this->Line($this->GetX(), $this->GetY(), 190, $this->GetY()); } }