中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

C#操作PowerPoint的基本代碼

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

C#操作PowerPoint的基本代碼,包括打開ppt文件、讀取幻燈頁(yè),插入幻燈片,自動(dòng)播放等

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using OFFICECORE = Microsoft.Office.Core;
using POWERPOINT = Microsoft.Office.Interop.PowerPoint;
using System.Windows;
using System.Collections;
using System.Windows.Controls;
namespace PPTDraw.PPTOperate
{
    /// <summary>
    /// PPT文檔操作實(shí)現(xiàn)類.
    /// </summary>
    public class OperatePPT
    {
        #region=========基本的參數(shù)信息=======
        POWERPOINT.Application objApp = null;
        POWERPOINT.Presentation objPresSet = null;
        POWERPOINT.SlideShowWindows objSSWs;
        POWERPOINT.SlideShowTransition objSST;
        POWERPOINT.SlideShowSettings objSSS;
        POWERPOINT.SlideRange objSldRng;
        bool bAssistantOn;
        double pixperPoint = 0;
        double offsetx = 0;
        double offsety = 0;
        #endregion
        #region===========操作方法==============
        /// <summary>
        /// 打開PPT文檔并播放顯示。
        /// </summary>
        /// <param name="filePath">PPT文件路徑</param>
        public void PPTOpen(string filePath)
        {
            //防止連續(xù)打開多個(gè)PPT程序.
            if (this.objApp != null) { return; }
            try
            {
                objApp = new POWERPOINT.Application();
                //以非只讀方式打開,方便操作結(jié)束后保存.
                objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
                //Prevent Office Assistant from displaying alert messages:
                bAssistantOn = objApp.Assistant.On;
                objApp.Assistant.On = false;
                objSSS = this.objPresSet.SlideShowSettings;
                objSSS.Run();
            }
            catch (Exception ex)
            {
                this.objApp.Quit();
            }
        }
        /// <summary>
        /// 自動(dòng)播放PPT文檔.
        /// </summary>
        /// <param name="filePath">PPTy文件路徑.</param>
        /// <param name="playTime">翻頁(yè)的時(shí)間間隔.【以秒為單位】</param>
        public void PPTAuto(string filePath, int playTime)
        {
            //防止連續(xù)打開多個(gè)PPT程序.
            if (this.objApp != null) { return; }
            objApp = new POWERPOINT.Application();
            objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoCTrue, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse);
            // 自動(dòng)播放的代碼(開始)
            int Slides = objPresSet.Slides.Count;
            int[] SlideIdx = new int[Slides];
            for (int i = 0; i < Slides; i++) { SlideIdx[i] = i + 1; };
            objSldRng = objPresSet.Slides.Range(SlideIdx);
            objSST = objSldRng.SlideShowTransition;
            //設(shè)置翻頁(yè)的時(shí)間.
            objSST.AdvanceOnTime = OFFICECORE.MsoTriState.msoCTrue;
            objSST.AdvanceTime = playTime;
            //翻頁(yè)時(shí)的特效!
            objSST.EntryEffect = POWERPOINT.PpEntryEffect.ppEffectCircleOut;
            //Prevent Office Assistant from displaying alert messages:
            bAssistantOn = objApp.Assistant.On;
            objApp.Assistant.On = false;
            //Run the Slide show from slides 1 thru 3.
            objSSS = objPresSet.SlideShowSettings;
            objSSS.StartingSlide = 1;
            objSSS.EndingSlide = Slides;
            objSSS.Run();
            //Wait for the slide show to end.
            objSSWs = objApp.SlideShowWindows;
            while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(playTime * 100);
            this.objPresSet.Close();
            this.objApp.Quit();
        }
        /// <summary>
        /// PPT下一頁(yè)。
        /// </summary>
        public void NextSlide()
        {
            if (this.objApp != null)
                this.objPresSet.SlideShowWindow.View.Next();
        }
        /// <summary>
        /// PPT上一頁(yè)。
        /// </summary>
        public void PreviousSlide()
        {
            if (this.objApp != null)
                this.objPresSet.SlideShowWindow.View.Previous();
        }
        /// <summary>
        /// 對(duì)當(dāng)前的PPT頁(yè)面進(jìn)行圖片插入操作。
        /// </summary>
        /// <param name="alImage">圖片對(duì)象信息數(shù)組</param>
        /// <param name="offsetx">插入圖片距離左邊長(zhǎng)度</param>
        /// <param name="pixperPoint">距離比例值</param>
        /// <returns>是否添加成功!</returns>
        public bool InsertToSlide(List<PPTOBJ> listObj)
        {
            bool InsertSlide = false;
            if (this.objPresSet != null)
            {
                this.SlideParams();
                int slipeint = objPresSet.SlideShowWindow.View.CurrentShowPosition;
                foreach (PPTOBJ myobj in listObj)
                {
                    objPresSet.Slides[slipeint].Shapes.AddPicture(
                         myobj.Path,           //圖片路徑
                         OFFICECORE.MsoTriState.msoFalse,
                         OFFICECORE.MsoTriState.msoTrue,
                         (float)((myobj.X - this.offsetx) / this.pixperPoint),       //插入圖片距離左邊長(zhǎng)度
                         (float)(myobj.Y / this.pixperPoint),       //插入圖片距離頂部高度
                         (float)(myobj.Width / this.pixperPoint),   //插入圖片的寬度
                         (float)(myobj.Height / this.pixperPoint)   //插入圖片的高度
                      );
                }
                InsertSlide = true;
            }
            return InsertSlide;
        }
        /// <summary>
        /// 計(jì)算InkCanvas畫板上的偏移參數(shù),與PPT上顯示圖片的參數(shù)。
        /// 用于PPT加載圖片時(shí)使用
        /// </summary>
        private void SlideParams()
        {
            double slideWidth = this.objPresSet.PageSetup.SlideWidth;
            double slideHeight = this.objPresSet.PageSetup.SlideHeight;
            double inkCanWidth = SystemParameters.PrimaryScreenWidth;//inkCan.ActualWidth;
            double inkCanHeight = SystemParameters.PrimaryScreenHeight;//inkCan.ActualHeight ;
            if ((slideWidth / slideHeight) > (inkCanWidth / inkCanHeight))
            {
                this.pixperPoint = inkCanHeight / slideHeight;
                this.offsetx = 0;
                this.offsety = (inkCanHeight - slideHeight * this.pixperPoint) / 2;
            }
            else
            {
                this.pixperPoint = inkCanHeight / slideHeight;
                this.offsety = 0;
                this.offsetx = (inkCanWidth - slideWidth * this.pixperPoint) / 2;
            }
        }
        /// <summary>
        /// 關(guān)閉PPT文檔。
        /// </summary>
        public void PPTClose()
        {
            //裝備PPT程序。
            if (this.objPresSet != null)
            {
                //判斷是否退出程序,可以不使用。
                //objSSWs = objApp.SlideShowWindows;
                //if (objSSWs.Count >= 1)
                //{
                    if (MessageBox.Show("是否保存修改的筆跡!", "提示", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
                        this.objPresSet.Save();
                //}
                //this.objPresSet.Close();
            }
            if (this.objApp != null)
                this.objApp.Quit();
            GC.Collect();
        }
        #endregion
    }
}

標(biāo)簽: isp ssl 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:PHP獲取一年中的每星期的開始日期和結(jié)束日期

下一篇:iOS實(shí)現(xiàn)上傳圖片到服務(wù)器