zoukankan      html  css  js  c++  java
  • C# 实现PPT 每一页转成图片

    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();
            }
    复制代码
     
     
     
  • 相关阅读:
    Git 分支创建,合并, 分支切换, 分支拉取,提交
    Win7 Nodejs 安装
    .ssh github
    xxxx.IronManager was loaded by com.taobao.pandora.boot.loader.XxxxClassLoader@xxx,it should be loaded by Pandora Container...与摒弃引进别的项目的一些冲突包
    推荐一波微软家的浏览器:EDGE
    谷歌浏览器新功能 Copy Declaration
    微信支付回调数据接收不完整解决方案
    开源物联网框架EasyIot(适用于快递柜&售货机)
    开源物联网框架EasyIot场景落地(适用于快递柜、储物柜)
    海康摄像头音频方案(播放音频文件+语音对讲+语音转发)支持window/Linuxjava版本
  • 原文地址:https://www.cnblogs.com/lhlong/p/11609384.html
Copyright © 2011-2022 走看看