一、源码

先把实现的代码放上来,再详聊遇到的问题。代码地址:https://github.com/gis2all/csharp-scripts/tree/master/Scripts

二、实现

要实现此功能,需要用到微软Office的相关库,Nuget下载好之后就可以引用与PPT有关的API

首先新建一个PPT类

 Application pptApp = new Application();Presentations pptPres = pptApp.Presentations;Presentation pptPre = pptPres.Add(MsoTriState.msoFalse);

关于MsoTriState枚举,根据MS文档 MsoTriState Enum,实际上可以将其当作Bool值,取true或者false,其他值不支持。这里msoFalse的意思是不启动PPT程序

字段 含义
msoCTrue 1 Not supported
msoFalse 0 False
msoTriStateMixed -2 Not supported
msoTriStateToggle -3 Not supported
msoTrue -1 True

再添加图片前我们需要了解PPT组织结构,右侧矩形就是一个Slide,而矩形中可以存在多个Shape,这些Shape用来存放文本、图形、图片、媒体等资源,多个Slide最后组成一个列表,如下图所示

所以先需要添加一个Slide,注意起始数值为1,而不是0

 var slide = pptPre.Slides.Add(1, PpSlideLayout.ppLayoutObject);

可以获取该Slide的长宽

slideWidth = slide.Master.Width
slideHeight = slide.Master.Height

然后在该Slide中添加一个Shape,这个Shape的Content正是我们想要导出的图片,图片来源是本地文件,图片在Shape中长宽也可以自定义,Shape的长宽也可以自定义,Left/Top为Shape左上角起始点相对于Slide坐标

var shape = slide.Shapes.AddPicture(imageName, MsoTriState.msoTrue, MsoTriState.msoTrue, 0, 0, scaleSize.Width, scaleSize.Height);
shape.Width = scaleSize.Width;
shape.Height = scaleSize.Height;
shape.Left = 0;
shape.Top = 0;

最后保存文件即可

pptPre.SaveAs(pptName, PpSaveAsFileType.ppSaveAsDefault, MsoTriState.msoCTrue);

不过需要注意的是,调用PPT相关API时,貌似不能使用异步方法,如使用程序会莫名终止,所以建议同步方法

【PPT】图片转PPT文件相关推荐

  1. python ppt 图片_python ppt转图片

    # 1). 导入需要的模块(打开应用程序的模块) import win32com.client import os def ppt2png(filename, output_filename): &q ...

  2. python ppt 图片_Python PPT 转化为图片 支持拼接成一张图片

    import win32com import win32com.client import sys import os from PIL import Image #获取当前目录 ppt_root = ...

  3. python ppt 图片_python ppt 转 pdf 图片

    ppt要想完美的转pdf,图片,还是需要在windows下面来操作. 1,安装Python3.5.1 下载地址:https://www.python.org/downloads/windows/ Wi ...

  4. html中文字处理美化的效果,PPT文字处理 PPT图片美化 PPT页面的布局-泡泡糖办公...

    做好PPT的页面设计,无外乎就是要做好三件事 --文字的处理.图片的美化.页面的布局: 作为一份职场PPT而言,做好上述这三件事已足矣! 而如果你还想让自己的PPT提升一个档次和水准,那么还需在此基础 ...

  5. 如何将视频文件或各种类型的图片从PPT中取出

    如何将视频文件或各种类型的图片从PPT中取出 有时候我们做好了PPT,但需要PPT中的视频或者一些GIF图片以及其他格式的文件,又不想要其他的内容,而制作PPT的素材找不到了,那么该怎样从PPT中取出 ...

  6. 比OCR更强大的PPT图片一键转文档重建技术

    作者:熊唯,黄飞,戈扬 腾讯 PCG 应用研究员 本文介绍了 QQ 研发中心自研的 PPT  重建技术,目前腾讯文档在进行接入工作.当前主流办公产品比如 office,wps,腾讯文档会采用 AI 技 ...

  7. 图片导入ppt后模糊_PPT设计,找图也是一种能力

    关注[新精英充电站]能力提升看得见! 除了拍摄的图片.公司产品的效果图等,有时还需要从网络中获取一些图片资源.对于PPT设计而言,会找图片也是一种能力的表现.高手往往能既快速又准确地找到高质量的配图. ...

  8. PPT图片快速编辑技巧

    修改*.ppt或*.pptx的后缀名为zip 例如:demo.pptx修改为demo.zip 修改为, 使用压缩软件打开此压缩包, 一般图片资源都会存放在ppt/media下 找到你所要修改的图片,然 ...

  9. 如何批量添加图片到ppt的方法

    如何批量添加图片到ppt 许多时候会做一些幻灯片,需要大量的图片,但是往往一张以张的加图片,会很浪费时间,如何快速添加图片,一次解决呢? 步骤:插入-相册-点击相册 点击文件,批量选择你要插入的图片, ...

  10. python自动化办公之爬取HTML图片写入PPT实战

    python自动化办公之批量图片导入PPT 昨天,大Boss找到一个网页,觉得里面的图片内容特别好,想把它下载下来作为学习资料,整理整理教导下属.但是,手动一张一张的保存图片太慢了,问我可不可以下载下 ...

最新文章

  1. java bank项目答案_Java基础实战Bank项目01-04
  2. leetcode-383-Ransom Note(以空间换时间)
  3. C++ cin不支持录入空格
  4. Ubuntu 12.04: virtualenv下安装 numpy, scipy, matpl...
  5. 文本溢出text-overflow和文本阴影text-shadow
  6. 学好Java的10个建议
  7. 【本周上榜!】看雪论坛精华优秀文章分享与点评
  8. TCP新手误区–心跳的意义
  9. OpenCV2 图像叠加 给照片加水印
  10. 阶段3 1.Mybatis_04.自定义Mybatis框架基于注解开发_3 基于注解的自定义再分析
  11. GMM R语言程序 gmm包的使用
  12. Java serialVersionUID
  13. 泛函分析 01.01 距离空间-绪论
  14. Matlab---示波器Scope-Measurements
  15. Love6 五一无忧无虑假期后的一些随笔和感想
  16. PHP分片上传文件到又拍云对象存储
  17. ThinkAdmin for PHP后台管理系统
  18. Spring中的事务控制(Transacion Management with Spring)
  19. 微信小程序开发聊天室——实时聊天,支持图片预览
  20. 【Jquery-03】jq中的样式操作

热门文章

  1. 整合Unity游戏引擎和 Visual Studio Code 代码编辑器
  2. 手机真机开启开发者模式并开启usb调试
  3. 2006年最新统计web2.0新鲜网站列表及介绍
  4. php网页完成后播放音乐提醒,js+php 实现定时查询数据播放提示音乐
  5. CAD剖切符号怎么画?CAD剖切符号标注
  6. 电脑桌面图标全部变成Word图标?
  7. 【嵌入式物联网实战项目】环境监测设备接入涂鸦IoT开发平台
  8. 大学里,有这样一群人
  9. Python数组操作将一维数组变成二维数组
  10. 《死或生5终极版》霞与红叶限定版发布 内含福利