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 adodb连接mssql解决乱码问题
Jun 12 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
Jun 03 PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 PHP
PHP常用的缓存技术汇总
May 05 PHP
在Linux系统的服务器上隐藏PHP版本号的方法
Jun 06 PHP
使用Huagepage和PGO来提升PHP7的执行性能
Nov 30 PHP
php ci 获取表单中多个同名input元素值的代码
Mar 25 PHP
PHP网站自动化配置的实现方法(必看)
May 27 PHP
PHP的mysqli_stmt_init()函数讲解
Jan 24 PHP
PHP count_chars()函数讲解
Feb 14 PHP
调试php程序的简单步骤
Oct 04 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 获取页面中指定内容的实现类
2014/01/23 PHP
php计算一个文件大小的方法
2015/03/30 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
PHP编写文件多服务器同步程序
2016/07/02 PHP
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
2013/07/31 Javascript
Angular.js与Bootstrap相结合实现手风琴菜单代码
2016/04/13 Javascript
省市区三级联动jquery实现代码
2020/04/15 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
实现高性能javascript的注意事项
2019/05/27 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
2019/08/26 Javascript
node后端服务保活的实现
2019/11/10 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
[32:07]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第一场 12.16
2020/12/17 DOTA
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python中super函数用法实例分析
2019/03/18 Python
Python多进程入门、分布式进程数据共享实例详解
2019/06/03 Python
python 画二维、三维点之间的线段实现方法
2019/07/07 Python
在Django的View中使用asyncio的方法
2019/07/12 Python
python word转pdf代码实例
2019/08/16 Python
pycharm配置git(图文教程)
2019/08/16 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
2020/05/22 Python
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
医药个人求职信范文
2014/01/29 职场文书
授权委托书公证
2014/09/14 职场文书
统计工作个人总结
2015/03/03 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
新教师2015年度工作总结
2015/07/22 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
React四级菜单的实现
2022/04/08 Javascript