PHP to pdf files May 7,2009 By Eric Michalsen [email_address]
WHAT? PHP to pdf files, dynamically cool stuff!
Why in the world would you want to do that?? pfd's are cool, fun, secure, scary, pain in the butt...
Cody says “Hmmm, I'm intrigued. Tell me more.”
Tools To Use: TCPDF www.tcpdf.org TCPDF project was started in 2002 and now it is  freely used all over the world by milli...
- no external libraries are required for the basic functions; - supports all ISO page formats; - supports custom page form...
Cody says “ROCK ON! This is going to be easy!”
RTFM Follow the installation instructions. Seriously.  If I can do it, so can you! Most of the examples in this presentati...
<? $dir_file = &quot;files/&quot;.$file; require_once('config/lang/eng.php'); require_once('tcpdf.php'); class MYPDF exten...
“ Hey, I thought you said this would be easy!”
Step 1 :: Hello World <?PHP //////////////////////////// ///  Include the TCPDF files //////////////////////////// require...
 
<?PHP require_once('config/lang/eng.php'); require_once('tcpdf.php'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF...
 
<?php require_once('config/lang/eng.php'); require_once('tcpdf.php'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF...
 
$xc = 70;  $yc = 70;  $r = 50;  // text annotation $pdf->Annotation(100, 10, 20, 10, &quot;First Line
Second Line&quot;,  ...
Mouse Over Fancy Stuff
$pdf->SetFillColor(120, 120, 255); // blue $pdf->PieSector($xc, $yc, $r, 0, 90); //x,y,r,starting,ending degrees $pdf->Set...
 
end
Eric Michalsen [email_address] Fox Valley Computing Professionals www.foxvalleycp.com Twitter #FVCP
Upcoming SlideShare
Loading in...5
×

Php2pdf

1,420

Published on

Fox Valley Computing Professionals Presentation Series

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,420
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Php2pdf

  1. 1. PHP to pdf files May 7,2009 By Eric Michalsen [email_address]
  2. 2. WHAT? PHP to pdf files, dynamically cool stuff!
  3. 3. Why in the world would you want to do that?? pfd's are cool, fun, secure, scary, pain in the butt...
  4. 4. Cody says “Hmmm, I'm intrigued. Tell me more.”
  5. 5. Tools To Use: TCPDF www.tcpdf.org TCPDF project was started in 2002 and now it is freely used all over the world by millions of people. TCPDF is a Free Libre Open Source Software (FLOSS).
  6. 6. - no external libraries are required for the basic functions; - supports all ISO page formats; - supports custom page formats, margins and units of measure; - supports UTF-8 Unicode and Right-To-Left languages; - supports TrueTypeUnicode, OpenTypeUnicode, TrueType, OpenType, Type1 and CID-0 fonts; - supports document encryption; - includes methods to publish some (x)HTML code; - includes graphic (geometric) and transformation methods; - includes Javascript and forms support; blah blah blah... Copy/Paste from their website...
  7. 7. Cody says “ROCK ON! This is going to be easy!”
  8. 8. RTFM Follow the installation instructions. Seriously. If I can do it, so can you! Most of the examples in this presentation are bastardized from the tcpdf.org site.
  9. 9. <? $dir_file = &quot;files/&quot;.$file; require_once('config/lang/eng.php'); require_once('tcpdf.php'); class MYPDF extends TCPDF { public function LoadData($file) { $lines=file($file); $data=array(); foreach($lines as $line)‏ { $data[]=explode(';',chop($line)); } return $data; } public function ColoredTable($header,$data) { $this->SetFillColor(255,0,0); $this->SetTextColor(255); $this->SetDrawColor(128,0,0); $this->SetLineWidth(.3); $this->SetFont('','B'); $w=array(40,167,30,30); for($i=0;$i<count($header);$i++)‏ $this->Cell($w[$i],7,$header[$i],1,0,'C',1); $this->Ln(); $this->SetFillColor(224,235,255); $this->SetTextColor(0); $this->SetFont(''); $fill=0; 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,'R',$fill); $this->Cell($w[3],6,$row[3],'LR',0,'R',$fill); $this->Ln(); $fill=!$fill; } $this->Cell(array_sum($w),0,'','T'); } } $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor(&quot;Eric Michalsen&quot;); $pdf->SetTitle(&quot;TrendEyes www.trendeyes.com&quot;); $pdf->SetSubject(&quot;PDF Report&quot;); $pdf->SetKeywords(&quot;PDF Report&quot;); $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); $pdf->setLanguageArray($l); $pdf->AliasNbPages(); $pdf->AddPage(); $pdf->SetFont(&quot;helvetica&quot;, &quot;&quot;, 8); $header=array('Metric','Detail','Description','Alternate'); $data=$pdf->LoadData($dir_file); $pdf->ColoredTable($header,$data); $pdf->Output(&quot;report.pdf&quot;); ?>
  10. 10. “ Hey, I thought you said this would be easy!”
  11. 11. Step 1 :: Hello World <?PHP //////////////////////////// /// Include the TCPDF files //////////////////////////// require_once('config/lang/eng.php'); require_once('tcpdf.php'); // create new PDF document $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Eric Michalsen'); $pdf->SetTitle('Example 1'); $pdf->SetSubject('Western Suburb PHP Meetup'); $pdf->SetKeywords('PHP, PDF, example'); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); $pdf->setLanguageArray($l); $pdf->SetFont('times', 'BI', 20); $pdf->AddPage(); $pdf->Cell(0, 10, 'Hello World', 1, 1, 'C'); $pdf->Output('example.pdf', 'I'); ?>
  12. 13. <?PHP require_once('config/lang/eng.php'); require_once('tcpdf.php'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Eric Michalsen'); $pdf->SetTitle('example 2'); $pdf->SetSubject('Image'); $pdf->SetKeywords('TCPDF, PDF, example'); $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); $pdf->setLanguageArray($l); $pdf->AddPage(); $pdf->setJPEGQuality(75); $pdf->Image('images/lightning.jpg', 50, 50, 100, 150, '', 'http://www.foxvalleycp.com', '', true, 150); $pdf->Output('2.pdf', 'I'); ?>
  13. 15. <?php require_once('config/lang/eng.php'); require_once('tcpdf.php'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Eric Michalsen'); $pdf->SetTitle('example 3'); $pdf->SetSubject('hmmmm...pie'); $pdf->SetKeywords('TCPDF, PDF, example'); $pdf->setPrintHeader(false); $pdf->setPrintFooter(false); $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); $pdf->setLanguageArray($l); $pdf->SetFont('helvetica', '', 14); $pdf->AddPage(); $xc = 70; // from left $yc = 70; // from top $r = 50; // radius $pdf->SetFillColor(120, 120, 255); // blue $pdf->PieSector($xc, $yc, $r, 0, 90); //x,y,r,starting,ending degrees $pdf->SetFillColor(120, 255, 120); // green $pdf->PieSector($xc, $yc, $r, 90, 100); $pdf->SetFillColor(255, 120, 120); // red $pdf->PieSector($xc, $yc, $r, 130, 270); $pdf->Output('3.pdf', 'I'); ?>
  14. 17. $xc = 70; $yc = 70; $r = 50; // text annotation $pdf->Annotation(100, 10, 20, 10, &quot;First Line Second Line&quot;, array('Subtype'=>'Text', 'Name' => 'Comment', 'T' => '90% Blue', 'Subj' => 'example', 'C' => array(255, 255, 0))); $pdf->SetFillColor(120, 120, 255); // blue $pdf->PieSector($xc, $yc, $r, 0, 90); //x,y,r,starting,ending degrees hmmm....pie ...but what does it mean? We Need Annotation Baby!
  15. 18. Mouse Over Fancy Stuff
  16. 19. $pdf->SetFillColor(120, 120, 255); // blue $pdf->PieSector($xc, $yc, $r, 0, 90); //x,y,r,starting,ending degrees $pdf->SetFillColor(120, 255, 120); // green $pdf->PieSector($xc, $yc, $r, 90, 100); $pdf->SetFillColor(255, 120, 120); // red $pdf->PieSector($xc, $yc, $r, 130, 270); $pdf->Text(100, 20, '90% is Blue'); $pdf->Text(130, 75, '10% is Green'); $pdf->Text(20, 125, '82% is Red'); ...or just plain text...
  17. 21. end
  18. 22. Eric Michalsen [email_address] Fox Valley Computing Professionals www.foxvalleycp.com Twitter #FVCP
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×