SlideShare a Scribd company logo
1 of 33
Download to read offline
Charting a
Course through
PDFs and PHP
About Me
WorkingBuildings, LLC
In-house Developer
Worked with PHP since 2005




jsterry@gmail.com
@jerkob
The Problem


Get a chart that looks
the same on the web
and in a PDF.
Constraints
• Looks the Same on Screen and in Print
• Pure PHP or JavaScript/Flash with PHP
• Aesthetically Appealing
• Works in IE7+8
• Interactive
• Not Complicated
• Local (No Internet Required)
Image-based Charts

Generate 72 DPI Images

No interactivity

Reliable

Server-side

Weak aesthetics
Google Charts
JpGraph
pChart
Flash-based Charts
It’s Flash

iOS/Android compatibility

Generate images client-side

72 DPI resolution

Animation

Good aesthetics
Swiff Chart
Generator
Maani
Fusion
amCharts
AnyChart
Canvas-based Charts
 JavaScript

 Requires excanvas for IE < 9

 Not a very portable format

 Probably on the way out
jqPlot
SVG-based Charts
Works in all browsers (VML for IE)

Works without Flash (iOS)

JavaScript

Animation

Interactivity

Vector-based
Raphael/gRaphael
HighCharts
jQuery SVG
Also...

amCharts

Fusion

AnyChart
False Starts
Google Charts

jqPlot (Canvas to SVG)
So What Did We Use?
So What Did We Use?
Back to the Problem

Get a chart that looks
the same on the web
and in a PDF.
Constraints
• Looks the Same on Screen and in Print
• Pure PHP or JavaScript/Flash with PHP
• Aesthetically Appealing
• Works in IE7+8
• Interactive
• Not Complicated
• Local (No Internet Required)
What about PDFs?
PDF Libraries
FPDF

TCPDF

Zend PDF

PrinceXML

wkhtmltopdf

HTML2PDF

PDFLib
FPDF
Old

Reliable

Not UTF-8

Fast

No SVG

Flexible but difficult

Free
TCPDF
Fork of FPDF
Maintained
Powerful
Slower
UTF-8 support
SVG support (beta)
Flexible but difficult
Free
PrinceXML

Best SVG support

Easy to use (HTML and CSS)

Expensive

Supported
Others
Zend PDF

wkhtmltopdf

PDFLib

DomPDF

HTML2PDF
Code Example/Demo

More Related Content

What's hot

Modern Messaging for Distributed Systems
Modern Messaging for Distributed SystemsModern Messaging for Distributed Systems
Modern Messaging for Distributed SystemsAndrea Rabbaglietti
 
MSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business AppsMSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business Appsgoeran
 
D7 switching
D7 switchingD7 switching
D7 switchingc3tyler
 
Introduction to webpack and babel
Introduction to webpack and babelIntroduction to webpack and babel
Introduction to webpack and babelAmanRaj378
 
Enki.js, lessons learned while writing a javascript framework
Enki.js, lessons learned while writing a javascript frameworkEnki.js, lessons learned while writing a javascript framework
Enki.js, lessons learned while writing a javascript frameworkRadu Iscu
 
Rasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for Dinner
Rasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for DinnerRasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for Dinner
Rasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for DinnerRasa Technologies
 
Transforming lives-with-teaching
Transforming lives-with-teachingTransforming lives-with-teaching
Transforming lives-with-teachingRafiq Gemmail
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnugoeran
 
Rasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from Rasa
Rasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from RasaRasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from Rasa
Rasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from RasaRasa Technologies
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...DevDay.org
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript TalkDerek Binkley
 
Agile Nightmares
Agile NightmaresAgile Nightmares
Agile Nightmaresunbrand
 
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...DevDay.org
 
3 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 2017
3 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 20173 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 2017
3 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 2017Alexandra_CaptainForm
 
MVP Design Hacks: Sprint 5
MVP Design Hacks: Sprint 5MVP Design Hacks: Sprint 5
MVP Design Hacks: Sprint 5Amy Jo Kim
 

What's hot (20)

Modern Messaging for Distributed Systems
Modern Messaging for Distributed SystemsModern Messaging for Distributed Systems
Modern Messaging for Distributed Systems
 
Windows 8
Windows 8Windows 8
Windows 8
 
MSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business AppsMSDN Live: Windows Presentation Foundations Line of Business Apps
MSDN Live: Windows Presentation Foundations Line of Business Apps
 
Wordpress hacks
Wordpress hacksWordpress hacks
Wordpress hacks
 
D7 switching
D7 switchingD7 switching
D7 switching
 
Introduction to webpack and babel
Introduction to webpack and babelIntroduction to webpack and babel
Introduction to webpack and babel
 
Enki.js, lessons learned while writing a javascript framework
Enki.js, lessons learned while writing a javascript frameworkEnki.js, lessons learned while writing a javascript framework
Enki.js, lessons learned while writing a javascript framework
 
Rasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for Dinner
Rasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for DinnerRasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for Dinner
Rasa Developer Summit - William Galindez Ariaz, Octesoft - Dial Rasa for Dinner
 
