开发学院WEB开发PHP PHP生成PDF文档 with PDFLib 阅读

PHP生成PDF文档 with PDFLib

 2010-12-01 07:15:31 来源:WEB开发网   
核心提示:要想画带填充色的长方形和圆形,能使用下面的方法: // 设定填充颜色PDF_setcolor($pdf, "fill", "rgb", 1, 1, 0);// 设定边框线的颜色PDF_setcolor($pdf, "stroke", "rgb&quo

  要想画带填充色的长方形和圆形,能使用下面的方法:

  // 设定填充颜色PDF_setcolor($pdf, "fill", "rgb", 1, 1, 0);// 设定边框线的颜色PDF_setcolor($pdf, "stroke", "rgb", 0, 0, 0);// 画矩形,后面的四个参数分别是左下角的坐标X、Y和宽度、高度PDF_rect($pdf, 50, 500, 200, 300);PDF_fill_stroke($pdf);PDF_setcolor($pdf, "fill", "rgb", 0, 1, 0);PDF_setcolor($pdf, "stroke", "rgb", 0, 0, 1);// 画出圆,参数分别是圆心坐标和圆的半径PDF_circle($pdf, 400, 600, 100)

  此外,PDFLib还提供了书写文件摘要信息的函数,这些函数以PDF_set_info_*()开头,这些信息能包括:文件的作者、标题、内容,主题等。下面是几个常用的函数:

  PDF_set_info_author($pdf, "net_lover");PDF_set_info_creator($pdf, "Meng Xianhui");PDF_set_info_title($pdf, "PHP Exam");PDF_set_info_subject($pdf, "PHP");PDF_set_info_keywords($pdf, "PHP PDF PDFLib");

  当用Acrobat Reader打开这样的文件时,在菜单“文件”-“文件属性”-“摘要”里就能看到上面写进去的信息。

  说到这里,相信大家对怎么使用PDFLib创建PDF文件有了基本的了解了吧。下面,我们就以一个实际的例子来看看怎么为我们的工作服务。这个例子就是根据提供的数据来生成饼图,首先,建立一个数据输入表单,输入饼图中每一块的大小。文件如下:

  <html><head><title> 利用PHP创建PDF文件(饼图)</title></head><body><h3>饼图生成器</h3><table cellspacing="5" cellpadding="5"><form action="pie.php" method=POST><tr><td>请输入饼图中每一块的数据值,以(,)分割开:</td>< /tr><tr><td><input type=text name=data></td></tr><tr><td><input type=submit value="产生PDF饼图"></td></tr></form></table>< /body></html>

  下面是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, 视窗系统 Script Host,ColdFusion4.5+,C/C++,Python,Perl,RPG;支持的平台不仅仅有视窗系统,更有Unix/Linux,Mac OS,IBM eServer iSeries 400 和 zSeries S/390等,具体的运行环境请随时访问他们的网站得到最新的资料。

php生成xml和转换[源码]

PHP生成静态页面详解

上一页  1 2 

Tags:PHP 生成 PDF

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接