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程序设计有所帮助。