首页 ┆ 网站地图 ┆ 在线留言 ┆ 游戏资讯 ┆ 资源下载 ┆ 端午节祝福 ┆ 迅雷在线影视
设为首页
加入收藏
联系我们
高级搜索
您当前的位置: 主页>PHP专区>编程技巧>PHP程序开发利用PDFLib扩展模块动态产生PDF格式的文件
PHP程序开发利用PDFLib扩展模块动态产生PDF格式的文件
来源: 发布时间:2008-06-28 发布人: 浏览: 人次   字体: [ ]  

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


共3页: 上一页 [1] [2] 3 下一页
相 关 文 章   发布商链接
·PHP利用Jmai组件实现邮件的发送代码
·实例讲解php实现中文水印的代码
·PHP是如何设置COOKIE的保留时间为浏...
·PHP读取站点的链接函数代码实例
·实例讲解PHP原生代码生成RSS文档
·利用PHP制作简单的内容采集器
·用PHP来构建自定义搜索引擎
·用PHP程序直接调用文本文件内容实例
·如何用PHP对文本文件加密并限制特定...
·PHP实现Mysql远程同步代码
 §最新评论:(评论内容只代表网友观点,与本站立场无关!)
网名: 验证码:  【所有评论】【↑返回顶部
评 分: 12 345
评论内容:(不能超过500字,请自觉遵守互联网相关政策法规。[按 Ctrl+Enter 可直接提交]
注意:请勿在本站发布政治话题、色情及违反法律的内容。
IT知道网 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。
推 荐 文 章
·实例讲解PHP原生代码生成RSS...
·PHP读取站点的链接函数代码实
·PHP是如何设置COOKIE的保留时
·实例讲解php实现中文水印的代
·PHP利用Jmai组件实现邮件的发
·PHP实现Mysql远程同步代码
·如何用PHP对文本文件加密并限
·用PHP程序直接调用文本文件内
·用PHP来构建自定义搜索引擎
·利用PHP制作简单的内容采集器
热 门 文 章
·PHP实现Mysql远程同步代码
·用PHP来构建自定义搜索引擎
·如何用PHP对文本文件加密并限...
·PHP利用Jmai组件实现邮件的发...
·利用PHP制作简单的内容采集器
·实例讲解php实现中文水印的代...
·用PHP程序直接调用文本文件内...
·实例讲解PHP原生代码生成RSS...
·PHP读取站点的链接函数代码实...
·PHP是如何设置COOKIE的保留时...
网站首页 - 关于本站 - 加入收藏 - 网站地图 - 友情连接 - 在线留言 - 联系我们 - 返回顶部
Copyright © 2007 IT知道网.[冀ICP备07026896号]. All Rights Reserved .