public function exportPpt(Request $request){

$params = $request->input();

if ( !isset( $params['text'] ) || empty( $params['text'] )){

ajax_return(6001, '模块名称不能为空');

}

if ( !isset($params['images']) || empty($params['images']) ){

ajax_return(6002, '生成的内容不能为空');

}

//主标题

$textHeader = $params['text'];

$title = '';

$description = '';

//新建立一个 PHPPowerPoint 对象.

$objPHPPresentation = new PhpPresentation();

//获取当前使用的一页幻灯片

$currentSlide = $objPHPPresentation->getActiveSlide();

//设置一个文本框

$shape = $currentSlide->createRichTextShape()

->setHeight(100)

->setWidth(600)

->setOffsetX(170)

->setOffsetY(80);

$shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_CENTER );

$textRun = $shape->createTextRun($textHeader);

$textRun->getFont()->setBold(true)

->setSize(20)

->setColor( new Color('FFE06B20' ) );

//+++++++++循环生成文字与图片+++++++++++++++++++++++++++++++++++++++++++++

$images = $this->createImage($params['images']);

$imgY = 180;

$imgHeight = 450;

$textY = 100;

foreach ($images as $key => $value){

$currentSlide = $objPHPPresentation->createSlide();//创建空白ppt页

//添加一个图片到幻灯片.

$shape = $currentSlide->createDrawingShape();

//设置图片名称.

$shape->setName($title)

//设置图片的描述信息.

->setDescription($description)

//图片实际路径

->setPath($value['imgsrc'])//LOGO

->setWidth(700)

//图片高度

->setHeight($imgHeight)

//设置图片相对于左上角X位置, 单位像素

->setOffsetX(170)

//设置图片相对于左上角Y位置, 单位像素

->setOffsetY($imgY);

//设置图显示状态

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

->setDirection(0)

->setDistance(0);

//设置一个文本框

$shape = $currentSlide->createRichTextShape()

->setHeight(50)

->setWidth(600)

->setOffsetX(170)

->setOffsetY($textY);

$shape->getActiveParagraph()->getAlignment()->setHorizontal( Alignment::HORIZONTAL_CENTER );

$textRun = $shape->createTextRun($value['name']);

$textRun->getFont()->setBold(true)

->setSize(14)

->setColor( new Color('FFE06B20' ) );

}

$uploadPath = DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . 'file_ppt' . DIRECTORY_SEPARATOR ;

$savePath = public_path( $uploadPath );

if ( !is_dir( $savePath ) ){

make_dir($savePath) ;

}

//文件名称及路径

$pptName = date('YmdHis').'.pptx';

$odpName = date('YmdHis').'.odp';

$savePptPath = $savePath . $pptName ;

$saveOdpPath = $savePath . $odpName;

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

$oWriterPPTX->save($savePptPath);

$oWriterODP = IOFactory::createWriter($objPHPPresentation, 'ODPresentation');

$oWriterODP->save($saveOdpPath);

ajax_return(200, array('ppt_file'=> $uploadPath . $pptName, 'odp_file'=>$uploadPath.$odpName));

}

/**

* 处理ppt生成的内容

* @param $params

* @Auther Baiping

* 2018/8/21 16:07

*/

public function createImage($params)

{

$images = json_decode($params, true);

$imageSavePath = public_path(DIRECTORY_SEPARATOR . 'uploads' . DIRECTORY_SEPARATOR . 'ppt_img'. DIRECTORY_SEPARATOR);

make_dir($imageSavePath);

$returnData = [];

foreach ($images as $key => $value){

$image = explode(',', $value['baseimage']);

$imageName = 'ppt_'.date('YmdHis',time()).'_'.rand(1000, 9999). '.png';

$savePath = $imageSavePath . DIRECTORY_SEPARATOR . $imageName;

file_put_contents($savePath, base64_decode($image[1]));

$returnData[] = [

'name' => $value['name'],

'imgsrc' => $savePath,

];

}

return $returnData;

}

