一、源码

先把实现的代码放上来,再详聊遇到的问题。代码地址: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. Nature综述:噬菌体的百年研究
  2. 洛谷 3398 仓鼠找sugar 【模板】判断树上两链有交
  3. 【今晚7点半】:华为云视频直播在各细分场景的体验指标优化实践
  4. 史上最详细的值传递和引用传递之间区别
  5. 京东618期间将累计发放百亿消费券
  6. mysql 数据库连接 w3school_PHP 连接 MySQL
  7. 杭电2078复习时间
  8. 基于jQuery的nyroModal模态对话框插件的使用,及IFrame方式窗口的关闭问题
  9. Netty优雅退出机制和原理
  10. JavaCV入门使用
  11. NewLand手持设备上条码扫描
  12. 微信小程序——视图层
  13. HTML特效,旋转的正方体
  14. C语言:猴子吃桃问题:猴子第一天摘下若干桃子,当即吃了一半多一个,第二天将剩下的桃子吃掉一半多一个,以后每天都吃掉前一天剩下桃子的一半多一个。到第10天想再吃时,只剩下一个桃子。
  15. 【操作系统原理】信号量及PV操作详解
  16. win32进程共享内存
  17. java做mp3_用java编写MP3播放器
  18. 【BYM】Android 仿百度搜索列表滑动效果,flutter环境搭建
  19. 深富策略:权重调整拖累指数 下周操作要谨慎
  20. FPGA之DDS信号发生器

热门文章

  1. td标签 内容垂直、水平居中
  2. 自旋锁和系统锁的使用场景
  3. 【python 手机号码归属地】手机号码归属地获取
  4. AndroidStudio项目取消SVN关联
  5. Linux下PCI设备驱动程序开发 --- PCI驱动程序实现(三)
  6. YOLOv3: 训练自己的数据
  7. 计算机组成原理 俸远桢,计算机组成原理与汇编语言程序设计第5章.ppt
  8. java 堆外内存_详解Java堆外内存
  9. Js变量如何转换为字符串类型?
  10. 27_TFTLCD实验