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 相关文章推荐
ADODB的数据库封包程序库
Dec 31 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
用PHP实现的四则运算表达式计算实现代码
Aug 02 PHP
PHP加密函数 Javascript/Js 解密函数
Sep 23 PHP
php使用ob_start()实现图片存入变量的方法
Nov 14 PHP
php实现上传图片文件代码
Jul 19 PHP
PHP的openssl加密扩展使用小结(推荐)
Jul 18 PHP
php实现批量修改文件名称的方法
Jul 23 PHP
PHP 中常量的知识整理
Apr 14 PHP
什么是PHP文件?如何打开PHP文件?
Jun 27 PHP
Laravel框架Request、Response及Session操作示例
May 06 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中用正则表达式清除字符串的空白
2011/01/17 PHP
PHP学习笔记之一
2011/01/17 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
PHP防止表单重复提交的几种常用方法汇总
2014/08/19 PHP
php实现Mysql简易操作类
2015/10/11 PHP
关于ThinkPHP中的异常处理详解
2018/05/11 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
使用Node.js给图片加水印的方法
2016/11/15 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
详解nodejs中的process进程
2017/03/19 NodeJs
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
如何在Vue中抽离接口配置文件
2019/10/31 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
vue使用screenfull插件实现全屏功能
2020/09/17 Javascript
[07:37]DOTA2-DPC中国联赛2月2日Recap集锦
2021/03/11 DOTA
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python分批定量读取文件内容,输出到不同文件中的方法
2018/12/08 Python
Django学习之文件上传与下载
2019/10/06 Python
tensorflow实现在函数中用tf.Print输出中间值
2020/01/21 Python
Python中itertools的用法详解
2020/02/07 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
python中slice参数过长的处理方法及实例
2020/12/15 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
员工拓展培训方案
2014/02/15 职场文书
Python编写车票订购系统 Python实现快递收费系统
2022/08/14 Python