如何通过C#程序代码替换PPT幻灯片中的视频、音频文件

PPT幻灯片中支持插入视频及音频使幻灯片播放更形象生动,信息传递更具体。对PPT文档中已插入的视频、音频可执行读取、替换等操作。本文以C#和VB.NET程序代码介绍如何来实现文件替换。

程序环境:引入Spire.Presentation.dll 版本:Pack hotfix 6.2.2;Framework 4.5.1

实现效果如下图,在替换原有视频、音频文件时,也替换了原有视频封面、音频形状颜色等:

【C#】

using Spire.Presentation;

using Spire.Presentation.Collections;

using Spire.Presentation.Drawing;

using System.Drawing;

using System.IO;

namespace ReplaceVideo

{

class Program

{

static void Main(string[] args)

{

//加载PPT文档

Presentation ppt = new Presentation();

ppt.LoadFromFile("test.pptx");

//获取视频、音频文件集合

VideoCollection videos = ppt.Videos;

WavAudioCollection audios = ppt.WavAudios;

//遍历所有幻灯片

foreach (ISlide slide in ppt.Slides)

{

//遍历幻灯片中的所有形状

foreach (Shape shape in slide.Shapes)

{

//替换视频文件

if (shape is IVideo)

{

IVideo video = shape as IVideo;

byte[] bts = File.ReadAllBytes("newVideo.mp4");

VideoData videoData = videos.Append(bts);

video.EmbeddedVideoData = videoData;

Image image = Image.FromFile("jds.png");//加载图片

IImageData coverImage = ppt.Images.Append(image);

video.EmbedImage = coverImage;//设置视频封面图片

}

//替换音频文件

if(shape is IAudio)

{

IAudio audio = shape as IAudio;

byte[] bts1 = File.ReadAllBytes("newAudio.mp3");

IAudioData audiodata = audios.Append(bts1);

audio.Data = audiodata;

audio.Fill.SolidColor.Color = Color.GreenYellow;

}

}

}

//保存文档

ppt.SaveToFile("result.pptx", FileFormat.Pptx2013);

System.Diagnostics.Process.Start("result.pptx");

}

}

}

【VB.NET】

Imports Spire.Presentation

Imports Spire.Presentation.Collections

Imports Spire.Presentation.Drawing

Imports System.Drawing

Imports System.IO

Namespace ReplaceVideo

Class Program

Private Shared Sub Main(args As String())

'加载PPT文档

Dim ppt As New Presentation()

ppt.LoadFromFile("test.pptx")

'获取视频、音频文件集合

Dim videos As VideoCollection = ppt.Videos

Dim audios As WavAudioCollection = ppt.WavAudios

'遍历所有幻灯片

For Each slide As ISlide In ppt.Slides

'遍历幻灯片中的所有形状

For Each shape As Shape In slide.Shapes

'替换视频文件

If TypeOf shape Is IVideo Then

Dim video As IVideo = TryCast(shape, IVideo)

Dim bts As Byte() = File.ReadAllBytes("newVideo.mp4")

Dim videoData As VideoData = videos.Append(bts)

video.EmbeddedVideoData = videoData

Dim image__1 As Image = Image.FromFile("jds.png")

'加载图片

Dim coverImage As IImageData = ppt.Images.Append(image__1)

'设置视频封面图片

video.EmbedImage = coverImage

End If

'替换音频文件

If TypeOf shape Is IAudio Then

Dim audio As IAudio = TryCast(shape, IAudio)

Dim bts1 As Byte() = File.ReadAllBytes("newAudio.mp3")

Dim audiodata As IAudioData = audios.Append(bts1)

audio.Data = audiodata

audio.Fill.SolidColor.Color = Color.GreenYellow

End If

Next

Next

'保存文档

ppt.SaveToFile("result.pptx", FileFormat.Pptx2013)

System.Diagnostics.Process.Start("result.pptx")

End Sub

End Class

End Namespace

注:代码中的文件路径是在VS项目文件夹下,如本次测试环境中的路径为:C:\Users\Administrator\Documents\Visual Studio 2013\Projects\VideoAndAudio_PPT\ReplaceVideoAndAudio_PPT\bin\Debug,文件路径也可以另外自行定义。放在项目文件夹下的话,对文件管理更为方便。

(0)

相关推荐

  • Java 删除PPT幻灯片中的数字签名

    针对PPT幻灯片中已有的数字签名,若想删除来添加签名可参考以下方法来实现如何删除. 操作方法 01 源文档准备:准备一个已签名的PPT幻灯片文档,如图: 02 在IDEA程序中一入spire.pres ...

  • PPT幻灯片中怎么插入Flash动画

    Flash是一种交互式动画设计工具,用它可以将音乐,声效,动画以及富有新意的界面融合在一起,以制作出高品质的网页动态效果。Flash动画具有更好地交互功能和动画效果,利用它可以完成更为复杂的动作,下面 ...

  • PPT幻灯片中为对象添加动作以实现幻灯片导航的方法

    PPT幻灯片中为对象添加动作以实现幻灯片导航的方法 1.打开幻灯片,在幻灯片中插入作为导航按钮的图片.在幻灯片中选择需要添加动作的对象,然后单击"插入"选项卡"链接&qu ...

  • 如何提取PPT幻灯片中的图片

    许多PPT幻灯片的效果都非常漂亮,当然很羡慕吧?想从他人的幻灯片中将一些精美的图片提取出来为己所用吗?那我们应该怎么将这些图片从PPT幻灯片中提取出来呢?下面提供三种不同的方法,即可轻松获得这些精美的 ...

  • 为PPT幻灯片中的公式添加特效的方法

    为PPT幻灯片中的公式添加特效的方法 1.打开创建的演示文稿,在幻灯片的公式上右击,选择快捷菜单中的"另存为图片"命令打开"另存为图片"对话框,设置图片保存的位 ...

  • PPT幻灯片中的公式添加特效的方法

    PPT幻灯片中的公式添加特效的方法 1.打开创建的演示文稿,在幻灯片的公式上右击,选择快捷菜单中的"另存为图片"命令打开"另存为图片"对话框,设置图片保存的位置 ...

  • PPT幻灯片中打印效果的设置技巧

    PPT幻灯片中打印效果的设置技巧 1.打开演示文稿,在"文件"窗口左侧的列表中选择"打印"选项,在右侧的窗格中可以预览幻灯片的效果,单击中间窗格底部的" ...

  • PPT幻灯片中怎么使用触发器控制声音

    PPT幻灯片中怎么使用触发器控制声音 1.在幻灯片中选择音频图标,在功能区中打开"动画"选项卡,单击"高级动画"组中的"动画窗格"按钮打开& ...

  • 使用PPT幻灯片中触发器实现交互的方法

    使用PPT幻灯片中触发器实现交互的方法 1.打开一张包含表格的幻灯片,表格中各栏目文字以文本框形式填入.打开"动画"选项卡,在表格中选择需要控制显示的文本框,然后为它们添加进入效果 ...