Transforming lives-with-teaching
Transforming lives-with-teachingTransforming lives-with-teaching
Transforming lives-with-teaching
 
Software Craftsmanship @ Ntnu
Software Craftsmanship @ NtnuSoftware Craftsmanship @ Ntnu
Software Craftsmanship @ Ntnu
 
Rasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from Rasa
Rasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from RasaRasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from Rasa
Rasa Developer Summit - Tom Bocklisch, Rasa - Product Updates from Rasa
 
Mini-Training: NDepend
Mini-Training: NDependMini-Training: NDepend
Mini-Training: NDepend
 
Electron
ElectronElectron
Electron
 
Tf itjsbagg
Tf itjsbaggTf itjsbagg
Tf itjsbagg
 
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
[DevDay 2017] ReactJS Hands on - Speaker: Binh Phan - Developer at mgm techno...
 
Modern JavaScript Talk
Modern JavaScript TalkModern JavaScript Talk
Modern JavaScript Talk
 
Agile Nightmares
Agile NightmaresAgile Nightmares
Agile Nightmares
 
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
[DevDay 2017] Serverless Architecture - Speaker: Trung Huynh - Software Engin...
 
3 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 2017
3 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 20173 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 2017
3 Gifts My Users Gave Me - Alexandra Draghici - WordCamp Europe 2017
 
MVP Design Hacks: Sprint 5
MVP Design Hacks: Sprint 5MVP Design Hacks: Sprint 5
MVP Design Hacks: Sprint 5
 

Similar to Charts, PDFs, and PHP

An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by DevsDebidatta Satapathy
 
Understanding PDF workflows
Understanding PDF workflowsUnderstanding PDF workflows
Understanding PDF workflowsVIGCbe
 
From Print Design to Web Design
From Print Design to Web DesignFrom Print Design to Web Design
From Print Design to Web DesignESUG
 
Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...
Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...
Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...suzeingram
 
A 'realistic' understanding of PDF production workflows
A 'realistic' understanding of PDF production workflowsA 'realistic' understanding of PDF production workflows
A 'realistic' understanding of PDF production workflowsVIGCbe
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive SummaryGilad Khen
 
Easy charting with
Easy charting withEasy charting with
Easy charting withMajor Ye
 
Lessons Learned from working with HTML5, GlassFish and NetBeans
Lessons Learned from working with HTML5, GlassFish and NetBeansLessons Learned from working with HTML5, GlassFish and NetBeans
Lessons Learned from working with HTML5, GlassFish and NetBeansidrsolutions
 
Web Issues
Web IssuesWeb Issues
Web Issuestterrill
 
Developing a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflowDeveloping a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflowMichael Kowalski
 
Making sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersMaking sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersLewiz
 
STC Technical Communication Summit 2014 - D Gardiner
STC Technical Communication Summit 2014 - D GardinerSTC Technical Communication Summit 2014 - D Gardiner
STC Technical Communication Summit 2014 - D GardinerDave Gardiner
 
Adobe Air Application case study - nycoders.org 0509
Adobe Air Application case study - nycoders.org 0509Adobe Air Application case study - nycoders.org 0509
Adobe Air Application case study - nycoders.org 0509Andrew Hunt
 

Similar to Charts, PDFs, and PHP (20)

An introduction to html5 by Devs
An introduction to html5 by DevsAn introduction to html5 by Devs
An introduction to html5 by Devs
 
#PDR15 - Pebble Graphics
#PDR15 - Pebble Graphics#PDR15 - Pebble Graphics
#PDR15 - Pebble Graphics
 
Understanding PDF workflows
Understanding PDF workflowsUnderstanding PDF workflows
Understanding PDF workflows
 
Practical html5
Practical html5Practical html5
Practical html5
 
From Print Design to Web Design
From Print Design to Web DesignFrom Print Design to Web Design
From Print Design to Web Design
 
Demystifying DITA to PDF Publishing
Demystifying DITA to PDF PublishingDemystifying DITA to PDF Publishing
Demystifying DITA to PDF Publishing
 
Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...
Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...
Spoilt for choice. Which prototyping tool is right for you? Presented by Suze...
 
A 'realistic' understanding of PDF production workflows
A 'realistic' understanding of PDF production workflowsA 'realistic' understanding of PDF production workflows
A 'realistic' understanding of PDF production workflows
 
HTML5 Technical Executive Summary
HTML5 Technical Executive SummaryHTML5 Technical Executive Summary
HTML5 Technical Executive Summary
 
Easy charting with
Easy charting withEasy charting with
Easy charting with
 
Spsmi13 charts
Spsmi13 chartsSpsmi13 charts
Spsmi13 charts
 
Lessons Learned from working with HTML5, GlassFish and NetBeans
Lessons Learned from working with HTML5, GlassFish and NetBeansLessons Learned from working with HTML5, GlassFish and NetBeans
Lessons Learned from working with HTML5, GlassFish and NetBeans
 
Echo HTML5
Echo HTML5Echo HTML5
Echo HTML5
 
Web Issues
Web IssuesWeb Issues
Web Issues
 
