PHP创建PowerPoint2007文档的方法
本文实例讲述了PHP创建PowerPoint2007文档的方法。分享给大家供大家参考,具体如下:
今天早上从订阅的ZendDevZone看到篇很有意思的文章.试了一下.果然很又意思,分享给大家吧.
程序需要PHP5.2以上环境,另外需要php_zip和php_xml扩展模块支持.另外需要下载PHPPowerPoint类库.官方网站地址:http://phppowerpoint.codeplex.com/目前稳定版本是0.1.0。也可点击此处本站下载。
说一下感觉吧.这个类库还可以.编码很规范.完全PHP5的风格.我喜欢的类型.和ZendFramework一样.处理速度也非常快.本次只做了简单才测试.更多高级功能未花时间去玩.帖一下测试代码吧.
<?php /** *PHP生成PowerPoint2007示例脚本. * *本程序需要PHP5.2以上版本,需要php_zip和php_xml扩展支持. *通常WIN下程序只要打开php_zip扩展即可,php_xml扩展内置支持. *Linux下需要根据编译条件具体调整. * *@author:Guya *@since:2009-4-30 */ //目录分割符号 define('DS',DIRECTORY_SEPARATOR); //定义根目录 define('ROOT',dirname(__FILE__).DS); //修改include路径,PHPPowerPoint包放在当前目录的libs目录下. set_include_path(get_include_path().PATH_SEPARATOR.ROOT.'libs'); //不限制脚本运行时间限制. set_time_limit(0); //简单设置自动载入函数. function__autoload($className){ include_once(str_replace("_",DS,$className).".php"); } //新建立一个PHPPowerPoint对象. $ppp=newPHPPowerPoint(); //获取当前使用的一页幻灯片 $activeSlide=$ppp->getActiveSlide(); //添加一个图片到幻灯片. $shape=$activeSlide->createDrawingShape(); //设置图片名称. $shape->setName('MmClub.netLogo'); //设置图片的描述信息. $shape->setDescription('MmClub.netLogo'); //图片实际路径 $shape->setPath(ROOT.'mmclub.net.jpg'); //图片高度 $shape->setHeight(103); //设置图片宽度 $shape->setWidth(339); //设置图片相对于左上角X位置,单位像素 $shape->setOffsetX(10); //设置图片相对于左上角Y位置,单位像素 $shape->setOffsetY(10); //设置图显示状态 $shape->getShadow()->setVisible(true); $shape->getShadow()->setDirection(45); $shape->getShadow()->setDistance(10); //设置一个文本框 $shape=$activeSlide->createRichTextShape(); //设置文本框高度,单位像素 $shape->setHeight(150); //设置文本框宽度,单位像素 $shape->setWidth(600); //设置文本框相对于左上角X位置,单位像素 $shape->setOffsetX(150); //设置文本框相对于左上角Y位置,单位像素 $shape->setOffsetY(200); //设置文本布局位置为水平居中,垂直居中. $shape->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER); $shape->getAlignment()->setVertical(PHPPowerPoint_Style_Alignment::VERTICAL_CENTER); //设置文本框文本内容.在中文环境下测试没中文问题.如果在e文环境.注意要指定支持中文的字体.否则可能出乱码了. $textRun=$shape->createTextRun('欢迎使用PHPPowerPoint2007'); //使用字体加粗 $textRun->getFont()->setBold(true); //设置字体尺寸为38,这里注意一下文字的大小设置.前面的文本框的大小是固定的.如果文字超出的容器会被出容器被排到下面 $textRun->getFont()->setSize(38); //设置文字颜色,这里是ARGB模式,16进制模式,前面2位为透明度,后面为RGB值.这里设置为blue蓝色 $textRun->getFont()->setColor(newPHPPowerPoint_Style_Color('FFFF0000')); //下面再设置几个文本框 $shape0=$activeSlide->createRichTextShape(); $shape0->setHeight(50); $shape0->setWidth(400); $shape0->setOffsetX(250); $shape0->setOffsetY(400); $shape0->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER); $shape0->getAlignment()->setVertical(PHPPowerPoint_Style_Alignment::VERTICAL_CENTER); $textRun0=$shape0->createTextRun('https://www.nhooo.com'); $textRun0->getFont()->setSize(26); $textRun0->getFont()->setColor(newPHPPowerPoint_Style_Color('FF0000FF')); $shape1=$activeSlide->createRichTextShape(); $shape1->setHeight(30); $shape1->setWidth(200); $shape1->setOffsetX(700); $shape1->setOffsetY(500); $shape1->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT); $shape1->getAlignment()->setVertical(PHPPowerPoint_Style_Alignment::VERTICAL_CENTER); $textRun1=$shape1->createTextRun('Author:Guya'); $textRun1->getFont()->setSize(14); $textRun1->getFont()->setColor(newPHPPowerPoint_Style_Color('FF000000')); $shape2=$activeSlide->createRichTextShape(); $shape2->setHeight(30); $shape2->setWidth(200); $shape2->setOffsetX(700); $shape2->setOffsetY(540); $shape2->getAlignment()->setHorizontal(PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT); $shape2->getAlignment()->setVertical(PHPPowerPoint_Style_Alignment::VERTICAL_CENTER); $textRun2=$shape2->createTextRun('Date:2009-4-30'); $textRun2->getFont()->setSize(14); $textRun2->getFont()->setColor(newPHPPowerPoint_Style_Color('FF000000')); //保存PPTX文件,使用2007格式 $objWriter=PHPPowerPoint_IOFactory::createWriter($ppp,'PowerPoint2007'); //保存文件 $objWriter->save(ROOT.'myPhpPpt.pptx'); echo'pptcreatesuccess!'; ?>
这个东西的应用前景的话.在WEB的某些场合还是很有用的.需要的朋友可以多花点时间去研究了
希望本文所述对大家php程序设计有所帮助。