SlideShare une entreprise Scribd logo
1  sur  22
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 millions of people.  TCPDF is a Free Libre Open Source Software (FLOSS).
- 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...
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 presentation are bastardized from the tcpdf.org site.
<? $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;);  ?>
“ Hey, I thought you said this would be easy!”
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');  ?>
 
<?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'); ?>
 
<?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'); ?>
 
$xc = 70;  $yc = 70;  $r = 50;  // text annotation $pdf->Annotation(100, 10, 20, 10, &quot;First LineSecond 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!
Mouse Over Fancy Stuff
$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...
 
end
Eric Michalsen [email_address] Fox Valley Computing Professionals www.foxvalleycp.com Twitter #FVCP

Contenu connexe

En vedette

Cool A*S PIX
Cool A*S PIXCool A*S PIX
Cool A*S PIX
trippa
 
Appendix B Community Outreach Report Nov 30
Appendix B   Community Outreach Report Nov 30Appendix B   Community Outreach Report Nov 30
Appendix B Community Outreach Report Nov 30
city of dania beach
 
17 Jan
17 Jan17 Jan
17 Jan
epaper
 
14jun nas
14jun nas14jun nas
14jun nas
epaper
 
February 2011 Newsletter
February 2011 NewsletterFebruary 2011 Newsletter
February 2011 Newsletter
Kabir Luthra
 
7jun nas
7jun nas7jun nas
7jun nas
epaper
 
12jan Aceh
12jan Aceh12jan Aceh
12jan Aceh
epaper
 
Edisi 21 Feb Medan
Edisi 21 Feb MedanEdisi 21 Feb Medan
Edisi 21 Feb Medan
epaper
 
Bardotti gabriela ppt
Bardotti gabriela pptBardotti gabriela ppt
Bardotti gabriela ppt
Gabi Bardotti
 

En vedette (18)

Cool A*S PIX
Cool A*S PIXCool A*S PIX
Cool A*S PIX
 
Appendix B Community Outreach Report Nov 30
Appendix B   Community Outreach Report Nov 30Appendix B   Community Outreach Report Nov 30
Appendix B Community Outreach Report Nov 30
 
Is There Sun Behind Those Clouds
Is There Sun Behind Those CloudsIs There Sun Behind Those Clouds
Is There Sun Behind Those Clouds
 
17 Jan
17 Jan17 Jan
17 Jan
 
Park Plantings
Park PlantingsPark Plantings
Park Plantings
 
Tackk demo slides
Tackk demo slidesTackk demo slides
Tackk demo slides
 
14jun nas
14jun nas14jun nas
14jun nas
 
Wie snackt in foodservice meer mof v
Wie snackt in foodservice meer mof vWie snackt in foodservice meer mof v
Wie snackt in foodservice meer mof v
 
Презентация Фонда на IV Евразийском конгрессе Дерматологии, Косметологии и Эс...
Презентация Фонда на IV Евразийском конгрессе Дерматологии, Косметологии и Эс...Презентация Фонда на IV Евразийском конгрессе Дерматологии, Косметологии и Эс...
Презентация Фонда на IV Евразийском конгрессе Дерматологии, Косметологии и Эс...
 
February 2011 Newsletter
February 2011 NewsletterFebruary 2011 Newsletter
February 2011 Newsletter
 
7jun nas
7jun nas7jun nas
7jun nas
 
TIM Day - Stefano De Angelis
TIM Day - Stefano De AngelisTIM Day - Stefano De Angelis
TIM Day - Stefano De Angelis
 
12jan Aceh
12jan Aceh12jan Aceh
12jan Aceh
 
The of Social Media - Women in Management
The of Social Media - Women in ManagementThe of Social Media - Women in Management
The of Social Media - Women in Management
 
Edisi 21 Feb Medan
Edisi 21 Feb MedanEdisi 21 Feb Medan
Edisi 21 Feb Medan
 
201110 vujade shift-happened
201110 vujade shift-happened201110 vujade shift-happened
201110 vujade shift-happened
 
Bardotti gabriela ppt
Bardotti gabriela pptBardotti gabriela ppt
Bardotti gabriela ppt
 
Wcf routing kt
Wcf routing ktWcf routing kt
Wcf routing kt
 

Plus de Straight North

Plus de Straight North (20)

Website Speed :: Fox Valley Computing Professionals, September 2014
Website Speed :: Fox Valley Computing Professionals, September 2014Website Speed :: Fox Valley Computing Professionals, September 2014
Website Speed :: Fox Valley Computing Professionals, September 2014
 
