zhuan https://www.cnblogs.com/ywtk/archive/2013/09/02/3295973.html
版本 2019-09-30
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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.Shapes;
using DevExpress.XtraPrinting.Native;
using O2S.Components.PDFRender4NET;
using System.Drawing.Imaging;
using System.IO;
namespace WorkMonitor.CycleForm
{
/// <summary>
/// frmTest.xaml 的交互逻辑
/// </summary>
public partial class frmTest : Window
{
public frmTest()
{
InitializeComponent();
pptToImg(@"C:UsersAdministratorDesktopAAA-FileCycle4.ppt", @"C:UsersAdministratorDesktopAAA-FileCycle", "testPPT", ImageFormat.Png);
ConvertPDF2Image(@"C:UsersAdministratorDesktopAAA-FileCycle4.pdf", @"C:UsersAdministratorDesktopAAA-FileCycle", "testPDF", ImageFormat.Jpeg, 5);
}
/// <summary>
/// 将PPT转换为图片
/// </summary>
/// <param name="pptPath"></param>
/// <param name="imgPath"></param>
private void pptToImg(string pptPath, string imgPath, string imageName, ImageFormat imageFormat)
{
var app = new Microsoft.Office.Interop.PowerPoint.Application();
var ppt = app.Presentations.Open(pptPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
var index = 0;
var fileName = pptPath;
foreach (Microsoft.Office.Interop.PowerPoint.Slide slid in ppt.Slides)
{
++index;
//设置图片大小
slid.Export(imgPath + string.Format("{0}{1}.{2}", imageName , index.ToString(),imageFormat.ToString()) ,imageFormat.ToString(), 1024, 768);
//根据屏幕尺寸。设置图片大小
//slid.Export(imgPath+string.Format("page{0}.jpg",index.ToString()), "jpg", Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
}
//释放资源
ppt.Close();
app.Quit();
GC.Collect();
}
/// <summary>
/// 将PDF文档转换为图片的方法
/// </summary>
/// <param name="pdfInputPath">PDF文件路径</param>
/// <param name="imageOutputPath">图片输出路径</param>
/// <param name="imageName">生成图片的名字</param>
/// <param name="imageFormat">设置所需图片格式</param>
/// <param name="definition">设置图片的清晰度,数字越大越清晰</param>
public void ConvertPDF2Image(string pdfInputPath, string imageOutputPath, string imageName, ImageFormat imageFormat, int definition)
{
PDFFile pdfFile = PDFFile.Open(pdfInputPath);
if (!Directory.Exists(imageOutputPath))
{
Directory.CreateDirectory(imageOutputPath);
}
// start to convert each page
for (int i = 1; i <= pdfFile.PageCount; i++)
{
try
{
System.Drawing.Bitmap pageImage = pdfFile.GetPageImage(i - 1, 56 * (int)definition);
pageImage.Save(imageOutputPath + imageName + i.ToString() + "." + imageFormat.ToString(), imageFormat);
pageImage.Dispose();
}
catch (Exception)
{
}
}
pdfFile.Dispose();
}
}
}
版本 2019-09-29
要实现PPT转图片,首先需要引用两个DLL。
我这里用的这个这个版本
Microsoft.Office.Interop.PowerPoint 12.0
Microsoft Office 12.0 object Library
如下图:


代码如下:
private void pptToImg(string pptPath, string imgPath)
{
var app = new Microsoft.Office.Interop.PowerPoint.Application();
var ppt = app.Presentations.Open(pptPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoFalse);
var index = 0;
var fileName = Path.GetFileNameWithoutExtension(pptPath);
foreach (Microsoft.Office.Interop.PowerPoint.Slide slid in ppt.Slides)
{
++index;
//设置图片大小
slid.Export(imgPath+string.Format("page{0}.png",index.ToString()), "png", 1024, 768);
//根据屏幕尺寸。设置图片大小
//slid.Export(imgPath+string.Format("page{0}.jpg",index.ToString()), "jpg", Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
}
//释放资源
ppt.Close();
app.Quit();
GC.Collect();
}
