之前做了一个PPT导出的功能,去网上找了一些教程 发现都不是很详细,在这里详细说一下。 GitHub地址:https://github.com/PHPOffice/PHPPresentation 首先加载类是必须的,这里就不详细说了,直接进入代码:

//新建一个对象,每个人放的位置不同,用命名空间也可以

$objPHPPowerPoint = new \PhpOffice\PhpPresentation\PhpPresentation();

//获取当前页的幻灯片(也可以看做第一页)

$shape = $currentSlide->createDrawingShape();

// 添加文本框

$shape = $currentSlide->createRichTextShape()

->setHeight(150) //宽 (设置宽度后 自动缩放 )

->setOffsetX(370) // X 位置

->setOffsetY(180); // Y 位置

$shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_CENTER ); //水平居中

$textRun = $shape->createTextRun("XXXXXX\n\n检测报告"); //内容

$textRun->getFont()->setBold(false) //加粗

->setSize(38) //字号

->setName("黑体") //字体

->setColor( new Color( 'FF000000' ) ); //颜色

//添加一个图片

$shape = $currentSlide->createDrawingShape();

$shape->setName('社区图片') //图片名

->setDescription('社区图片') //描述

->setPath('111.jpg') //路径

->setWidth(250) //宽

->setOffsetX(100)

->setOffsetY(200);

//设置图片显示状态

$shape->getShadow()->setVisible(true)

->setDirection(45)

->setDistance(10);

简单的先说这两个吧,如果你添加多张的话可以用下面这个方法

$currentSlide = $objPHPPowerPoint->createSlide(); //在这行代码的后边直接添加图片或者文本框,多张幻灯片就循环一下

//然后保存

$oWriterPPTX = IOFactory::createWriter($objPHPPowerPoint, 'PowerPoint2007');

$oWriterPPTX->save(ROOT . 'myPhpPpt.pptx');

这种方式不会提示下载直接就到save()的路径下面了,若果提示保存的话应该在调用createWriter()前加上这样一段代码

header("Content-Type: application/force-download");

header("Content-Type: application/octet-stream");

header("Content-Type: application/download");

header("Content-Disposition:inline;filename=\"" . urlencode($order['order_name']). date('YmdHis') . ".pptx\"");

header("Content-Transfer-Encoding: binary");

header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");

header("Pragma: no-cache");

最后的save()里的内容应该是‘php://output’; 需要注意的一点是,我列出来的这段代码最后不能

