/// <summary> /// PPT产生缩略图 /// </summary> /// <param name="filePath"></param> /// <param name="previewPath"></param> /// <returns></returns> private static bool GetThumbnailPpt(string filePath, string previewPath) { bool result = false; Presentation ppt = new Presentation(); try { ppt.LoadFromFile(filePath); if (ppt.Slides.Count > 0) { //生成图片 foreach (IShape s in ppt.Slides[0].Shapes) { if (s is SlidePicture) { SlidePicture ps = s as SlidePicture; ps.PictureFill.Picture.EmbedImage.Image.Save(previewPath); if (File.Exists(previewPath)) { result = true; } ps.Dispose(); } if (s is PictureShape) { PictureShape ps = s as PictureShape; ps.EmbedImage.Image.Save(previewPath); if (File.Exists(previewPath)) { result = true; } } } if (!result) { string temImage = Path.GetDirectoryName(previewPath) + "\\" + Guid.NewGuid().ToString() + ".emf"; ppt.Slides[0].SaveAsEMF(temImage); Image image = Bitmap.FromFile(temImage); image.Save(previewPath); image.Dispose(); File.Delete(temImage); if (File.Exists(previewPath)) { result = true; } } if (!result) { result = GetThumbnailWritten("PPT", previewPath); } } ppt.Dispose(); } catch { ppt.Dispose(); result = GetThumbnailWritten("PPT", previewPath); } return(result); }