下面是pie.php文件的代码:
<?php // 接受书库 $data = $_POST['data']; $slices = explode(",", $data);
// 初始化变量 $sum = 0; $degrees = Array(); $diameter = 200; $radius = $diameter/2;
// 设定每一块饼图的颜色,用数组存储 $colours = array(array(0,0,0),array(0,0,1),array(0,1,0), array(1,0,0),array(0,1,1),array(1,1,0), array(1,0,1));
// 计算总的数值 $sum = array_sum($slices);
// 把每一块分别转换成相应的百分数(360度圆) for ($y=0; $y<sizeof($slices); $y++) { $degrees[$y] = ($slices[$y]/$sum) * 360; }
// 开始创建 PDF 文档 $pdf = PDF_new(); PDF_open_file($pdf, "chart.pdf"); PDF_begin_page($pdf, 500, 500); PDF_setcolor($pdf, "stroke", "rgb", 1, 1, 0); PDF_moveto($pdf, 250, 250); PDF_lineto($pdf, 350, 250); PDF_stroke($pdf);
for ($z=0; $z<sizeof($slices); $z++) { // 设定填充颜色 PDF_setcolor($pdf, "fill", "rgb", $colours[$z][0], $colours[$z][1], $colours[$z][2]);
// 计算每个圆弧的终点坐标 $end_x = round(250 + ($radius * cos($last_angle*pi()/180))); $end_y = round(250 + ($radius * sin($last_angle*pi()/180)));
// 用直线分割每一块圆弧 PDF_moveto($pdf, 250, 250); PDF_lineto($pdf, $end_x, $end_y);
// 计算并画出圆弧 PDF_arc($pdf, 250, 250, $radius, $last_angle,($last_angle+$degrees[$z]));
// 保存最后的角度 $last_angle = $last_angle+$degrees[$z];
// 填充颜色 PDF_fill_stroke($pdf); }
// 重画外圆轮廓 PDF_circle($pdf, 250, 250, 100); PDF_stroke($pdf);
PDF_end_page($pdf); PDF_close($pdf);
// 如果要直接输出到客户端的话,把下面的代码加上 $buf = PDF_get_buffer($p); $len = strlen($buf); header("Content-type: application/pdf"); header("Content-Length: $len"); header("Content-Disposition: inline; filename=Pie_php.pdf"); print $buf; PDF_delete($p); ?>
运行上面的程序,并输入不同数值,你将会得到不同的饼图。 PDFLib是一个兼容性很好的模块,你不但可以用PHP编写,还可以用Java,C#,VB.NET,VB5/6(ActiveX/COM),ASP(VBScript/Jscript),Borland Delphi, Windows Script Host,ColdFusion4.5+,C/C++,Python,Perl,RPG;支持的平台不仅仅有Windows,还有Unix/Linux,Mac OS,IBM eServer iSeries 400 和 zSeries S/390等,具体的运行环境请随时访问他们的网站得到最新的资料。 |