mythri Posted February 7, 2015 Share Posted February 7, 2015 Hello, I am trying to generate pdf dynamically using fpdf. But i am getting it very difficult. Only half of the result i could get. I want to generate my pdf like this And now i am getting like this Here is the code for pdf <?php require('../fpdf/fpdf.php'); error_reporting(-1); $id = $_GET['order_id']; $db = new mysqli('localhost','root','','dbnme'); // use your credentials class INVPDF extends FPDF { var $id; var $today; var $widths; var $heads; var $aligns; var $formats; var $db; var $invTotal = 0; function INVPDF($invno, $db) { parent::fpdf(); $this->id = $invno; $this->db = $db; $this->today = date('jS M Y'); $this->heads = array('Item', 'UOM', 'Price', 'Qty', 'Disc %', 'Tax', 'Frt', 'Total' ); $this->widths = array (45, 15, 35, 15, 15, 20, 25, 30); $this->aligns = array ('L','C','L','C','C','R','C', 'C'); $this->formats = array (0,0,0,0,0,1,0,0); } //Page header function Header() { //Arial bold 15 //Title include("../connect.php"); $ss1 = "select orders.sales_order_id, orders.company_id, lead_address.address, lead_address.address_category, lead_address.country, lead_address.state, lead_address.company_id, lead_address.city,lead_address.pin from orders INNER JOIN lead_address ON orders.company_id=lead_address.company_id where lead_address.address_category='Billing' AND orders.sales_order_id='".$_GET['order_id']."'"; $mq1 = mysql_query($ss1) or die(mysql_error()); $rr1 = mysql_fetch_array($mq1); $billing = $rr1['address']; list($line1, $line2, $line3) = explode(',',$billing); $country = $rr1['country']; $state = $rr1['state']; $city = $rr1['city']; $pin = $rr1['pin']; //list($line1, $line2, $country, $state, $city, $pin) = explode(',',$address); $ss2 = "select orders.sales_order_id, orders.company_id, lead_address.address, lead_address.address_category, lead_address.country, lead_address.state, lead_address.company_id, lead_address.city,lead_address.pin from orders INNER JOIN lead_address ON orders.company_id=lead_address.company_id where lead_address.address_category='Shipping' AND orders.sales_order_id='".$_GET['order_id']."'"; $mq2 = mysql_query($ss2) or die(mysql_error()); $rr2 = mysql_fetch_array($mq2); $shipping = $rr2['address']; $country1 = $rr2['country']; $state1 = $rr2['state']; $city1 = $rr2['city']; $pin1 = $rr2['pin']; $this->setXY(10,20); // $this->Cell(0,10,'Quotation '.$this->id,0,2,'L'); $this->Image('logo.png',20,6,15); $this->setXY(12,20); // $this->SetFont('OpenSans','',7); $this->Cell(0,10,'Company Name. ',0,2,'L'); $this->Cell(0,0,'Address1, address2',0,2,'L'); $this->Cell(0,8,'city, stte',0,2,'L'); $this->Cell(0,2,'[email protected]',0,2,'L'); //$this->Image('images/logo.png',10,6,60); $this->SetFont('OpenSans','',7); $this->setXY(12,50); $this->Cell(0,-2,'Shipping Address',$this->id,0,2,0,'L'); $this->SetFont('OpenSans','',7); $this->setXY(12,52); $this ->MultiCell(57,22,'', 'LRTB', 'L', 1); //$this->Cell(0,8,$name,$this->id,0,2,0,'L'); $this->setXY(12,55); $this->Cell(0,-1,$shipping,$this->id,0,2,0,'L'); $this->setXY(12,53); $this->Cell(0,10,$country." , ".$state,$this->id,0,2,0,'L'); $this->setXY(12,52); $this->Cell(0,20,$city." , ".$pin,$this->id,0,2,0,'L'); $this->SetFont('OpenSans','',7); $this->setXY(140,52); $this ->MultiCell(57,22,'', 'LRTB', 'L', 1); $this->setXY(140,34); $this->Cell(0,30,'Billing Address',$this->id,0,2,0,'L'); $this->SetFont('OpenSans','',7); $this->setXY(140,35); $this->Cell(0,40,$line1." , ".$line2, $this->id,0,2,0,'L'); $this->setXY(140,35); $this->Cell(0,49,$line3, $this->id,0,2,0,'L'); $this->setXY(140,33); $this->Cell(0,62,$city1." , ".$pin1,$this->id,0,2,0,'L'); $this->setXY(140,33); $this->Cell(0,70,$country1." , ".$state1,$this->id,0,2,0,'L'); $this->SetFont('OpenSans','',7); $this->setXY(10,5); $this->Cell(0,10,'QUOTATION: '.$this->id,0,2,'R'); $this->SetFont('OpenSans','',7); $until = date ('jS F Y', strtotime($this->today)); $this->Cell(0,0,'Date: '.$until,0,2,'R'); $this->SetFont('OpenSans','',7); $this->Cell(0,10,'Due Date: Due on receipt',0,2,'R'); //Line break $this->Ln(60); for ($i=0; $i<9; $i++) { $this->Cell ($this->widths[$i], 8, $this->heads[$i], 1, 0, 'C', 1); } $this->Ln(; } //Page footer function Footer() { # $this->SetY(-50); // Uncomment to position at 5 cm from bottom //Arial italic 8 $this->SetFont('OpenSans','',; $w = array_sum(array_slice($this->widths,0,3)); $this->Cell($w,12,'',1); $this->Cell($this->widths[3],12,'',1,0,'C'); $this->setLeftMargin(45 + array_sum(array_slice($this->widths,0,4))); $this->Cell($this->widths[5],4,'Sub Total',1); $this->Cell($this->widths[6],4,number_format($this->invTotal,2),1,0,'R'); $this->Cell($this->widths[7],4,'USD',1,1,'C'); $this->Cell($this->widths[5],4,'Tax',1); $this->Cell($this->widths[6],4,number_format('Tax amount should come',2),1,0,'R'); $this->Cell($this->widths[7],4,'INR',1,1,'C'); $this->Cell($this->widths[5],4,'Freight',1); $this->Cell($this->widths[6],4,number_format('Freight amount',2),1,0,'R'); $this->Cell($this->widths[7],4,'INR',1,1,'C'); $this->setLeftMargin(10); $this->Cell($this->widths[5],4,'Total',1); $this->Cell($this->widths[6],4,number_format('Overall Toatl',2),1,0,'R'); $this->Cell($this->widths[7],4,'INR',1,1,'C'); $this->SetFont('OpenSans','',6); $this->Cell($w,10,'',0,0,'L'); $this->Cell(30,4,'Private Limited Company - TIN: 345sddd - PAN: sf43534',0,0,'C'); //$this->Cell($w,10,''); $this->Cell(-30,12,'SRVC TAX: gddddddddddd - CIN: sdgdgdgdfgfdgfg',0,0,'C'); $this->Cell(30,20,'This document has been electronically generated and requires no physical signature or stamp.',0,0,'C'); } function makeInvoice() { $sql = "select before_order_line_items.item, before_order_line_items.description, before_order_line_items.uom, before_order_line_items.selling_price, before_order_line_items.quantity, before_order_line_items.discount, before_order_line_items.tax, before_order_line_items.freight, before_order_line_items.tax_amount, before_order_line_items.total, items.name as iname, taxes.tax_id, taxes.name as tname, taxes.rate from before_order_line_items inner join items on before_order_line_items.item=items.item_id inner join taxes on before_order_line_items.tax=taxes.tax_id where before_order_line_items.sales_order_id = '".$_GET['order_id']."' "; //echo $sql; $res = $this->db->query($sql) or die($this->db->error); $this->SetFont('OpenSans','',; if ($res->num_rows > 0) { while ($r = $res->fetch_row()) { $this->invTotal += $r[10]; foreach ($r as $c => $value) { //echo $value; if ($this->formats[$c]) { $value = number_format($value); // echo $value; } $this->Cell($this->widths[$c],10,$value,'LR',0, $this->aligns[$c]); } $this->Ln(); //$amount = number_format($amount+$value); } } } } # invpdf class $invno = $_GET['order_id']; //Instantiation of inherited class $pdf = new INVPDF($invno, $db); $pdf->Open(); $pdf->AliasNbPages(); $pdf->setLeftMargin(10); $pdf->setRightMargin(10); $pdf->AddFont('OpenSans','','Opensans-Regular.php'); $pdf->SetFont('OpenSans','',7); $pdf->SetDrawColor(102); $pdf->SetFillColor(220); $pdf->AddPage(); $pdf->makeInvoice(); $pdf->Output(); ?> Can somebody please help me how to do it? or is there any example code for something similar to this. Thanks Link to comment https://forums.phpfreaks.com/topic/294441-generating-pdf-dynamically-through-fpdf/ Share on other sites More sharing options...
mythri Posted February 7, 2015 Author Share Posted February 7, 2015 Can somebody plz help me Link to comment https://forums.phpfreaks.com/topic/294441-generating-pdf-dynamically-through-fpdf/#findComment-1505155 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.