- 精品下载 | 实用查询 | 词典查询 | 桌面壁纸 | 网址 | 笑话 | FLASH频道 | 天气文章资讯 | 站长工具 | 证件办理 | 闪字生成 | 广告代码 | 在线手册 | 有问必答
您现在的位置: 蓝派网 >> 文章中心 >> 网络编程 >> PHP >> 正文
站内文章搜索:           

用PHP编写PDF文档生成器

作者:佚名    文章来源:网络转载    更新时间 :2007-1-27 0:00:31

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

上一页  [1] [2] 


发表评论】【打印此文】【关闭窗口】【点击数:
★好玩的休闲小游戏★
网友评论:
数据载入中,请稍后……