`
cometlj
  • 浏览: 113874 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

使用PHP创建 PowerPoint2007 文档

阅读更多
今天早上从订阅的 Zend DevZone 看到篇很有意思的文章. Creating PowerPoint 2007 files using PHP. 试了一下. 果然很又意思, 分享给大家吧.
程序需要 PHP 5.2 以上环境, 另外需要 php_zip 和 php_xml 扩展模块支持. 另外需要下载 PHPPowerPoint 类库. 官方网站地址: http://phppowerpoint.codeplex.com/ 目前稳定版本是 0.1.0
这里已经下载好了. 各位可以直接同示例代码一起在本站下载. 我已打好包. 点击这里下载示例包. 另外一个官方发原始包带了API文档还有官方的示例程序的也放出来 官方包下载.
说一下感觉吧. 这个类库还可以. 编码很规范. 完全PHP5的风格. 我喜欢的类型. 和 Zend Framework 一样. 处理速度也非常快. 本次只做了简单才测试. 更多高级功能未花时间去玩. 帖一下测试代码吧.
  1. <?php
  2. /**
  3. * PHP 生成 PowerPoint 2007 示例脚本.
  4. *
  5. * 本程序需要 PHP 5.2 以上版本, 需要 php_zip 和 php_xml 扩展支持.
  6. * 通常WIN下程序只要打开 php_zip 扩展即可, php_xml 扩展内置支持.
  7. * Linux 下需要根据编译条件具体调整.
  8. *
  9. * @author: Guya
  10. * @since: 2009-4-30
  11. */
  12. //目录分割符号
  13. define('DS', DIRECTORY_SEPARATOR);
  14. //定义根目录
  15. define('ROOT', dirname(__FILE__) . DS);
  16. //修改include路径, PHPPowerPoint 包放在当前目录的 libs 目录下.
  17. set_include_path(get_include_path() . PATH_SEPARATOR . ROOT . 'libs');
  18. //不限制脚本运行时间限制.
  19. set_time_limit(0);
  20. //简单设置自动载入函数.
  21. function __autoload($className) {
  22.     include_once(str_replace("_", DS, $className) . ".php");  
  23. }
  24. //新建立一个 PHPPowerPoint 对象.
  25. $ppp = new PHPPowerPoint();
  26. //获取当前使用的一页幻灯片
  27. $activeSlide = $ppp->getActiveSlide();
  28. //添加一个图片到幻灯片.
  29. $shape = $activeSlide->createDrawingShape();
  30. //设置图片名称.
  31. $shape->setName('MmClub.net Logo');
  32. //设置图片的描述信息.
  33. $shape->setDescription('MmClub.net Logo');
  34. //图片实际路径
  35. $shape->setPath(ROOT . 'mmclub.net.jpg');
  36. //图片高度
  37. $shape->setHeight(103);
  38. //设置图片宽度
  39. $shape->setWidth(339);
  40. //设置图片相对于左上角X位置, 单位像素
  41. $shape->setOffsetX(10);
  42. //设置图片相对于左上角Y位置, 单位像素
  43. $shape->setOffsetY(10);
  44. //设置图显示状态
  45. $shape->getShadow()->setVisible(true);
  46. $shape->getShadow()->setDirection(45);
  47. $shape->getShadow()->setDistance(10);
  48. //设置一个文本框
  49. $shape = $activeSlide->createRichTextShape();
  50. //设置文本框高度, 单位像素
  51. $shape->setHeight(150);
  52. //设置文本框宽度, 单位像素
  53. $shape->setWidth(600);
  54. //设置文本框相对于左上角X位置, 单位像素
  55. $shape->setOffsetX(150);
  56. //设置文本框相对于左上角Y位置, 单位像素
  57. $shape->setOffsetY(200);
  58. //设置文本布局位置为水平居中, 垂直居中.
  59. $shape->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER );
  60. $shape->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER );
  61. //设置文本框文本内容. 在中文环境下测试没中文问题. 如果在 e 文环境. 注意要指定支持中文的字体. 否则可能出乱码了.
  62. $textRun = $shape->createTextRun('欢迎使用 PHPPowerPoint2007');
  63. //使用字体加粗
  64. $textRun->getFont()->setBold(true);
  65. //设置字体尺寸为 38, 这里注意一下文字的大小设置. 前面的文本框的大小是固定的. 如果文字超出的容器会被出容器被排到下面
  66. $textRun->getFont()->setSize(38);
  67. //设置文字颜色, 这里是ARGB模式 , 16进制模式, 前面2位为透明度, 后面为RGB值. 这里设置为 blue蓝色
  68. $textRun->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FFFF0000' ) );
  69. //下面再设置几个文本框
  70. $shape0 = $activeSlide->createRichTextShape();
  71. $shape0->setHeight(50);
  72. $shape0->setWidth(400);
  73. $shape0->setOffsetX(250);
  74. $shape0->setOffsetY(400);
  75. $shape0->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_CENTER );
  76. $shape0->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER );
  77. $textRun0 = $shape0->createTextRun('http://www.mmclub.net');
  78. $textRun0->getFont()->setSize(26);
  79. $textRun0->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF0000FF' ) );
  80. $shape1 = $activeSlide->createRichTextShape();
  81. $shape1->setHeight(30);
  82. $shape1->setWidth(200);
  83. $shape1->setOffsetX(700);
  84. $shape1->setOffsetY(500);
  85. $shape1->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
  86. $shape1->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER );
  87. $textRun1 = $shape1->createTextRun('Author: Guya');
  88. $textRun1->getFont()->setSize(14);
  89. $textRun1->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF000000' ) );
  90. $shape2 = $activeSlide->createRichTextShape();
  91. $shape2->setHeight(30);
  92. $shape2->setWidth(200);
  93. $shape2->setOffsetX(700);
  94. $shape2->setOffsetY(540);
  95. $shape2->getAlignment()->setHorizontal( PHPPowerPoint_Style_Alignment::HORIZONTAL_LEFT );
  96. $shape2->getAlignment()->setVertical( PHPPowerPoint_Style_Alignment::VERTICAL_CENTER );
  97. $textRun2 = $shape2->createTextRun('Date: 2009-4-30');
  98. $textRun2->getFont()->setSize(14);
  99. $textRun2->getFont()->setColor( new PHPPowerPoint_Style_Color( 'FF000000' ) );
  100. //保存PPTX 文件, 使用 2007 格式
  101. $objWriter = PHPPowerPoint_IOFactory::createWriter($ppp, 'PowerPoint2007');
  102. //保存文件
  103. $objWriter->save(ROOT . 'myPhpPpt.pptx');
  104. echo 'ppt create success!';
  105. ?>
这个东西的应用前景的话. 在WEB的某些场合还是很有用的. 需要的朋友可以多花点时间去研究了.
网上几乎很少有相关资料,找了好久,拿上来跟大家分享,同时感谢作者,。
分享到:
评论
1 楼 lippor 2017-06-01  
如何读取啊,怎么都是创建

相关推荐

    PHP创建PowerPoint2007文档的方法

    主要介绍了PHP创建PowerPoint2007文档的方法,通过PHP第三方插件PHPPowerPoint类库实现ppt文件的生成功能,非常具有实用价值,需要的朋友可以参考下

    PHPPresentation:一个用于读取和编写演示文稿文档的纯PHP库

    分行长: 分支发展: PHPPresentation是一个用纯PHP编写的库,它提供了一组类来写入不同的表示文件...创建内存中的演示文稿表示形式 设置演示元数据(作者,标题,描述等) 从头开始或从现有幻灯片中添加幻灯片 支

    IwebOffice2003样例JSP版

    iWebOffice系列文档控件,能够在浏览器窗口中直接编辑Word、Excel、PowerPoint等Office文档与WPS文档并保存到Web服务器上。实现文档和电子表格和数据库的统一管理。同时支持痕迹保留,手写签名,电子印章等办公自动...

    proclaim-utility:Faithlife Proclaim 投影软件的实用 PHPAJAX 支持脚本

    以前,我们有一个相当复杂且劳动密集型的过程,使用 MicroSoft Word:trade_mark: 文档来创建“崇拜路线图” ',然后是一个 MicroSoft Powerpoint:trade_mark: 幻灯片,用于投影带有歌曲/赞美诗歌词的敬拜顺序。...

    iWebOffice (.net)正式版

    &lt;br&gt; iWebOffice系列文档控件,能够在浏览器窗口中直接编辑Word、Excel、PowerPoint等 Office文档并保存到Web服务器上。实现文档和电子表格和数据库的统一管理。同时支持痕 迹保留,手写签名,电子印章等...

    PDF to Word, Create, Merge PDF-crx插件

    PDF到Word:使用最佳和原始的免费在线便携式工具创建,转换,编辑和管理acrobat文档。 ★使用最好的PDF工具:-由DARPA(互联网发明者)和美国国家科学基金会资助 -使用最大的PDF公司使用的相同软件 -只需单击所需的...

    SOAOFFICE - 微软 OFFICE 中间件

    SOAOffice除了提供Word/Excel动态数据填充,Word/Excel数据导入导出,Word/Excel/PowerPoint等Office文档的在线打开、编辑、保存,权限控制,只读控制等功能外,还给在线办公内置了强大的支持功能:强制痕迹保留,...

    自己动手写搜索引擎(罗刚著).doc

    4.2.6 PowerPoint文件 84 4.3 流媒体内容提取 85 4.3.1 音频流内容提取 85 4.3.2 视频流内容提取 87 4.4 抓取限制应对方法 89 4.5 本章小结 90 第5章 自然语言处理 91 5.1 中文分词处理 91 5.1.1 Lucene 中的中文...

    Collector资料收集管理器

    3、判断是否使用OFICE2007,对OFFICE2007,不再使用IE打开方式。 更新日期 2008-02-01 15:50:00 更新内容 1、修正打开数据库CPU占用率很高的问题 2008-01-25 11:00:00 更新内容 1、添加...... 2、添加抓图到...

    22春[1056]《计算机基础》在线作业辅导资料.docx

    单击"开始"选项卡中的"复制"按钮,是将选定的内容复制到( ) "指定位置" "另一个文档中" "剪贴板" "磁盘" 15、在PowerPoint2010中,插入一张新幻灯片的快捷键是( ) 22春[1056]《计算机基础》在线作业辅导资料全文...

    网管教程 从入门到精通软件篇.txt

    只有在使用故障恢复控制台时,才能使用 fixboot 命令。  fixboot [drive]  参数 驱动器  将要写入引导扇区的驱动器。它将替代默认的驱动器(即用户登录的系统分区)。例如,驱动器:D:  范例  下列命令...

    JavaScript网页特效范例宝典源码

    实例296 打开指定的Word文档并打印 467 实例297 在JSP中利用Word自动打印指定格式的会议记录 468 实例298 在ASP中利用Word自动打印指定格式的会议记录 470 实例299 在PHP中调用Word自动打印指定格式的会议记录 472 ...

Global site tag (gtag.js) - Google Analytics