return $oWriterPPTX->save(‘php://output’);

return后页面会有一大串乱码,可以exit;

$oWriterPPTX->save(‘php://output’);

exit;

也可以读取某个PPT文件,用这个文件的模板生成ppt

//读取ppt

//ppt版本 2007

$pptReader = IOFactory::createReader('PowerPoint2007');

$oPHPPresentation =new \PhpOffice\PhpPresentation\PhpPresentation();

//读取文件

$oPHPPresentation = $pptReader->load(ROOT_PATH.'123.pptx');

//幻灯片的个数

$slidecount = $oPHPPresentation->getSlideCount();die;

//获取某张幻灯片 从0开始

$currentSlide = $oPHPPresentation->setActiveSlideIndex(2);

//这后面可以对此页的幻灯片进行操作,代码和新建一样,就不贴出来了

就说这么多吧,不是高玩(请轻喷),刚做的可以看下。

PHP 生成 ppt,PHP导出PPT方法,PowerPoint/PhpPresentation处理相关推荐

  1. Java 批量导出PPT为图片,并合并生成PDF

    Java 批量导出PPT为图片,并合并生成PDF 最近有小伙伴需要把PPT打印,但苦于PPT太多,浪费纸张,所以特别写了这个合并多张PPT到一张A4纸上并生成PDF方便打印的程序: 前期准备 把PPT ...

  2. 如何在ppt中生成柱状图_在ppt中做柱状图的方法图解步骤

    ppt中经常用到图表,比如柱形图.圆饼图等,这些图就是基于一定的数据建立起来的,所以我们得先建立数据表格然后才能生成图表,为此 学习啦小编为你准备了在ppt中做柱状图的方法,希望对你有所帮助. 在pp ...

  3. python win32com批量导出.ppt/.pptx文件所有图片

    环境:py2.7 要求: 1.先pip安装pywin32 pip install pywin32 2.这份代码最好和你的PPT文件放在同一目录下,且目录不能有中文名.如果要放在别的地方看代码注释,效果 ...

  4. windows上ppt转图片的方法

    最简单通用的方法就是使用POI来转换,但是转换的图片清晰度很低,即使调高了倍数还是和原图有差距,而且随着设置图片倍数的提高内存占用也变得十分巨大,在IDEA中甚至会出现OOM的情况.下面贴一下使用PO ...

  5. wps怎么把ppt里的字体一起保存_干货 | 如何快速导出PPT中的文字内容?

    原标题:干货 | 如何快速导出PPT中的文字内容? 我们经常需要将某些PPT演示文稿的文字部分导出到Word进行处理,但如果使用"创建讲义"的功能,则只是将幻灯片和备注同时导出到W ...

  6. java使用poi导出ppt图表——环形图/空心饼图

    目录 前言 使用java poi导出图表,就是找不到环形图/空心饼图怎么做的(或者是我没找到),找到的都是饼图,柱图,线图等. 所以就简单说一下怎么导出的. 一.导入poi相关jar包 二.先创建ex ...

  7. java利用poi生成pptx格式的ppt

    最近开发了一个自定义ppt模板生成ppt的需求,记录一个小demo 官方文档 ppt文档链接 w3c的文档ppt文档 1.首先打入poi的maven依赖 <!-- https://mvnrepo ...

  8. wps中ppt转html,wps ppt转换视频 dps转换ppt/ppt转视频的方法

    大家对PPT并不陌生吧,生活工作中随时能看到用到,而PPT转视频更是一大突破,方便放入移动设备播放或上传各大视频网站分享.刻录成盘收藏等,实用性相当强.狸窝PPT转换视频软件就能批量将Microsof ...

  9. 怎么把ppt转成pdf?PPT转PDF简单方法分享

    我们平时在工作办公的时候,Word,Excel,PPT,PDF这些文件格式都会经常用到,文件格式之间的转换也会经常碰到.PPT是我们在演讲或开会时会经常用到的,但是有时候我们在其他设备上打开,它可能会 ...

  10. 不知道PPT转PDF简单方法有哪些?三个方法让你知道PPT转PDF怎么转

    我们有时候制作了一个演示文稿,想要把它发送到其它地方进行讲解的准备,但是我们发现在传输前后,部分PPT的内容.排版等会出现变化,这个时候就有朋友想知道,有什么办法可以避免这种情况的发生吗?其实是有的, ...

最新文章

  1. Embedded Linux Primer----嵌入式Linux基础教程--导论
  2. 如何才能在SQL查询器中使用语句查询出表的列名及数据类型(包括类型和长度)...
  3. Oracle 锁表查询和解锁方法
  4. java基础[多态基础,多态数组,多态参数方法]
  5. html a hover css,CSS中的a:hover表示什么
  6. python3.7-secrets模块
  7. mysql中dml全称是什么_MySQL中的DML、DDL、DCL是什么意思
  8. 蓝桥杯精选赛题系列——统计数字
  9. 第一篇 安卓系统的介绍及特点
  10. java使用poi读取Excel2003版(.xls)
  11. 机器学习教程 三.回归理论及代码实现
  12. NOI2015 Day1 T2 软件包管理器 树链剖分
  13. umijs介绍及基本用法、配置式路由、约定式路由、路由传参等
  14. Failed to start component 异常解决方案
  15. 解决pycrypto无法安装,以及爬虫实战
  16. 大数据时代,华为云BI助力企业挖掘数据“宝藏”
  17. 浅谈JDK8相对于JDK7的一些新特性
  18. 安装武器(pycharm,Anaconda)
  19. python里的非_python中逻辑非
  20. java输入长宽高计算表面积_设计一个C语言程序计算长方体体积和表面积,如何通过键盘输入长宽高?...

热门文章

  1. python 方差齐性检验_SPSS方差齐性检验(图文+视频教程)
  2. 《机器学习算法竞赛实战》学习笔记1.竞赛简介
  3. M语言简单示例--网页数据抓取
  4. ESD-PCIe 402-1 CAN卡驱动安装及测试
  5. http系列---Apache AB测试工具
  6. iTerm2使用zmodem协议上传下载文件
  7. 输入关键字生成对联_输入真实名字自动生成网名,名字对联自动生成
  8. 输入关键字生成对联_对联生成器在线生成_对联在线自动生成器下载V1.0.0|好特下载...
  9. 快速理解卷积神经网络VGG16/VGG19,以及每个模块的作用及意义。
  10. 活动报名场地预约自定义表单小程序开发