用dompdf和pChart生成PDF报表

 

今天搞定了Proposal Tool v2.0的PDF报表生成模块。简单总结一下我所使用的解决方案。

需求

需求是要根据用户选择的历史数据,动态的生成一系列的折线图、饼图、柱状图,然后将这些图表整合到一个PDF文件中。PDF中的文本也是动态的和可修改的。

工具

开发语言使用PHP;图表生成工具使用了强大的pChart库;生成PDF的库选择了dompdf。

pChart将直接生成图片文件,很方便的就可以作多种用途。(pChart和jqPlot的比较,可参考我之前的文章:《图表生成工具pChart和jqPlot》)

dompdf简单易用,可直接将HTML转换成PDF。API十分简洁。不过dompdf有一些限制,它不支持position:relative/absolute, 不支持嵌套表格,不支持float等等(其他限制参考dompdf官方网站)。所以布局比较复杂的页面用它来处理会比较吃力。

解决思路

分3步解决

  1. 使用pChart将数据转换成图表,并存储为图片文件,保存在临时存储区中
  2. 使用PHP的模板引擎定制HTML,并在其中引用上一步中生成的图片文件
  3. 使用dompdf将上一步中的HTML转换为PDF文件,删除临时存储区中的图片文件

效果图

PDF Report Generated by pChart and dompdf

你可能感兴趣的:(html,report,存储,工具,报表,模板引擎)