PHP创建PowerPoint2007文档的方法


Posted in PHP onDecember 10, 2015

本文实例讲述了PHP创建PowerPoint2007文档的方法。分享给大家供大家参考,具体如下:

今天早上从订阅的 Zend DevZone 看到篇很有意思的文章. 试了一下. 果然很又意思, 分享给大家吧.

程序需要 PHP 5.2 以上环境, 另外需要 php_zip 和 php_xml 扩展模块支持. 另外需要下载 PHPPowerPoint 类库. 官方网站地址: http://phppowerpoint.codeplex.com/ 目前稳定版本是 0.1.0。也可点击此处本站下载。

说一下感觉吧. 这个类库还可以. 编码很规范. 完全PHP5的风格. 我喜欢的类型. 和 Zend Framework 一样. 处理速度也非常快. 本次只做了简单才测试. 更多高级功能未花时间去玩. 帖一下测试代码吧.

<?php 
/** 
 * PHP 生成 PowerPoint 2007 示例脚本. 
 * 
 * 本程序需要 PHP 5.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 = new PHPPowerPoint(); 
//获取当前使用的一页幻灯片 
$activeSlide = $ppp->getActiveSlide(); 
//添加一个图片到幻灯片. 
$shape = $activeSlide->createDrawingShape(); 
//设置图片名称. 
$shape->setName('MmClub.net Logo'); 
//设置图片的描述信息. 
$shape->setDescription('MmClub.net Logo'); 
//图片实际路径 
$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( new PHPPowerPoint_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://3water.com'); 
$textRun0->getFont()->setSize(26); 
$textRun0->getFont()->setColor( new PHPPowerPoint_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( new PHPPowerPoint_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( new PHPPowerPoint_Style_Color( 'FF000000' ) ); 
//保存PPTX 文件, 使用 2007 格式 
$objWriter = PHPPowerPoint_IOFactory::createWriter($ppp, 'PowerPoint2007'); 
//保存文件 
$objWriter->save(ROOT . 'myPhpPpt.pptx'); 
echo 'ppt create success!'; 
?>

这个东西的应用前景的话. 在WEB的某些场合还是很有用的. 需要的朋友可以多花点时间去研究了

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
无法载入 mcrypt 扩展,请检查 PHP 配置终极解决方案
Jul 18 PHP
PHP循环语句笔记(foreach,list)
Nov 29 PHP
探讨PHP JSON中文乱码的解决方法详解
Jun 06 PHP
PHP中file_get_contents函数抓取https地址出错的解决方法(两种方法)
Sep 22 PHP
PHP+MySQL之Insert Into数据插入用法分析
Sep 27 PHP
php表单提交实例讲解
Nov 12 PHP
php 数组随机取值的简单实例
May 23 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 PHP
php事务回滚简单实现方法示例
Mar 28 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
php png失真的原因及解决办法
Nov 17 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
Dec 10 #PHP
调试WordPress中定时任务的相关PHP脚本示例
Dec 10 #PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
Dec 10 #PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 #PHP
php获取图片信息的方法详解
Dec 10 #PHP
在WordPress中使用wp-cron插件来设置定时任务
Dec 10 #PHP
php数组函数array_key_exists()小结
Dec 10 #PHP
You might like
基于php无限分类的深入理解
2013/06/02 PHP
php实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript中检测变量的类型的代码
2010/12/28 Javascript
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
2011/03/10 Javascript
js的alert弹出框出现乱码解决方案
2013/09/02 Javascript
javascript:window.open弹出窗口的位置问题
2014/03/18 Javascript
js仿土豆网带缩略图的焦点图片切换效果实现方法
2015/02/23 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
Element Table的row-class-name无效与动态高亮显示选中行背景色
2018/11/30 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[41:54]2018DOTA2亚洲邀请赛 4.1 小组赛A组加赛 TNC vs Liquid
2018/04/03 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
Python版的文曲星猜数字游戏代码
2013/09/02 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
详解Python编程中基本的数学计算使用
2016/02/04 Python
Python实现对象转换为xml的方法示例
2017/06/08 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python之dict(或对象)与json之间的互相转化实例
2018/06/05 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
Django import export实现数据库导入导出方式
2020/04/03 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
python中查看.db文件中表格的名字及表格中的字段操作
2020/07/07 Python
Android本地应用打开方法——通过html5写连接
2016/03/11 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
矫正人员思想汇报
2014/01/08 职场文书
企业安全生产责任书
2014/04/14 职场文书
合作协议书模板
2014/10/10 职场文书
志愿者个人总结
2015/03/03 职场文书