说明(2017-8-1 11:15:46):

1. 哈哈,我就说微软肯定有自己的办法,把PPT转成图片。

2. 主要是要引入两个微软自己的程序集,vs里自带直接添加引用,注意一下版本,12.0是office2007吧?反正我用的14.0的。

添加完会多出来两个引用:

3. 剩下的看代码就可以了,非常之简单,核心代码就三行!

4. 感谢下面的参考资料:

http://bbs.csdn.net/topics/360019178

另外stackoverflow是个好东西:

https://stackoverflow.com/questions/2972263/ppt-slides-to-images

还有必应搜索,不知道比百度强到哪里去了,添加程序集的时候遇到几个问题,都是在必应里搜索到解决办法的:

http://cn.bing.com/

xaml:

<Window x:Class="PPT2JPG.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="" Width="">
<Grid>
<Button Content="开始转成图片" HorizontalAlignment="Left" Height="" Margin="366,181,0,0" VerticalAlignment="Top" Width="" Click="Button_Click_1"/>
<Label Content="PPT路径" HorizontalAlignment="Left" Height="" Margin="46,69,0,0" VerticalAlignment="Top" Width=""/>
<TextBox Name="txtBoxPath" HorizontalAlignment="Left" Height="" Margin="129,66,0,0" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width=""/>
</Grid>
</Window>

代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Microsoft.Office.Core;
using Microsoft.Office.Interop.PowerPoint;
using System.IO; namespace PPT2JPG
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
File.Delete("log.txt");
} private void ShowLog(string log)
{
File.AppendAllText("log.txt", "\r\n" + DateTime.Now.ToString() + log);
}
private void Button_Click(object sender, RoutedEventArgs e)
{ }
//PPT转成JPG
private void Button_Click_1(object sender, RoutedEventArgs e)
{
string pptPath = txtBoxPath.Text;
if (pptPath != "" && Directory.Exists(pptPath))
{
DirectoryInfo pptInfos = new DirectoryInfo(pptPath);
foreach (FileInfo pptInfo in pptInfos.GetFiles("*.ppt*"))
{
//创建图片文件夹
if (!Directory.Exists(pptInfo.FullName.Split('.')[]))
{
Directory.CreateDirectory(pptInfo.FullName.Split('.')[]);
}
else
{
continue;
}
//开始转换PPT
try
{
ApplicationClass pptApp = new ApplicationClass();
Presentation pptPres = pptApp.Presentations.Open(pptInfo.FullName, MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse);
for (int i = ; i < pptPres.Slides.Count; i++)
{
string imgPath = pptInfo.FullName.Split('.')[] + @"\" + (i + ).ToString() + ".jpg";
pptPres.Slides[i + ].Export(imgPath, "jpg", , );
}
Console.WriteLine("已经转换完:"+pptInfo.FullName);
pptPres.Close();
}
catch (Exception)
{
Console.WriteLine("无法转换:" + pptInfo.FullName);
ShowLog("无法生成图片:" + pptInfo.FullName);
continue;
} }
MessageBox.Show("转换图片完成!");
}
else
{
MessageBox.Show("路径为空或不存在!");
}
}
}
}

C#学习笔记(24)——C#将PPT批量转为JPG(最简单的方法)的更多相关文章

  1. [原创]java WEB学习笔记24:MVC案例完整实践(part 5)---删除操作的设计与实现

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  2. Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)

    Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ...

  3. Entity Framework 6 学习笔记2 — 增、删、改、显示简单代码示例

    前言 通过 “Entity Framework 6 学习笔记1 — 介绍和安装方法”文章我相信大家对EF的安装应该没什么问题了,整体安装还是比较简单的,只需要通过Nuge搜索EF然后安装就可以了,这也 ...

  4. C#学习笔记(23)——C#将PPT批量转为JPG(aspose方法)

    说明(2017-7-31 18:30:25): 1. 最主要的是下载到aspose的破解文件,我在这里下载的http://www.lenosoft.net/down/10205.htm,如果不差钱可以 ...

  5. Linux下汇编语言学习笔记24 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  6. struts2学习笔记--上传单个和批量文件示例

    struts2提供了对上传文件的支持,将上传后的文件封装为java.io.File对象,开发者只需要在Action中定义一个File类型的变量,然后直接使用该变量,将它复制到目的目录即可. 单个文件上 ...

  7. Ext.Net学习笔记24:在ASP.NET MVC中使用Ext.Net

    在前面的笔记中已经介绍了如何在ASP.NET WebForm中使用Ext.Net,由于这个系列一直在WebForm中使用,所以并没有涉及到ASP.NET MVC中的用法. 如果你要在ASP.NET M ...

  8. android学习笔记24——事件处理

    事件处理 android提供了两种事件处理机制: 1.基于回调的事件处理 2.基于监听器的事件处理(通过绑定特定事件监听器) 注意: android对于基于回调的事件处理而言,主要做法就是重写andr ...

  9. [BigData]关于Hadoop学习笔记第四天(PPT总结)(一)

    课程安排 Partitioner编程** 自定义排序编程** Combiner编程** 常见的MapReduce算法** ---------------------------加深拓展-------- ...

随机推荐

  1. NBUT [1475] Bachelor

    [1475] Bachelor http://acm.nbut.cn:8081/Problem/view.xhtml?id=1475 时间限制: 1000 ms 内存限制: 65535 K 问题描述 ...

  2. 收集一些常用Javascripot

    获取一组单选框当前选择值: $("input[name='radGende']:checked").val();

  3. java 发送post请求参数中含有+会转化为空格的问题

    如题 原因分析:参数在传递过程中经历的几次编码和解码标准不同,导致加号.空格等字符的错误. 解决方案:将post请求的参数中 ,含有+号的,统统采用%2B 去替换,这是URL的协议问题.

  4. SpringMVC整合Mongodb开发,高级操作

    开发环境: 操作系统:windows xpMongodb:2.0.6依 赖 包:Spring3.2.2 + spring-data-mongodb-1.3.0 + Spring-data-1.5 +  ...

  5. SQL Performance Analyzer

    SQL Performance Analyzer 系统发生变更,比如升级数据库.增加索引,都会可能导致sql的执行计划发生改变,从而影响sql的性能. 如果能预知系统变更会对sql的性能的影响,就可以 ...

  6. MySQL -- 全文检索

    mysql支持全文索引和全文检索--全文索引的索引类型是fulltext--全文索引只能用于innodb表和myisam表,对应的列类型只是支持char.varchar.text--mysql5.7. ...

  7. vfork 挂掉的一个问题

    在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成ex ...

  8. python类内init外声明的属性与init内声明的对象属性的访问和操作区别

    python类内init外声明的属性与init内声明的对象属性的访问和操作区别(面试题) 1.在ipython中输入以下代码,其输出会是什么? In [1]: class ClassOut: ...: ...

  9. Oracle中文乱码解决办法总结

    AMERICAN_AMERICA.WE8ISO8859P1,这个字符编码是西欧字符编码,对应于.Net的就是iso-8859-1字符编码,所以只需要改到系统的默认字符编码就行了. 解决方法: (1) ...

  10. A标签href属性详解--记录八

    1.去掉<a>标签的下划线 <ul style=" list-style-type:none; margin:0;color:Gray; font-size:11px;ma ...