唐山网站建设

设为主页 加入收藏 繁體中文

轻松实现用PHP编写PDF文档天生器(1)

核心提示:PHP1个最大的优点就是它对新技术的支持非常轻易,这类语言的可扩大性使得开发职员能够很方便地添加新的模块,而且遍及世界的技术团体的支持和众多扩大模块的支持使得PHP已成为功能最齐全的Web编程语言之1...

PHP1个最大的优点就是它对新技术的支持非常轻易,这类语言的可扩大性使得开发职员能够很方便地添加新的模块,而且遍及世界的技术团体的支持和众多扩大模块的支持使得PHP已成为功能最齐全的Web编程语言之  1。目前可得到的扩大模块已能够使开发职员履行IMAP和POP3操纵,可以动态产生图象和Shockwave Flash动画,进行信誉卡验证,敏感数据的加密解密,还能够解析XML格式的数据。但这还不是全部,现在,又有1个新的模块可以与PHP进行绑定了,那就是PDFLib扩大模块,它能够让开发职员动态产生PDF(Adobe Portable Document Format)格式的文件,下面就先看看如何在PHP里使用这个模块。

        为了能够使PHP具有操纵PDF格式文档的能力,你必须先在你的系统里安装PDFLib扩大库,假设你使用的是Lunix系统,你可以从 http://www.pdflib.com/pdflib/index.html下载1个并进行编译,假设你使用的是Windows系统,那就更简单了,只需要下载1个编译好的PDFLib库,然后在PHP的配置文件里把相应的行的注释往掉即可。

extension=php_pdf.dll

假设是动态装载,也能够是参照下面的命令:

dl("php_pdf.dll");

另外,你还必须有1个Adobe Acrobat PDF浏览器,用来浏览PDF格式,假设你没有,你可以从http://www.adobe.com/免费下载。

          1旦你做好了前期豫备,便可以够创建PDF文件了,下面就是1个简单的例子:


// 创建1个新的PDF文档句柄

$pdf = PDF_new();

// 打开1个文件

PDF_open_file($pdf, "PDFTest.pdf");

// 开始1个新页面(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);

// 结束1页

PDF_end_page($pdf);

// 封闭并保存文件

PDF_close($pdf);

?>


        然后保存成PHP文件,在浏览器里进行浏览,PHP就会履行上面的代码,它产生1个新的PDF文件,并保存到指定的位置。

现在我们分析1下甚么的代码,要使用PHP创建PDF文件,有4个步骤:1,创建文档句柄;2,注册文档的字体和色采;3,用PDFLib提供的函数向文件句柄写文字或画图;4,保存文档。

        首先,创建PDF文档句柄,语法以下:

$pdf = PDF_new();


        这个任务是由PDF_new()函数完成的,它返回1个PDF文档的句柄,这个句柄将会被后续的所有操纵使用。


        下1步要做的,就是给PDF文件1个名字,由PDF_open_file()函数完成,它需要先前创建的文件句柄和自定义的文件名做参数:


        PDF_open_file($pdf, "PDFTest.pdf");


        1旦我们创建了文档,便可以够用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文档了写内容的,内容可以是文字、图象和几何图形等。例子中只是写了1行文字,先得到1个字体,然后把文字写到文档里。通过PDF_findfont()和PDF_setfont()函数选择和注册字体是很方便的,PDF_findfont()函数豫备了1种文档中要使用的字体,需要的参数有字体的名字,使用的编码,字体是否是要嵌进到PDF文件中。PDF_findfont()函数返回1个字体对象,它将会在PDF_setfont()函数里使用。


        $arial = PDF_findfont($pdf, "Arial", "host", 1);

        PDF_setfont($pdf,$arial, 10);


       1旦我们设定了字体,便可以够使用PDF_show_xy()函数向页面中的指定位置写字符串了。


        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_show_xy()函数用来向页面写内容,最后两个参数是要写进的字符串的坐标位置,留意坐标的原点(0,0)是在文档的左下角。1旦文字写完了,页面便可以够封闭了PDF_end_page(),固然你也能够写更多的页。所有的页面写完以后,用PDF_close()函数封闭文档,此时文档就回保存到调用PDF_open_file()函数时指定的文件名和路径下,文档句柄随之烧毁。

  PDFLib库能做的事情还远不止这些,还可以在页面里加进图象,我们之前面的文件为例,在文字的下面添加1个图象文件,下面的语句实现了添加图象功能:


       $image = PDF_open_image_file($pdf, "jpeg", "PDFImageTest.jpg");

        PDF_place_image($pdf, $image, 50, 650, 0.25);


         是否是很简单?PDF_open_image_file()函数打开1个图形文件,可以接受的图象类型有:GIF, JPEG, TIFF 和 PNG,该函数返回图象句柄,PDF_place_image()函数利用前面的图象句柄,把图象插进到PDF文档中。留意这里的坐标位置是指图象的左下角,最后1个参数是图象显示时的比例因子,1是与实际大小1样显示,0.5是按原来尺寸的1半显示。

除在PDF文档里画出现有的图象之外,PDF模块还提供了很多函数来让我们画出几何图形。比如:直线、圆、长方形等几何图案,下面就是1段画直线的实现方法:


$pdf = PDF_new();

PDF_open_file($pdf, "LineExam.pdf");

PDF_begin_page($pdf, 595, 842);

$arial = PDF_findfont($pdf, "Arial", "host", 1);

PDF_setfont($pdf, $arial, 12);


// 设定直线的色采

PDF_setcolor($pdf, "stroke", "rgb", 0, 0, 0);


// 在左上角放置1个Logo标识

$image = PDF_open_image_file($pdf, "jpeg", "logo.jpg");

PDF_place_image($pdf, $image, 50, 785, 0.5);

// 在Logo标识下画出直线

PDF_moveto($pdf, 20, 780);

PDF_lineto($pdf, 575, 780);

PDF_stroke($pdf);

// 在页面底部画出另外1条直线

PDF_moveto($pdf, 20,50);

PDF_lineto($pdf, 575, 50);

PDF_stroke($pdf);

// 输出1些文字

PDF_show_xy($pdf, "Meng's Corporation", 200, 35);

PDF_end_page($pdf);

PDF_close($pdf);

?>
唐山网站建设www.fw8.net


TAG:文件,函数,文档,句柄,图象
评论加载中...
内容:
评论者: 验证码: