OA办公软件与PDF文件联系紧密,PDF格式的文件也是办公人员必须掌握的!  设为首页 加入收藏夹 我来推荐 
您的位置:首页 > PDF应用技术 > PDF开发技术
PDF开发技术
PHP中编写PDF文档生成器的方法教程
日期:2009-04-17 21:09:08 人气: 标签:

 下面是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等,具体的运行环境请随时访问他们的网站得到最新的资料。

共有条评论信息评论信息
栏目分类

站点说明 | 站点导航 | 站点公告 |
OAPDF.COM版权所有 2009 V1.1