说明(2017-8-1 11:15:46):
1. 哈哈,我就说微软肯定有自己的办法,把PPT转成图片。
2. 主要是要引入两个微软自己的程序集,vs里自带直接添加引用,注意一下版本,12.0是office2007吧?反正我用的14.0的。
添加完会多出来两个引用:
3. 剩下的看代码就可以了,非常之简单,核心代码就三行!
4. 感谢下面的参考资料:
http://bbs.csdn.net/topics/360019178
另外*是个好东西:
https://*.com/questions/2972263/ppt-slides-to-images
还有必应搜索,不知道比百度强到哪里去了,添加程序集的时候遇到几个问题,都是在必应里搜索到解决办法的:
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("路径为空或不存在!");
}
}
}
}