<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <div class="floatL cont_lft_side"> <form method="POST" action="generatePdf.php" id="frmCtnt" name="frmCtnt"> <div class="txt_stl"> <input type="text" value="Enter Your Full Name" name="name" onblur="if(this.value=='')this.value=this.defaultValue;" onfocus="if(this.value==this.defaultValue)this.value='';"> </div> <br> <div class="txt_stl"> <input type="text" value="Enter Your Email Id" name="email" onblur="if(this.value=='')this.value=this.defaultValue;" onfocus="if(this.value==this.defaultValue)this.value='';"> </div> <br> <div class="txt_stl"> <input type="text" value="Enter Your Contact Number" name="mobile" onblur="if(this.value=='')this.value=this.defaultValue;" onfocus="if(this.value==this.defaultValue)this.value='';"> </div> <br> <div class="txt_stl"> </div> <br> <input class="or_btn_icon" type="submit" value="Submit"> </form> </div> </body> </html> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-38304687-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script>
<?php /******************************************************************************* * FPDF * * * * Version: 1.7 * * Date: 2011-06-18 * * Author: Olivier PLATHEY * *******************************************************************************/ class FPDF { var $page; // current page number var $n; // current object number var $offsets; // array of object offsets var $buffer; // buffer holding in-memory PDF var $pages; // array containing pages var $state; // current document state var $compress; // compression flag var $k; // scale factor (number of points in user unit) var $DefOrientation; // default orientation var $CurOrientation; // current orientation var $StdPageSizes; // standard page sizes var $DefPageSize; // default page size var $CurPageSize; // current page size var $PageSizes; // used for pages with non default sizes or orientations var $wPt, $hPt; // dimensions of current page in points var $w, $h; // dimensions of current page in user unit var $lMargin; // left margin var $tMargin; // top margin var $rMargin; // right margin var $bMargin; // page break margin var $cMargin; // cell margin var $x, $y; // current position in user unit var $lasth; // height of last printed cell var $LineWidth; // line width in user unit var $fontpath; // path containing fonts var $CoreFonts; // array of core font names var $fonts; // array of used fonts var $FontFiles; // array of font files var $diffs; // array of encoding differences var $FontFamily; // current font family var $FontStyle; // current font style var $underline; // underlining flag var $CurrentFont; // current font info var $FontSizePt; // current font size in points var $FontSize; // current font size in user unit var $DrawColor; // commands for drawing color var $FillColor; // commands for filling color var $TextColor; // commands for text color var $ColorFlag; // indicates whether fill and text colors are different var $ws; // word spacing var $images; // array of used images var $PageLinks; // array of links in pages var $links; // array of internal links var $AutoPageBreak; // automatic page breaking var $PageBreakTrigger; // threshold used to trigger page breaks var $InHeader; // flag set when processing header var $InFooter; // flag set when processing footer var $ZoomMode; // zoom display mode var $LayoutMode; // layout display mode var $title; // title var $subject; // subject var $author; // author var $keywords; // keywords var $creator; // creator var $AliasNbPages; // alias for total number of pages var $PDFVersion; // PDF version number /******************************************************************************* * * * Public methods * * * *******************************************************************************/ function FPDF($orientation='P', $unit='mm', $size='A4') { // Some checks $this->_dochecks(); // Initialization of properties $this->page = 0; $this->n = 2; $this->buffer = ''; $this->state = 0; $this->InHeader = false; $this->InFooter = false; $this->lasth = 0; $this->FontFamily = ''; $this->FontStyle = ''; $this->FontSizePt = 12; $this->underline = false; $this->DrawColor = '0 G'; $this->FillColor = '0 g'; $this->TextColor = '0 g'; $this->ColorFlag = false; $this->ws = 0; // Font path { $this->fontpath = FPDF_FONTPATH; $this->fontpath .= '/'; } else $this->fontpath = ''; // Core fonts // Scale factor if($unit=='pt') $this->k = 1; elseif($unit=='mm') $this->k = 72/25.4; elseif($unit=='cm') $this->k = 72/2.54; elseif($unit=='in') $this->k = 72; else $this->Error('Incorrect unit: '.$unit); // Page sizes $size = $this->_getpagesize($size); $this->DefPageSize = $size; $this->CurPageSize = $size; // Page orientation if($orientation=='p' || $orientation=='portrait') { $this->DefOrientation = 'P'; $this->w = $size[0]; $this->h = $size[1]; } elseif($orientation=='l' || $orientation=='landscape') { $this->DefOrientation = 'L'; $this->w = $size[1]; $this->h = $size[0]; } else $this->Error('Incorrect orientation: '.$orientation); $this->CurOrientation = $this->DefOrientation; $this->wPt = $this->w*$this->k; $this->hPt = $this->h*$this->k; // Page margins (1 cm) $margin = 28.35/$this->k; $this->SetMargins($margin,$margin); // Interior cell margin (1 mm) $this->cMargin = $margin/10; // Line width (0.2 mm) $this->LineWidth = .567/$this->k; // Automatic page break $this->SetAutoPageBreak(true,2*$margin); // Default display mode $this->SetDisplayMode('default'); // Enable compression $this->SetCompression(true); // Set default PDF version number $this->PDFVersion = '1.3'; } function SetMargins($left, $top, $right=null) { // Set left, top and right margins $this->lMargin = $left; $this->tMargin = $top; if($right===null) $right = $left; $this->rMargin = $right; } function SetLeftMargin($margin) { // Set left margin $this->lMargin = $margin; if($this->page>0 && $this->x<$margin) $this->x = $margin; } function SetTopMargin($margin) { // Set top margin $this->tMargin = $margin; } function SetRightMargin($margin) { // Set right margin $this->rMargin = $margin; } function SetAutoPageBreak($auto, $margin=0) { // Set auto page break mode and triggering margin $this->AutoPageBreak = $auto; $this->bMargin = $margin; $this->PageBreakTrigger = $this->h-$margin; } function SetDisplayMode($zoom, $layout='default') { // Set display mode in viewer if($zoom=='fullpage' || $zoom=='fullwidth' || $zoom=='real' || $zoom=='default' || !is_string($zoom)) $this->ZoomMode = $zoom; else $this->Error('Incorrect zoom display mode: '.$zoom); if($layout=='single' || $layout=='continuous' || $layout=='two' || $layout=='default') $this->LayoutMode = $layout; else $this->Error('Incorrect layout display mode: '.$layout); } function SetCompression($compress) { // Set page compression $this->compress = $compress; else $this->compress = false; } function SetTitle($title, $isUTF8=false) { // Title of document if($isUTF8) $title = $this->_UTF8toUTF16($title); $this->title = $title; } function SetSubject($subject, $isUTF8=false) { // Subject of document if($isUTF8) $subject = $this->_UTF8toUTF16($subject); $this->subject = $subject; } function SetAuthor($author, $isUTF8=false) { // Author of document if($isUTF8) $author = $this->_UTF8toUTF16($author); $this->author = $author; } function SetKeywords($keywords, $isUTF8=false) { // Keywords of document if($isUTF8) $keywords = $this->_UTF8toUTF16($keywords); $this->keywords = $keywords; } function SetCreator($creator, $isUTF8=false) { // Creator of document if($isUTF8) $creator = $this->_UTF8toUTF16($creator); $this->creator = $creator; } function AliasNbPages($alias='{nb}') { // Define an alias for total number of pages $this->AliasNbPages = $alias; } function Error($msg) { // Fatal error } function Open() { // Begin document $this->state = 1; } function Close() { // Terminate document if($this->state==3) return; if($this->page==0) $this->AddPage(); // Page footer $this->InFooter = true; $this->Footer(); $this->InFooter = false; // Close page $this->_endpage(); // Close document $this->_enddoc(); } function AddPage($orientation='', $size='') { // Start a new page if($this->state==0) $this->Open(); $family = $this->FontFamily; $style = $this->FontStyle.($this->underline ? 'U' : ''); $fontsize = $this->FontSizePt; $lw = $this->LineWidth; $dc = $this->DrawColor; $fc = $this->FillColor; $tc = $this->TextColor; $cf = $this->ColorFlag; if($this->page>0) { // Page footer $this->InFooter = true; $this->Footer(); $this->InFooter = false; // Close page $this->_endpage(); } // Start new page $this->_beginpage($orientation,$size); // Set line cap style to square $this->_out('2 J'); // Set line width $this->LineWidth = $lw; // Set font if($family) $this->SetFont($family,$style,$fontsize); // Set colors $this->DrawColor = $dc; if($dc!='0 G') $this->_out($dc); $this->FillColor = $fc; if($fc!='0 g') $this->_out($fc); $this->TextColor = $tc; $this->ColorFlag = $cf; // Page header $this->InHeader = true; $this->InHeader = false; // Restore line width if($this->LineWidth!=$lw) { $this->LineWidth = $lw; } // Restore font if($family) $this->SetFont($family,$style,$fontsize); // Restore colors if($this->DrawColor!=$dc) { $this->DrawColor = $dc; $this->_out($dc); } if($this->FillColor!=$fc) { $this->FillColor = $fc; $this->_out($fc); } $this->TextColor = $tc; $this->ColorFlag = $cf; } { // To be implemented in your own inherited class } function Footer() { // To be implemented in your own inherited class } function PageNo() { // Get current page number return $this->page; } function SetDrawColor($r, $g=null, $b=null) { // Set color for all stroking operations if(($r==0 && $g==0 && $b==0) || $g===null) else if($this->page>0) $this->_out($this->DrawColor); } function SetFillColor($r, $g=null, $b=null) { // Set color for all filling operations if(($r==0 && $g==0 && $b==0) || $g===null) else $this->ColorFlag = ($this->FillColor!=$this->TextColor); if($this->page>0) $this->_out($this->FillColor); } function SetTextColor($r, $g=null, $b=null) { // Set color for text if(($r==0 && $g==0 && $b==0) || $g===null) else $this->ColorFlag = ($this->FillColor!=$this->TextColor); } function GetStringWidth($s) { // Get width of a string in the current font $s = (string)$s; $cw = &$this->CurrentFont['cw']; $w = 0; for($i=0;$i<$l;$i++) $w += $cw[$s[$i]]; return $w*$this->FontSize/1000; } function SetLineWidth($width) { // Set line width $this->LineWidth = $width; if($this->page>0) } function Line($x1, $y1, $x2, $y2) { // Draw a line $this->_out(sprintf('%.2F %.2F m %.2F %.2F l S',$x1*$this->k,($this->h-$y1)*$this->k,$x2*$this->k,($this->h-$y2)*$this->k)); } function Rect($x, $y, $w, $h, $style='') { // Draw a rectangle if($style=='F') $op = 'f'; elseif($style=='FD' || $style=='DF') $op = 'B'; else $op = 'S'; $this->_out(sprintf('%.2F %.2F %.2F %.2F re %s',$x*$this->k,($this->h-$y)*$this->k,$w*$this->k,-$h*$this->k,$op)); } function AddFont($family, $style='', $file='') { // Add a TrueType, OpenType or Type1 font if($file=='') if($style=='IB') $style = 'BI'; $fontkey = $family.$style; return; $info = $this->_loadfont($file); { // Search existing encodings if(!$n) { $this->diffs[$n] = $info['diff']; } $info['diffn'] = $n; } { // Embedded font if($info['type']=='TrueType') else } $this->fonts[$fontkey] = $info; } function SetFont($family, $style='', $size=0) { // Select a font; size given in points if($family=='') $family = $this->FontFamily; else { $this->underline = true; } else $this->underline = false; if($style=='IB') $style = 'BI'; if($size==0) $size = $this->FontSizePt; // Test if font is already selected if($this->FontFamily==$family && $this->FontStyle==$style && $this->FontSizePt==$size) return; // Test if font is already loaded $fontkey = $family.$style; { // Test if one of the core fonts if($family=='arial') $family = 'helvetica'; { if($family=='symbol' || $family=='zapfdingbats') $style = ''; $fontkey = $family.$style; $this->AddFont($family,$style); } else $this->Error('Undefined font: '.$family.' '.$style); } // Select it $this->FontFamily = $family; $this->FontStyle = $style; $this->FontSizePt = $size; $this->FontSize = $size/$this->k; $this->CurrentFont = &$this->fonts[$fontkey]; if($this->page>0) } function SetFontSize($size) { // Set font size in points if($this->FontSizePt==$size) return; $this->FontSizePt = $size; $this->FontSize = $size/$this->k; if($this->page>0) } function AddLink() { // Create a new internal link return $n; } function SetLink($link, $y=0, $page=-1) { // Set destination of internal link if($y==-1) $y = $this->y; if($page==-1) $page = $this->page; } { // Put a link on the page $this->PageLinks[$this->page][] = array($x*$this->k, $this->hPt-$y*$this->k, $w*$this->k, $h*$this->k, $link); } function Text($x, $y, $txt) { // Output a string if($this->underline && $txt!='') $s .= ' '.$this->_dounderline($x,$y,$txt); if($this->ColorFlag) $s = 'q '.$this->TextColor.' '.$s.' Q'; $this->_out($s); } function AcceptPageBreak() { // Accept automatic page break or not return $this->AutoPageBreak; } function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='') { // Output a cell $k = $this->k; if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) { // Automatic page break $x = $this->x; $ws = $this->ws; if($ws>0) { $this->ws = 0; $this->_out('0 Tw'); } $this->AddPage($this->CurOrientation,$this->CurPageSize); $this->x = $x; if($ws>0) { $this->ws = $ws; } } if($w==0) $w = $this->w-$this->rMargin-$this->x; $s = ''; if($fill || $border==1) { if($fill) $op = ($border==1) ? 'B' : 'f'; else $op = 'S'; } { $x = $this->x; $y = $this->y; $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',($x+$w)*$k,($this->h-$y)*$k,($x+$w)*$k,($this->h-($y+$h))*$k); $s .= sprintf('%.2F %.2F m %.2F %.2F l S ',$x*$k,($this->h-($y+$h))*$k,($x+$w)*$k,($this->h-($y+$h))*$k); } if($txt!=='') { if($align=='R') $dx = $w-$this->cMargin-$this->GetStringWidth($txt); elseif($align=='C') $dx = ($w-$this->GetStringWidth($txt))/2; else $dx = $this->cMargin; if($this->ColorFlag) $s .= 'q '.$this->TextColor.' '; $s .= sprintf('BT %.2F %.2F Td (%s) Tj ET',($this->x+$dx)*$k,($this->h-($this->y+.5*$h+.3*$this->FontSize))*$k,$txt2); if($this->underline) $s .= ' '.$this->_dounderline($this->x+$dx,$this->y+.5*$h+.3*$this->FontSize,$txt); if($this->ColorFlag) $s .= ' Q'; if($link) $this->Link($this->x+$dx,$this->y+.5*$h-.5*$this->FontSize,$this->GetStringWidth($txt),$this->FontSize,$link); } if($s) $this->_out($s); $this->lasth = $h; if($ln>0) { // Go to next line $this->y += $h; if($ln==1) $this->x = $this->lMargin; } else $this->x += $w; } function MultiCell($w, $h, $txt, $border=0, $align='J', $fill=false) { // Output text with automatic or explicit line breaks $cw = &$this->CurrentFont['cw']; if($w==0) $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; if($nb>0 && $s[$nb-1]=="\n") $nb--; $b = 0; if($border) { if($border==1) { $border = 'LTRB'; $b = 'LRT'; $b2 = 'LR'; } else { $b2 = ''; $b2 .= 'L'; $b2 .= 'R'; } } $sep = -1; $i = 0; $j = 0; $l = 0; $ns = 0; $nl = 1; while($i<$nb) { // Get next character $c = $s[$i]; if($c=="\n") { // Explicit line break if($this->ws>0) { $this->ws = 0; $this->_out('0 Tw'); } $i++; $sep = -1; $j = $i; $l = 0; $ns = 0; $nl++; if($border && $nl==2) $b = $b2; continue; } if($c==' ') { $sep = $i; $ls = $l; $ns++; } $l += $cw[$c]; if($l>$wmax) { // Automatic line break if($sep==-1) { if($i==$j) $i++; if($this->ws>0) { $this->ws = 0; $this->_out('0 Tw'); } } else { if($align=='J') { $this->ws = ($ns>1) ? ($wmax-$ls)/1000*$this->FontSize/($ns-1) : 0; } $i = $sep+1; } $sep = -1; $j = $i; $l = 0; $ns = 0; $nl++; if($border && $nl==2) $b = $b2; } else $i++; } // Last chunk if($this->ws>0) { $this->ws = 0; $this->_out('0 Tw'); } $b .= 'B'; $this->x = $this->lMargin; } function Write($h, $txt, $link='') { // Output text in flowing mode $cw = &$this->CurrentFont['cw']; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; $sep = -1; $i = 0; $j = 0; $l = 0; $nl = 1; while($i<$nb) { // Get next character $c = $s[$i]; if($c=="\n") { // Explicit line break $i++; $sep = -1; $j = $i; $l = 0; if($nl==1) { $this->x = $this->lMargin; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; } $nl++; continue; } if($c==' ') $sep = $i; $l += $cw[$c]; if($l>$wmax) { // Automatic line break if($sep==-1) { if($this->x>$this->lMargin) { // Move to next line $this->x = $this->lMargin; $this->y += $h; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; $i++; $nl++; continue; } if($i==$j) $i++; } else { $i = $sep+1; } $sep = -1; $j = $i; $l = 0; if($nl==1) { $this->x = $this->lMargin; $w = $this->w-$this->rMargin-$this->x; $wmax = ($w-2*$this->cMargin)*1000/$this->FontSize; } $nl++; } else $i++; } // Last chunk if($i!=$j) } function Ln($h=null) { // Line feed; default value is last cell height $this->x = $this->lMargin; if($h===null) $this->y += $this->lasth; else $this->y += $h; } function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='') { // Put an image on the page { // First use of this image, get info if($type=='') { if(!$pos) $this->Error('Image file has no extension and no type was specified: '.$file); } if($type=='jpeg') $type = 'jpg'; $mtd = '_parse'.$type; $this->Error('Unsupported image type: '.$type); $info = $this->$mtd($file); $this->images[$file] = $info; } else $info = $this->images[$file]; // Automatic width and height calculation if needed if($w==0 && $h==0) { // Put image at 96 dpi $w = -96; $h = -96; } if($w<0) $w = -$info['w']*72/$w/$this->k; if($h<0) $h = -$info['h']*72/$h/$this->k; if($w==0) $w = $h*$info['w']/$info['h']; if($h==0) $h = $w*$info['h']/$info['w']; // Flowing mode if($y===null) { if($this->y+$h>$this->PageBreakTrigger && !$this->InHeader && !$this->InFooter && $this->AcceptPageBreak()) { // Automatic page break $x2 = $this->x; $this->AddPage($this->CurOrientation,$this->CurPageSize); $this->x = $x2; } $y = $this->y; $this->y += $h; } if($x===null) $x = $this->x; $this->_out(sprintf('q %.2F 0 0 %.2F %.2F %.2F cm /I%d Do Q',$w*$this->k,$h*$this->k,$x*$this->k,($this->h-($y+$h))*$this->k,$info['i'])); if($link) } function GetX() { // Get x position return $this->x; } function SetX($x) { // Set x position if($x>=0) $this->x = $x; else $this->x = $this->w+$x; } function GetY() { // Get y position return $this->y; } function SetY($y) { // Set y position and reset x $this->x = $this->lMargin; if($y>=0) $this->y = $y; else $this->y = $this->h+$y; } function SetXY($x, $y) { // Set x and y positions $this->SetY($y); $this->SetX($x); } function Output($name='', $dest='') { // Output PDF to some destination if($this->state<3) $this->Close(); if($dest=='') { if($name=='') { $name = 'doc.pdf'; $dest = 'I'; } else $dest = 'F'; } switch($dest) { case 'I': // Send to standard output $this->_checkoutput(); if(PHP_SAPI!='cli') { // We send to a browser } echo $this->buffer; break; case 'D': // Download file $this->_checkoutput(); echo $this->buffer; break; case 'F': // Save to local file if(!$f) $this->Error('Unable to create output file: '.$name); break; case 'S': // Return as a string return $this->buffer; default: $this->Error('Incorrect output destination: '.$dest); } return ''; } /******************************************************************************* * * * Protected methods * * * *******************************************************************************/ function _dochecks() { // Check availability of %F $this->Error('This version of PHP is not supported'); // Check mbstring overloading $this->Error('mbstring overloading must be disabled'); // Ensure runtime magic quotes are disabled } function _checkoutput() { if(PHP_SAPI!='cli') { $this->Error("Some data has already been output, can't send PDF file (output started at $file:$line)"); } { // The output buffer is not empty { // It contains only a UTF-8 BOM and/or whitespace, let's clean it } else $this->Error("Some data has already been output, can't send PDF file"); } } function _getpagesize($size) { { $this->Error('Unknown page size: '.$size); $a = $this->StdPageSizes[$size]; } else { if($size[0]>$size[1]) else return $size; } } function _beginpage($orientation, $size) { $this->page++; $this->pages[$this->page] = ''; $this->state = 2; $this->x = $this->lMargin; $this->y = $this->tMargin; $this->FontFamily = ''; // Check page size and orientation if($orientation=='') $orientation = $this->DefOrientation; else if($size=='') $size = $this->DefPageSize; else $size = $this->_getpagesize($size); if($orientation!=$this->CurOrientation || $size[0]!=$this->CurPageSize[0] || $size[1]!=$this->CurPageSize[1]) { // New size or orientation if($orientation=='P') { $this->w = $size[0]; $this->h = $size[1]; } else { $this->w = $size[1]; $this->h = $size[0]; } $this->wPt = $this->w*$this->k; $this->hPt = $this->h*$this->k; $this->PageBreakTrigger = $this->h-$this->bMargin; $this->CurOrientation = $orientation; $this->CurPageSize = $size; } if($orientation!=$this->DefOrientation || $size[0]!=$this->DefPageSize[0] || $size[1]!=$this->DefPageSize[1]) } function _endpage() { $this->state = 1; } function _loadfont($font) { // Load a font definition file from the font directory include($this->fontpath.$font); $this->Error('Could not include font definition file'); return $a; } function _escape($s) { // Escape special characters in strings return $s; } function _textstring($s) { // Format a text string return '('.$this->_escape($s).')'; } function _UTF8toUTF16($s) { // Convert UTF-8 to UTF-16BE with BOM $res = "\xFE\xFF"; $i = 0; while($i<$nb) { if($c1>=224) { // 3-byte character } elseif($c1>=192) { // 2-byte character } else { // Single-byte character } } return $res; } function _dounderline($x, $y, $txt) { // Underline text $up = $this->CurrentFont['up']; $ut = $this->CurrentFont['ut']; return sprintf('%.2F %.2F %.2F %.2F re f',$x*$this->k,($this->h-($y-$up/1000*$this->FontSize))*$this->k,$w*$this->k,-$ut/1000*$this->FontSizePt); } function _parsejpg($file) { // Extract info from a JPEG file if(!$a) $this->Error('Missing or incorrect image file: '.$file); if($a[2]!=2) $this->Error('Not a JPEG file: '.$file); $colspace = 'DeviceRGB'; elseif($a['channels']==4) $colspace = 'DeviceCMYK'; else $colspace = 'DeviceGray'; return array('w'=>$a[0], 'h'=>$a[1], 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'DCTDecode', 'data'=>$data); } function _parsepng($file) { // Extract info from a PNG file if(!$f) $this->Error('Can\'t open image file: '.$file); $info = $this->_parsepngstream($f,$file); return $info; } function _parsepngstream($f, $file) { // Check signature $this->Error('Not a PNG file: '.$file); // Read header chunk $this->_readstream($f,4); if($this->_readstream($f,4)!='IHDR') $this->Error('Incorrect PNG file: '.$file); $w = $this->_readint($f); $h = $this->_readint($f); if($bpc>8) $this->Error('16-bit depth not supported: '.$file); if($ct==0 || $ct==4) $colspace = 'DeviceGray'; elseif($ct==2 || $ct==6) $colspace = 'DeviceRGB'; elseif($ct==3) $colspace = 'Indexed'; else $this->Error('Unknown color type: '.$file); $this->Error('Unknown compression method: '.$file); $this->Error('Unknown filter method: '.$file); $this->Error('Interlacing not supported: '.$file); $this->_readstream($f,4); $dp = '/Predictor 15 /Colors '.($colspace=='DeviceRGB' ? 3 : 1).' /BitsPerComponent '.$bpc.' /Columns '.$w; // Scan chunks looking for palette, transparency and image data $pal = ''; $trns = ''; $data = ''; do { $n = $this->_readint($f); $type = $this->_readstream($f,4); if($type=='PLTE') { // Read palette $pal = $this->_readstream($f,$n); $this->_readstream($f,4); } elseif($type=='tRNS') { // Read transparency info $t = $this->_readstream($f,$n); if($ct==0) elseif($ct==2) else { if($pos!==false) } $this->_readstream($f,4); } elseif($type=='IDAT') { // Read image data block $data .= $this->_readstream($f,$n); $this->_readstream($f,4); } elseif($type=='IEND') break; else $this->_readstream($f,$n+4); } while($n); $this->Error('Missing palette in '.$file); $info = array('w'=>$w, 'h'=>$h, 'cs'=>$colspace, 'bpc'=>$bpc, 'f'=>'FlateDecode', 'dp'=>$dp, 'pal'=>$pal, 'trns'=>$trns); if($ct>=4) { // Extract alpha channel $this->Error('Zlib not available, can\'t handle alpha channel: '.$file); $color = ''; $alpha = ''; if($ct==4) { // Gray image $len = 2*$w; for($i=0;$i<$h;$i++) { $pos = (1+$len)*$i; $color .= $data[$pos]; $alpha .= $data[$pos]; } } else { // RGB image $len = 4*$w; for($i=0;$i<$h;$i++) { $pos = (1+$len)*$i; $color .= $data[$pos]; $alpha .= $data[$pos]; } } if($this->PDFVersion<'1.4') $this->PDFVersion = '1.4'; } $info['data'] = $data; return $info; } function _readstream($f, $n) { // Read n bytes from stream $res = ''; { if($s===false) $this->Error('Error while reading stream'); $res .= $s; } if($n>0) $this->Error('Unexpected end of stream'); return $res; } function _readint($f) { // Read a 4-byte integer from stream return $a['i']; } function _parsegif($file) { // Extract info from a GIF file (via PNG conversion) $this->Error('GD extension is required for GIF support'); $this->Error('GD has no GIF read support'); if(!$im) $this->Error('Missing or incorrect image file: '.$file); if($f) { // Perform conversion in memory $info = $this->_parsepngstream($f,$file); } else { // Use temporary file if(!$tmp) $this->Error('Unable to create a temporary file'); $this->Error('Error while saving to temporary file'); $info = $this->_parsepng($tmp); } return $info; } function _newobj() { // Begin a new object $this->n++; $this->_out($this->n.' 0 obj'); } function _putstream($s) { $this->_out('stream'); $this->_out($s); $this->_out('endstream'); } function _out($s) { // Add a line to the document if($this->state==2) $this->pages[$this->page] .= $s."\n"; else $this->buffer .= $s."\n"; } function _putpages() { $nb = $this->page; { // Replace number of pages for($n=1;$n<=$nb;$n++) } if($this->DefOrientation=='P') { $wPt = $this->DefPageSize[0]*$this->k; $hPt = $this->DefPageSize[1]*$this->k; } else { $wPt = $this->DefPageSize[1]*$this->k; $hPt = $this->DefPageSize[0]*$this->k; } $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; for($n=1;$n<=$nb;$n++) { // Page $this->_newobj(); $this->_out('<</Type /Page'); $this->_out('/Parent 1 0 R'); $this->_out('/Resources 2 0 R'); { // Links $annots = '/Annots ['; foreach($this->PageLinks[$n] as $pl) { $annots .= '<</Type /Annot /Subtype /Link /Rect ['.$rect.'] /Border [0 0 0] '; $annots .= '/A <</S /URI /URI '.$this->_textstring($pl[4]).'>>>>'; else { $l = $this->links[$pl[4]]; } } $this->_out($annots.']'); } if($this->PDFVersion>'1.3') $this->_out('/Group <</Type /Group /S /Transparency /CS /DeviceRGB>>'); $this->_out('/Contents '.($this->n+1).' 0 R>>'); $this->_out('endobj'); // Page content $this->_newobj(); $this->_putstream($p); $this->_out('endobj'); } // Pages root $this->_out('1 0 obj'); $this->_out('<</Type /Pages'); $kids = '/Kids ['; for($i=0;$i<$nb;$i++) $kids .= (3+2*$i).' 0 R '; $this->_out($kids.']'); $this->_out('/Count '.$nb); $this->_out('>>'); $this->_out('endobj'); } function _putfonts() { $nf = $this->n; foreach($this->diffs as $diff) { // Encodings $this->_newobj(); $this->_out('<</Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.']>>'); $this->_out('endobj'); } foreach($this->FontFiles as $file=>$info) { // Font file embedding $this->_newobj(); $this->FontFiles[$file]['n'] = $this->n; if(!$font) $this->Error('Font file not found: '.$file); if($compressed) $this->_out('/Filter /FlateDecode'); $this->_out('/Length1 '.$info['length1']); $this->_out('/Length2 '.$info['length2'].' /Length3 0'); $this->_out('>>'); $this->_putstream($font); $this->_out('endobj'); } foreach($this->fonts as $k=>$font) { // Font objects $this->fonts[$k]['n'] = $this->n+1; $type = $font['type']; $name = $font['name']; if($type=='Core') { // Core font $this->_newobj(); $this->_out('<</Type /Font'); $this->_out('/BaseFont /'.$name); $this->_out('/Subtype /Type1'); if($name!='Symbol' && $name!='ZapfDingbats') $this->_out('/Encoding /WinAnsiEncoding'); $this->_out('>>'); $this->_out('endobj'); } elseif($type=='Type1' || $type=='TrueType') { // Additional Type1 or TrueType/OpenType font $this->_newobj(); $this->_out('<</Type /Font'); $this->_out('/BaseFont /'.$name); $this->_out('/Subtype /'.$type); $this->_out('/FirstChar 32 /LastChar 255'); $this->_out('/Widths '.($this->n+1).' 0 R'); $this->_out('/FontDescriptor '.($this->n+2).' 0 R'); $this->_out('/Encoding '.($nf+$font['diffn']).' 0 R'); else $this->_out('/Encoding /WinAnsiEncoding'); $this->_out('>>'); $this->_out('endobj'); // Widths $this->_newobj(); $cw = &$font['cw']; $s = '['; for($i=32;$i<=255;$i++) $this->_out($s.']'); $this->_out('endobj'); // Descriptor $this->_newobj(); $s = '<</Type /FontDescriptor /FontName /'.$name; foreach($font['desc'] as $k=>$v) $s .= ' /'.$k.' '.$v; $s .= ' /FontFile'.($type=='Type1' ? '' : '2').' '.$this->FontFiles[$font['file']]['n'].' 0 R'; $this->_out($s.'>>'); $this->_out('endobj'); } else { // Allow for additional types $this->Error('Unsupported font type: '.$type); $this->$mtd($font); } } } function _putimages() { { $this->_putimage($this->images[$file]); } } function _putimage(&$info) { $this->_newobj(); $info['n'] = $this->n; $this->_out('<</Type /XObject'); $this->_out('/Subtype /Image'); $this->_out('/Width '.$info['w']); $this->_out('/Height '.$info['h']); if($info['cs']=='Indexed') $this->_out('/ColorSpace [/Indexed /DeviceRGB '.(strlen($info['pal'])/3-1).' '.($this->n+1).' 0 R]'); else { $this->_out('/ColorSpace /'.$info['cs']); if($info['cs']=='DeviceCMYK') $this->_out('/Decode [1 0 1 0 1 0 1 0]'); } $this->_out('/BitsPerComponent '.$info['bpc']); $this->_out('/Filter /'.$info['f']); $this->_out('/DecodeParms <<'.$info['dp'].'>>'); { $trns = ''; $trns .= $info['trns'][$i].' '.$info['trns'][$i].' '; $this->_out('/Mask ['.$trns.']'); } $this->_out('/SMask '.($this->n+1).' 0 R'); $this->_putstream($info['data']); $this->_out('endobj'); // Soft mask { $dp = '/Predictor 15 /Colors 1 /BitsPerComponent 8 /Columns '.$info['w']; $smask = array('w'=>$info['w'], 'h'=>$info['h'], 'cs'=>'DeviceGray', 'bpc'=>8, 'f'=>$info['f'], 'dp'=>$dp, 'data'=>$info['smask']); $this->_putimage($smask); } // Palette if($info['cs']=='Indexed') { $filter = ($this->compress) ? '/Filter /FlateDecode ' : ''; $this->_newobj(); $this->_putstream($pal); $this->_out('endobj'); } } function _putxobjectdict() { foreach($this->images as $image) $this->_out('/I'.$image['i'].' '.$image['n'].' 0 R'); } function _putresourcedict() { $this->_out('/ProcSet [/PDF /Text /ImageB /ImageC /ImageI]'); $this->_out('/Font <<'); foreach($this->fonts as $font) $this->_out('/F'.$font['i'].' '.$font['n'].' 0 R'); $this->_out('>>'); $this->_out('/XObject <<'); $this->_putxobjectdict(); $this->_out('>>'); } function _putresources() { $this->_putfonts(); $this->_putimages(); // Resource dictionary $this->_out('2 0 obj'); $this->_out('<<'); $this->_putresourcedict(); $this->_out('>>'); $this->_out('endobj'); } function _putinfo() { $this->_out('/Producer '.$this->_textstring('FPDF '.FPDF_VERSION)); $this->_out('/Title '.$this->_textstring($this->title)); $this->_out('/Subject '.$this->_textstring($this->subject)); $this->_out('/Author '.$this->_textstring($this->author)); $this->_out('/Keywords '.$this->_textstring($this->keywords)); $this->_out('/Creator '.$this->_textstring($this->creator)); } function _putcatalog() { $this->_out('/Type /Catalog'); $this->_out('/Pages 1 0 R'); if($this->ZoomMode=='fullpage') $this->_out('/OpenAction [3 0 R /Fit]'); elseif($this->ZoomMode=='fullwidth') $this->_out('/OpenAction [3 0 R /FitH null]'); elseif($this->ZoomMode=='real') $this->_out('/OpenAction [3 0 R /XYZ null null 1]'); if($this->LayoutMode=='single') $this->_out('/PageLayout /SinglePage'); elseif($this->LayoutMode=='continuous') $this->_out('/PageLayout /OneColumn'); elseif($this->LayoutMode=='two') $this->_out('/PageLayout /TwoColumnLeft'); } function _putheader() { $this->_out('%PDF-'.$this->PDFVersion); } function _puttrailer() { $this->_out('/Size '.($this->n+1)); $this->_out('/Root '.$this->n.' 0 R'); $this->_out('/Info '.($this->n-1).' 0 R'); } function _enddoc() { $this->_putheader(); $this->_putpages(); $this->_putresources(); // Info $this->_newobj(); $this->_out('<<'); $this->_putinfo(); $this->_out('>>'); $this->_out('endobj'); // Catalog $this->_newobj(); $this->_out('<<'); $this->_putcatalog(); $this->_out('>>'); $this->_out('endobj'); // Cross-ref $this->_out('xref'); $this->_out('0 '.($this->n+1)); $this->_out('0000000000 65535 f '); for($i=1;$i<=$this->n;$i++) // Trailer $this->_out('trailer'); $this->_out('<<'); $this->_puttrailer(); $this->_out('>>'); $this->_out('startxref'); $this->_out($o); $this->_out('%%EOF'); $this->state = 3; } // End of class } // Handle special IE contype request { exit; } ?>
<?php require('fpdf.php'); $sql = "INSERT INTO table_name (name, email, mobile, comment) VALUES ('".$_POST["name"]."', '".$_POST["email"]."', '".$_POST["mobile"]."', '".$_POST["comment"]."');"; class PDF extends FPDF { // Page header { // Logo $this->Image('logo.jpg',10,6,30); // Arial bold 15 $this->SetFont('Arial','B',15); // Move to the right $this->Cell(80); // Title $this->Cell(60,10,'Convert HTML TO PDF',1,0,'C'); // Line break $this->Ln(20); } // Page footer function Footer() { // Position at 1.5 cm from bottom $this->SetY(-15); // Arial italic 8 $this->SetFont('Arial','I',8); // Page number $this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C'); } } // Instanciation of inherited class $pdf = new PDF(); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->SetFont('Times','',12); $pdf->Cell(0,10,'Name : '.$_POST["name"],0,1); $pdf->Cell(0,10,'Email : '.$_POST["email"],0,1); $pdf->Cell(0,10,'Mobile : '.$_POST["mobile"],0,1); $pdf->Cell(0,10,'Comment : '.$_POST["comment"],0,1); $pdf->Output(); ?>
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.