How to usd PHP & PDF - Export MySQL to PDF and Send Email Attachment Learn PHP how to using PHP export to pdf file and send mail attachment file.
ShotDev Focus:
- PHP & PDF (Export MySQL to PDF and send mail attachment)
Example
php_pdf_send_mail.php
- <html>
- <head>
- <title>ShotDev.Com Tutorial</title>
- </head>
- <body>
- <?php
- require('fpdf.php');
- class PDF extends FPDF
- {
- //Load data
- function LoadData($file)
- {
- //Read file lines
- $lines=file($file);
- $data=array();
- foreach($lines as $line)
- $data[]=explode(';',chop($line));
- return $data;
- }
- //Simple table
- function BasicTable($header,$data)
- {
- //Header
- $w=array(30,30,55,25,20,20);
- //Header
- for($i=0;$i<count($header);$i++)
- $this->Cell($w[$i],7,$header[$i],1,0,'C');
- $this->Ln();
- //Data
- foreach ($data as $eachResult)
- {
- $this->Cell(30,6,$eachResult["CustomerID"],1);
- $this->Cell(30,6,$eachResult["Name"],1);
- $this->Cell(55,6,$eachResult["Email"],1);
- $this->Cell(25,6,$eachResult["CountryCode"],1,0,'C');
- $this->Cell(20,6,$eachResult["Budget"],1);
- $this->Cell(20,6,$eachResult["Budget"],1);
- $this->Ln();
- }
- }
- //Better table
- function ImprovedTable($header,$data)
- {
- //Column widths
- $w=array(20,30,55,25,25,25);
- //Header
- for($i=0;$i<count($header);$i++)
- $this->Cell($w[$i],7,$header[$i],1,0,'C');
- $this->Ln();
- //Data
- foreach ($data as $eachResult)
- {
- $this->Cell(20,6,$eachResult["CustomerID"],1);
- $this->Cell(30,6,$eachResult["Name"],1);
- $this->Cell(55,6,$eachResult["Email"],1);
- $this->Cell(25,6,$eachResult["CountryCode"],1,0,'C');
- $this->Cell(25,6,number_format($eachResult["Budget"],2),1,0,'R');
- $this->Cell(25,6,number_format($eachResult["Budget"],2),1,0,'R');
- $this->Ln();
- }
- //Closure line
- $this->Cell(array_sum($w),0,'','T');
- }
- //Colored table
- function FancyTable($header,$data)
- {
- //Colors, line width and bold font
- $this->SetFillColor(255,0,0);
- $this->SetTextColor(255);
- $this->SetDrawColor(128,0,0);
- $this->SetLineWidth(.3);
- $this->SetFont('','B');
- //Header
- $w=array(20,30,55,25,25,25);
- for($i=0;$i<count($header);$i++)
- $this->Cell($w[$i],7,$header[$i],1,0,'C',true);
- $this->Ln();
- //Color and font restoration
- $this->SetFillColor(224,235,255);
- $this->SetTextColor(0);
- $this->SetFont('');
- //Data
- $fill=false;
- foreach($data as $row)
- {
- $this->Cell($w[0],6,$row[0],'LR',0,'L',$fill);
- $this->Cell($w[1],6,$row[1],'LR',0,'L',$fill);
- $this->Cell($w[2],6,$row[2],'LR',0,'L',$fill);
- $this->Cell($w[3],6,$row[3],'LR',0,'C',$fill);
- $this->Cell($w[4],6,number_format($row[4]),'LR',0,'R',$fill);
- $this->Cell($w[5],6,number_format($row[5]),'LR',0,'R',$fill);
- $this->Ln();
- $fill=!$fill;
- }
- $this->Cell(array_sum($w),0,'','T');
- }
- }
- $pdf=new PDF();
- //Column titles
- $header=array('CustomerID','Name','Email','Country Code','Budget','Used');
- //Data loading
- //*** Load MySQL Data ***//
- $objConnect = mysql_connect("localhost","root","root") or die(mysql_error());
- $objDB = mysql_select_db("mydatabase");
- $strSQL = "SELECT * FROM customer";
- $objQuery = mysql_query($strSQL);
- $resultData = array();
- for ($i=0;$i<mysql_num_rows($objQuery);$i++) {
- $result = mysql_fetch_array($objQuery);
- array_push($resultData,$result);
- }
- //************************//
- $pdf->SetFont('Arial','',10);
- //*** Table 1 ***//
- $pdf->AddPage();
- $pdf->Image('logo.png',80,8,33);
- $pdf->Ln(35);
- $pdf->BasicTable($header,$resultData);
- //*** Table 2 ***//
- $pdf->AddPage();
- $pdf->Image('logo.png',80,8,33);
- $pdf->Ln(35);
- $pdf->ImprovedTable($header,$resultData);
- //*** Table 3 ***//
- $pdf->AddPage();
- $pdf->Image('logo.png',80,8,33);
- $pdf->Ln(35);
- $pdf->FancyTable($header,$resultData);
- $pdf->Output("shotdev/shotdev.pdf","F");
- //*************** Send Email ***************//
- $strTo = "member@shotdev.com";
- $strSubject = "PDF Report";
- $strMessage = "Download mypdf.pdf for PDF Report";
- //*** Uniqid Session ***//
- $strSid = md5(uniqid(time()));
- $strHeader = "";
- $strHeader .= "From: Mr.Weerachai Nukitram<webmaster@shotdev.com>\nReply-To: webmaster@shotdev.com\n";
- $strHeader .= "Cc: Mr.Surachai Sirisart<surachai@shotdev.com>";
- $strHeader .= "Bcc: webmaster@shotdev.com";
- $strHeader .= "MIME-Version: 1.0\n";
- $strHeader .= "Content-Type: multipart/mixed; boundary=\"".$strSid."\"\n\n";
- $strHeader .= "This is a multi-part message in MIME format.\n";
- $strHeader .= "--".$strSid."\n";
- $strHeader .= "Content-type: text/html; charset=windows-874\n"; // or UTF-8 //
- $strHeader .= "Content-Transfer-Encoding: 7bit\n\n";
- $strHeader .= $strMessage."\n\n";
- $strContent1 = chunk_split(base64_encode(file_get_contents("shotdev/mypdf.pdf")));
- $strHeader .= "--".$strSid."\n";
- $strHeader .= "Content-Type: application/octet-stream; name=\"mypdf.pdf\"\n";
- $strHeader .= "Content-Transfer-Encoding: base64\n";
- $strHeader .= "Content-Disposition: attachment; filename=\"mypdf.pdf\"\n\n";
- $strHeader .= $strContent1."\n\n";
- $flgSend = @mail($strTo,$strSubject,null,$strHeader); // @ = No Show Error //
- if($flgSend)
- {
- echo "PDF Generated & mail sending.";
- }
- else
- {
- echo "Cannot send mail.";
- }
- ?>
- </body>
- </html>
Create a php file and save to path root-path/myphp/
Run
http://localhost/myphp/php_pdf_send_mail.php
.
.
.