FVCP Advanced Google Anlytics for landing pages
FVCP Advanced Google Anlytics for landing pagesFVCP Advanced Google Anlytics for landing pages
FVCP Advanced Google Anlytics for landing pages
 
FVCP Google Analytics Setup and Use for landing pages
FVCP Google Analytics Setup and Use for landing pagesFVCP Google Analytics Setup and Use for landing pages
FVCP Google Analytics Setup and Use for landing pages
 
FVCP Splunk Presentation
FVCP Splunk PresentationFVCP Splunk Presentation
FVCP Splunk Presentation
 
Bitly Presentation Ron Pringle
Bitly Presentation   Ron PringleBitly Presentation   Ron Pringle
Bitly Presentation Ron Pringle
 
Attention Wizard
Attention WizardAttention Wizard
Attention Wizard
 
Fvc Pbob20100208
Fvc Pbob20100208Fvc Pbob20100208
Fvc Pbob20100208
 
Building Your Toastmasters Online
Building Your Toastmasters OnlineBuilding Your Toastmasters Online
Building Your Toastmasters Online
 
Drupal Presentation for CBEID
Drupal Presentation for CBEIDDrupal Presentation for CBEID
Drupal Presentation for CBEID
 
Fvcp Presentation Cbeid Sugar M
Fvcp Presentation Cbeid Sugar MFvcp Presentation Cbeid Sugar M
Fvcp Presentation Cbeid Sugar M
 
New Trends in SEO by FVCP by the CBEID
New Trends in SEO by FVCP by the CBEIDNew Trends in SEO by FVCP by the CBEID
New Trends in SEO by FVCP by the CBEID
 
Fvcp Presentation Openoffice
Fvcp Presentation OpenofficeFvcp Presentation Openoffice
Fvcp Presentation Openoffice
 
Fvcp Presentation Gimp
Fvcp Presentation GimpFvcp Presentation Gimp
Fvcp Presentation Gimp
 
Fvcp Presentation 0909 Pete Du Melle
Fvcp Presentation 0909 Pete Du MelleFvcp Presentation 0909 Pete Du Melle
Fvcp Presentation 0909 Pete Du Melle
 
Fvcp Presentation 0909 (Ubuntu)
Fvcp Presentation 0909 (Ubuntu)Fvcp Presentation 0909 (Ubuntu)
Fvcp Presentation 0909 (Ubuntu)
 
August 10th, 2009 Pete De Mulle Twitter
August 10th, 2009 Pete De Mulle TwitterAugust 10th, 2009 Pete De Mulle Twitter
August 10th, 2009 Pete De Mulle Twitter
 
August 10th, 2009 Tom Rogers YouTube
August 10th, 2009 Tom Rogers YouTubeAugust 10th, 2009 Tom Rogers YouTube
August 10th, 2009 Tom Rogers YouTube
 
August 10th, 2009 Dan Day ifbyphone
August 10th, 2009 Dan Day ifbyphoneAugust 10th, 2009 Dan Day ifbyphone
August 10th, 2009 Dan Day ifbyphone
 
August 10th, 2009 Mike Cruezer Twitter
August 10th, 2009 Mike Cruezer TwitterAugust 10th, 2009 Mike Cruezer Twitter
August 10th, 2009 Mike Cruezer Twitter
 
Fvcp Googleadwords July13
Fvcp Googleadwords July13Fvcp Googleadwords July13
Fvcp Googleadwords July13
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Php2pdf

  • 1. PHP to pdf files May 7,2009 By Eric Michalsen [email_address]
  • 2. WHAT? PHP to pdf files, dynamically cool stuff!
  • 3. Why in the world would you want to do that?? pfd's are cool, fun, secure, scary, pain in the butt...
  • 4. Cody says “Hmmm, I'm intrigued. Tell me more.”
  • 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. - 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. Cody says “ROCK ON! This is going to be easy!”
  • 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. <? $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. “ Hey, I thought you said this would be easy!”
  • 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'); ?>
  • 14.  
  • 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'); ?>
  • 16.  
  • 17. $xc = 70; $yc = 70; $r = 50; // text annotation $pdf->Annotation(100, 10, 20, 10, &quot;First LineSecond 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!
  • 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...
  • 20.  
  • 21. end
  • 22. Eric Michalsen [email_address] Fox Valley Computing Professionals www.foxvalleycp.com Twitter #FVCP