Developing a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflowDeveloping a practical HTML5 magazine workflow
Developing a practical HTML5 magazine workflow
 
Activity 5
Activity 5Activity 5
Activity 5
 
Making sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersMaking sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developers
 
Before Going Vector
Before Going VectorBefore Going Vector
Before Going Vector
 
STC Technical Communication Summit 2014 - D Gardiner
STC Technical Communication Summit 2014 - D GardinerSTC Technical Communication Summit 2014 - D Gardiner
STC Technical Communication Summit 2014 - D Gardiner
 
Adobe Air Application case study - nycoders.org 0509
Adobe Air Application case study - nycoders.org 0509Adobe Air Application case study - nycoders.org 0509
Adobe Air Application case study - nycoders.org 0509
 

Recently uploaded

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Nikki Chapple
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...Karmanjay Verma
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 

Recently uploaded (20)

UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
Microsoft 365 Copilot: How to boost your productivity with AI – Part one: Ado...
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...React JS; all concepts. Contains React Features, JSX, functional & Class comp...
React JS; all concepts. Contains React Features, JSX, functional & Class comp...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 

Charts, PDFs, and PHP

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. The issue with all of these was resolution - they all generate 72 DPI images that don&amp;#x2019;t print well. In addition they didn&amp;#x2019;t have interactivity and the look of the charts themselves was generally a step below.\n\n\n\n\n
  6. Flexible but a little complex.\n\nTried some &amp;#x201C;make it too large then scale it down&amp;#x201D; options, but that didn&amp;#x2019;t work well - fonts too small, spacing issues, etc. \n\nCan be ugly or can be nice depending on how much time you&amp;#x2019;re willing to put in.\n\nSSL issues\n\nGoogle could turn it off - see Google Translate\n
  7. PHP-based solution\n\nkind of ugly\n
  8. Just came out with a version 2.\n\nQuite good.\n\nLots of nice computation functions.\n
  9. The issues here are first, they&amp;#x2019;re Flash, and I don&amp;#x2019;t want to work with Flash (doesn&amp;#x2019;t work on iPad, etc.). Most of these can generate images as well but sometimes they do it client side instead of server side which is not useful. Plus the resolution of the generated images was 72 DPI in all the ones I tried.\n\n\n\n\n\n
  10. Flash-based which I was trying to avoid. \n\nIn researching this I found that it could be a good solution with how it works now. When I was looking at it my understanding was that to get the other formats, you first had to load the Flash graph and then it would be able to generate the SVG. I think now you can have it choose server side what to do. \n\nCould be another good option.\n
  11. Maani.us Flash/XML charts\n\nFlash-based, export to image\n\nimage is 72 DPI, and is a client side prompt (this was true of a lot of Flash charts I looked at - the Flash had to be loaded on screen and then it would download)\n\n
  12. v3 is implementing a SVG-based JavaScript solution - based on HighCharts!\n
  13. Implementing a SVG-based JavaScript solution as well\n\nCan export as image or PDF, but requires server-side script to handle the passed image data. I would bet resolution is 72 DPI.\n
  14. JavaScript-based solution in beta\n\nVideo on their website of it running on an iPad\n\n\n
  15. Google Charts - not local, 72 DPI, no option for different resolution. Flexible but a little complex. Tried some &amp;#x201C;make it too large then scale it down&amp;#x201D; options, but that didn&amp;#x2019;t work well - fonts too small, spacing issues, etc.\nSwiff Chart Generator - Flash-based which I was trying to avoid. In researching this I found that it could be a good solution with how it works now. When I was looking at it my understanding was that to get the other formats, you first had to load the Flash graph and then it would be able to generate the SVG. I think now you can have it choose server side what to do. Could be another good option.\nMaani Charts - Flash-based, export to image - image is 72 DPI, and is a client side prompt (this was true of a lot of Flash charts I looked at - the Flash had to be loaded on screen and then it would download)\nRaphael/gRaphael - In development so a little early. When I was looking it was quite early. But a good option.\njQuery SVG - has charting extensions, kind of ugly\nsvgweb - semi-Google project. In beta, not targeted at charting\njqPlot - uses canvas.\n\n\n\n
  16. Requires jQuery\n\nRequires excanvas\n\nWe tried this, and even looked at doing canvas to SVG conversions\n
  17. \n\n\n\n
  18. Really beautiful\n\nDoes not require jQuery\n\nIn development - missing a lot of functionality\n\nFree\n
  19. Free for non-commercial\n\nMature\n\nRequires jQuery\n\nHelps with time-based axes\n\nWorking on stock charts\n\nReally great support forums\n
  20. More of a build-your-own\n\nFree\n\njQuery Required\n\nNot graph-focused\n
  21. \n
  22. \n
  23. Came out with SVG-beta right when we needed this\n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. Some other PDF libraries (like HTML2PDF) are based on TCPDF\n
  30. \n
  31. Zend PDF doesn&amp;#x2019;t support SVG\nwkhtmltopdf has PHP bindings but they are complex to implement\n\n
  32. \n