32.2.2 文档生成软件
在Web服务器上,我们不需要额外的软件就可以从模板中生成RTF或PDF格式的文档。但是需要使用某些软件来建立模板。为了使用PHP PDF创建函数,必须将PDF支持编译到PHP中。(我们将在稍后的内容详细讨论。)
1.创建RTF模板的软件
可以使用我们选择的字处理器软件来生成RTF文件。我们使用Microsoft Word来创建证书模板。证书模板包含在附带文件的第32章的目录下。
如果希望使用其他字处理软件,最好是先在Word下测试其输出效果,因为这是网站访问者最经常使用的软件。
2.创建PDF模板的软件
PDF文档生成起来稍微难些。最简单的方法就是购买Adobe Acrobat软件。该软件允许我们从各种应用程序中创建高质量的PDF。对于该项目,我们将使用Acrobat来创建模板文件。
为了创建该文件,可以使用Microsoft Word来设计一个文档。Acrobat包中的一个工具是Adobe Distiller。在Distiller中,需要选择一些非默认的选项。该文件必须以ASCII格式保存,而压缩选项必须关闭。设置完这些选项后,创建一个PDF文件就同打印一样简单。
可以在如下网址找到更多关于Acrobat的内容:http://www.adobe.com/products/acrobat/。
我们可以通过在线方式或者从普通软件零售商那里购买该软件。
创建PDF的另一个方法是使用转换程序ps2pdf,正如其名所示,该程序将PostScript文件转换成PDF文件。该程序是免费的,但是对于那些包含图像或非标准字体的文档并不总是具有好的输出。ps2pdf转换器包是前面提到的Ghostscript包附带的。
很明显,如果想通过这种方法创建PDF文件,必须先创建一个PostScript文件。通常,UNIX用户会使用a2ps或dvips工具来创建PostScript文件。
如果在Windows环境下工作,也可以在不使用Adobe Distiller的情况下创建PostScript文件,虽然创建过程可能稍复杂一些。需要安装一个PostScript打印机驱动程序。例如,可以使用Apple LaserWriter IINT驱动程序。如果没有安装PostScript驱动程序,可以从Adobe公司的网址下载一个:http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows。
要创建PostScript文件,必须选择该打印机和“打印到文件”选项,通常,可以在打印对话框里找到该选项。
大多数Windows应用程序将产生一个.prn扩展名的文件。这应该是一个PostScript文件。需要将它重命名为.ps文件。使用GSview或其他的PostScript浏览器,可以浏览它,或者可以通过ps2pdf工具创建一个PDF文件。
请注意,不同的打印机驱动程序将产生不同质量的PostScript输出。我们可能会发现生成的某些PostScript文件在ps2pdf工具中运行时会产生错误。遇到这种情况,我们建议使用不同的打印机驱动程序。
如果只想创建少量的PDF文件,Adobe在线服务能够满足要求。每个月只需要9.99美元,可以上传多种格式的文件并下载转换后的PDF文件。这个服务很适合我们的证书,但是,它却不允许我们选择某些对项目很重要的选项。生成的PDF将作为一个二进制文件保存并要经过压缩。这使得修改它变得非常困难。
该服务可以在如下网址找到:https://createpdf.adobe.com/。
如果希望试用这个服务,也可以找到该服务的免费试用选项。此外,如果你要创建的PDF文件数量少于5个,你也可以Adobe的免费服务:http://www.acrobat.com。
在Net Distillery网站上,还有一个基于FTP的ps2pdf下载界面:http://www.babinszki.com/distiller/。
最后一个选项就是以XML格式对证书进行编码,然后使用XML风格样式单转换器(XSLT)将其转换成PDF格式和任何其他所需的格式。这种方法需要对XSLT的很好理解,在这里不做介绍。
3.用软件通过编程方式创建PDF
PHP本身就提供了对创建PDF文档的支持。PHP的PDFlib函数使用PDFlib函数库。该函数库可以从http://www.pdflib.com/products/pdflibfamily/下载。PDFlib提供了生成PDF文档所需的API。
PDFlib并不是免费的;它要求商业许可。PDFlib Lite是免费的,而且是开放源代码的,但是只有在特定条件下,例如用于非商业用途。
此外,还有一些免费的函数库,例如FPDF。FPDF使用PHP语言编写(而不是用C语言编写的PHP扩展),它的性能要慢于其他两个库。你可以从http://www.fpdf.org/下载FPDF。
在本章中,我们将使用PDFlib,因为它可能是使用的最为广泛的创建PDF的扩展。
检查phpinfo()函数的输出,你可以检查系统是否已经安装PDFlib。在PDF标题部分,你可以找到PDFlib支持是否已经启用以及所使用的PDFlib版本。
如果要在PDF文档使用TIFF或JPEG图像,你还需要安装TIFF函数库(可以从http://www.libtiff.org/下载),以及JPEG函数库(可以从ftp://ftp.uu.net/graphics/jpeg/下载)。
PDFlib扩展并没有内置在PHP中;你必须从PECL(PHP扩展组织函数库)获得这些文件并且手动安装这些扩展。
在非Windows系统中,你可以http://pecl.php.net/package/pdflib处下载这些扩展文件并使用pecl命令安装。请参阅http://www.php.net/manual/en/install.pecl.pear.php处的说明。
在Windows系统中,从://pecl4win.php.net/ext.php/php_pdflib.dll下载预编译扩展(php_pdf.dll)或者从PHP.net下载页面下载完整的已编译PECL扩展。下载后,将php_pdflib.dll文件保存在PHP扩展目录(通常是PHP安装路径下的ext目录),并且在php.ini文件添加如下代码:extension=php_pdf.dll。