作者: 孟宪会
PHP一个最大的优点就是它对新技术的支持非常容易,这种语言的可扩展性使得开发人员能够很方便地添加新的模块,而且遍布世界的技术团体的支持和众多扩展模块的支持使得PHP已经成为功能最齐全的Web编程语言之
一。目前可得到的扩展模块已经能够使开发人员执行IMAP和POP3操作,可以动态产生图象和Shockwave Flash动画,进行信用卡验证,敏感数据的加密解密,还能够解析XML格式的数据。但这还不是全部,现在,又有一个新的模块可以与PHP进行绑定了,那就是PDFLib扩展模块,它能够让开发人员动态产生PDF(Adobe Portable Document Format)格式的文件,下面就先看看如何在PHP里使用这个模块。
为了能够使PHP具有操作PDF格式文档的能力,你必须先在你的系统里安装PDFLib扩展库,如果你使用的是Lunix系统,你可以从 http://www.pdflib.com/pdflib/index.html下载一个并进行编译,如果你使用的是Windows系统,那就更简单了,只需要
下载一个编译好的PDFLib库,然后在PHP的配置文件里把相应的行的注释去掉即可。
extension=php_pdf.dll
如果是动态装载,也可以是参照下面的命令:
dl("php_pdf.dll");
此外,你还必须有一个Adobe Acrobat PDF阅读器,用来浏览PDF格式,如果你没有,你可以从http://www.adobe.com/免费
下载。
一旦你做好了前期准备,就可以创建PDF文件了,下面就是一个简单的例子:
<?php
// 创建一个新的PDF文档句柄
$pdf = PDF_new();
// 打开一个文件
PDF_open_file($pdf, "PDFTest.pdf");
// 开始一个新页面(A4)
PDF_begin_page($pdf, 595, 842);
// 得到并使用字体对象
$arial = PDF_findfont($pdf, "Arial", "host", 1);
PDF_setfont($pdf, $arial, 10);
// 输出文字
PDF_show_xy($pdf, "This is an exam of PDF Documents, It is a good Lib,",50, 750);
PDF_show_xy($pdf, "If you like,please try yourself!", 50, 730);
// 结束一页
PDF_end_page($pdf);
// 关闭并保存文件
PDF_close($pdf);
?>
然后保存成PHP文件,在浏览器里进行浏览,PHP就会执行上面的代码,它产生一个新的PDF文件,并保存到指定的位置。
现在我们分析一下什么的代码,要使用PHP创建PDF文件,有四个步骤:1,创建文档句柄;2,
注册文档的字体和颜色;3,用PDFLib提供的函数向文件句柄写文字或画图;4,保存文档。
首先,创建PDF文档句柄,语法如下:
$pdf = PDF_new();
这个任务是由PDF_new()函数完成的,它返回一个PDF文档的句柄,这个句柄将会被后续的所有操作使用。
下一步要做的,就是给PDF文件一个名字,由PDF_open_file()函数完成,它需要先前创建的文件句柄和自定义的文件名做参数:
PDF_open_file($pdf, "PDFTest.pdf");
一旦我们创建了文档,就可以用PDF_begin_page()函数在其中插入新页面了:
PDF_begin_page($pdf, 595, 842);
然后用PDF_end_page()结束页面。
注意这里,在PDF_begin_page()函数里,有另外两个参数,他们分别代表页面尺寸的宽和高,单位是磅(point,1磅等于1/72英寸),或许在这里数学并不是你的强项,PHP还提供了大多数标准页面尺寸,象A4等,上面的例子就是使用A4的尺寸。
在调用PDF_begin_page()函数和PDF_end_page()函数之间的代码是向PDF文档了写内容的,内容可以是文字、图象以及几何图形等。例子中只是写了一行文字,先得到一个字体,然后把文字写到文档里。通过PDF_findfont()和PDF_setfont()函数选择和注册字体是很方便的,PDF_findfont()函数预备了一种文档中要使用的字体,需要的参数有字体的名字,使用的编码,字体是否要嵌入到PDF文件中。PDF_findfont()函数返回一个字