PHP 生成 ppt,PHP生成PPT文件相关推荐

  1. ppt、pptx的文件自动批量生成缩略图

    需求: 将当前日期对应的"年-月"格式的文件夹下所有ppt及pptx文件的第一张幻灯片批量生成图片: 每天定时执行一次,生成上次未生成的文件 方案: 建立脚本文件ppttojpg. ...

  2. 如何在ppt中生成柱状图_ppt中如何添加柱状图 - 卡饭网

    在word文档中怎么添加柱状图?word制作柱状图方法介绍 在word文档中怎么添加柱状图?word制作柱状图方法介绍 我们在编辑word文档的时候,往往需要插入一些柱状图之类的图形,展示出多姿多彩的 ...

  3. 【ChatGPT】只需要2分钟,ChatGPT帮我生成了一份PPT

    自从人工智能横空而出,它在人们的生活中产生了巨大的影响.尤其在企业办公领域,借助人工智能的力量,能够迅速产出丰富多样的内容,无论对于企业还是个人都具有重要的帮助. 想象一下,通过与人工智能的合作,您可 ...

  4. ppt拼图 批量生成 N多ppt一键生成拼图

    我们办公中经常用到PPT插件islide里的PPT拼图,可以一个个手工把ppt生成ppt拼图效果,如果想批量把几十上百个ppt一次性生成拼图效果,islide就实现不了. 这是开发的PPT批量执行拼图 ...

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

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

  6. ppt怎么生成预览图

    ppt怎么生成预览图 如上图格式! 需要用到软件 1.Powerpoint 2.ISlide 如下图 ISlide软件下载地址 https://static.islide.cc/site/produc ...

  7. 利用人工智能自动生成架构图与PPT——ChatGPT训练营回顾

    在面对复杂的系统时,我们往往会感到难以理解其结构和功能,更不知道从何开始制作架构图.在遇到年终总结等需要制作PPT的工作场景下,缺乏制图和排版技能也会成为制作过程中的一大难点. 别担心,借助ChatG ...

  8. 使用New Bing的GPT-4轻松生成科技风背景PPT图片

    ChatGPT狂飙160天,世界已经不是之前的样子. 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 文章导读 大家好,我是数行天下, ...

  9. 把对像生成json并存储到文件

    1.创建实体对像json import com.alibaba.fastjson.annotation.JSONField;import java.util.Date;public class Stu ...

  10. R语言R-markdown实战示例、R-markdown、R-markdown生成结果汇报的HTML文件

    R语言R-markdown实战示例.R-markdown.R-markdown生成结果汇报的HTML文件 目录 R语言R-markdown实战示例.R-markdown.R-markdown生成结果汇 ...

最新文章

  1. 难忘的一天——装操作系统(一)
  2. BCELoss BCEWithLogitsLoss 多标签损失函数
  3. 年化收益14%的投资机会,出手吗?
  4. 火爆抖音!各路神仙齐唱《蚂蚁呀嘿》,带你探索背后的原理!
  5. SpringMVC杂记
  6. Processing Orders With Windows Workflow
  7. 基于深度学习的文本分类3
  8. npm install readline-sync:同步获取用户通过键盘输入的值(+算法实例)
  9. 四川大学2012年数学分析考研试题
  10. windows 运行banana
  11. FFmpeg之yuv裁剪(二十一)
  12. 预测nba本赛季球队夺冠的胜率并进行相关分析
  13. Win系统 - Windows10 系统恢复语言栏位置的方法(二)
  14. 优雅草YYC松鼠短视频2022年12月28日更新v5.1.6版本更新·修复因为消息提醒二开导致菜单栏无法显示·进一步完善推送
  15. 文案撰写方法三:制造反差
  16. 计算机社团感恩节免费维修周策划书,【关于感恩节的活动策划】大学感恩节活动策划案_早教感恩节活动策划方案_(2)_亲亲宝贝网...
  17. python对excel指定数据提取并保存到另一excel表中(一)
  18. JavaScript数据结构——图的实现
  19. Spring框架下载最新地址
  20. Tensorflow模型各部分自定义方式

热门文章

  1. python代码混淆
  2. 阿里代码规范检查工具的安装使用以及阿里代码格式化
  3. 华为版计算机软件,Huawei华为手机PC客户端软件
  4. 如何解决jsp中文乱码的问题
  5. 得到app文稿导出_得到APP使用报告
  6. Zmodem协议由浅入深
  7. pgAdmin3 连接GreenPlum数据库假死解决
  8. Arcmap出了问题--显示“ArcGIS Initializing Application”
  9. jquery weui 图片浏览器Photo Browser 如何使用?
  10. 企业级飞速低代码开发平台 | 产品介绍 | APass平台 | 全场景适用