【PPT】图片转PPT文件
一、源码
先把实现的代码放上来,再详聊遇到的问题。代码地址: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文件相关推荐
- python ppt 图片_python ppt转图片
# 1). 导入需要的模块(打开应用程序的模块) import win32com.client import os def ppt2png(filename, output_filename): &q ...
- python ppt 图片_Python PPT 转化为图片 支持拼接成一张图片
import win32com import win32com.client import sys import os from PIL import Image #获取当前目录 ppt_root = ...
- python ppt 图片_python ppt 转 pdf 图片
ppt要想完美的转pdf,图片,还是需要在windows下面来操作. 1,安装Python3.5.1 下载地址:https://www.python.org/downloads/windows/ Wi ...
- html中文字处理美化的效果,PPT文字处理 PPT图片美化 PPT页面的布局-泡泡糖办公...
做好PPT的页面设计,无外乎就是要做好三件事 --文字的处理.图片的美化.页面的布局: 作为一份职场PPT而言,做好上述这三件事已足矣! 而如果你还想让自己的PPT提升一个档次和水准,那么还需在此基础 ...
- 如何将视频文件或各种类型的图片从PPT中取出
如何将视频文件或各种类型的图片从PPT中取出 有时候我们做好了PPT,但需要PPT中的视频或者一些GIF图片以及其他格式的文件,又不想要其他的内容,而制作PPT的素材找不到了,那么该怎样从PPT中取出 ...
- 比OCR更强大的PPT图片一键转文档重建技术
作者:熊唯,黄飞,戈扬 腾讯 PCG 应用研究员 本文介绍了 QQ 研发中心自研的 PPT 重建技术,目前腾讯文档在进行接入工作.当前主流办公产品比如 office,wps,腾讯文档会采用 AI 技 ...
- 图片导入ppt后模糊_PPT设计,找图也是一种能力
关注[新精英充电站]能力提升看得见! 除了拍摄的图片.公司产品的效果图等,有时还需要从网络中获取一些图片资源.对于PPT设计而言,会找图片也是一种能力的表现.高手往往能既快速又准确地找到高质量的配图. ...
- PPT图片快速编辑技巧
修改*.ppt或*.pptx的后缀名为zip 例如:demo.pptx修改为demo.zip 修改为, 使用压缩软件打开此压缩包, 一般图片资源都会存放在ppt/media下 找到你所要修改的图片,然 ...
- 如何批量添加图片到ppt的方法
如何批量添加图片到ppt 许多时候会做一些幻灯片,需要大量的图片,但是往往一张以张的加图片,会很浪费时间,如何快速添加图片,一次解决呢? 步骤:插入-相册-点击相册 点击文件,批量选择你要插入的图片, ...
- python自动化办公之爬取HTML图片写入PPT实战
python自动化办公之批量图片导入PPT 昨天,大Boss找到一个网页,觉得里面的图片内容特别好,想把它下载下来作为学习资料,整理整理教导下属.但是,手动一张一张的保存图片太慢了,问我可不可以下载下 ...
最新文章
- java bank项目答案_Java基础实战Bank项目01-04
- leetcode-383-Ransom Note(以空间换时间)
- C++ cin不支持录入空格
- Ubuntu 12.04: virtualenv下安装 numpy, scipy, matpl...
- 文本溢出text-overflow和文本阴影text-shadow
- 学好Java的10个建议
- 【本周上榜!】看雪论坛精华优秀文章分享与点评
- TCP新手误区–心跳的意义
- OpenCV2 图像叠加 给照片加水印
- 阶段3 1.Mybatis_04.自定义Mybatis框架基于注解开发_3 基于注解的自定义再分析
- GMM R语言程序 gmm包的使用
- Java serialVersionUID
- 泛函分析 01.01 距离空间-绪论
- Matlab---示波器Scope-Measurements
- Love6 五一无忧无虑假期后的一些随笔和感想
- PHP分片上传文件到又拍云对象存储
- ThinkAdmin for PHP后台管理系统
- Spring中的事务控制(Transacion Management with Spring)
- 微信小程序开发聊天室——实时聊天,支持图片预览
- 【Jquery-03】jq中的样式操作