C#|C# / VB.NET 在Word中嵌入多媒体(视频、音频)文件

Word中可将Office(Word/Excel/PowerPoint)、PDF、txt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体文件,如视频、音频等。本篇文章将对此作相关介绍。
引入dll
1.通过NuGet安装dll(2种方法)
1.1可以在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理NuGet包”,然后搜索Free Spire.Doc安装。
1.2将以下内容复制到PM控制台安装。
Install-Package FreeSpire.Doc -Version 9.9.7
2.手动添加dll引用
可通过手动下载包,然后解压,找到BIN文件夹下的Spire.Doc.dll。在Visual Studio中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”将本地路径BIN文件夹下的dll文件添加引用至程序。
嵌入多媒体文件
代码中嵌入多媒体文件的方法是通过调用AppendOleObject(Stream oleStream, DocPicture olePicture, string fileExtension)方法来实现,该方法中的三个参数解释分别为:

  • oleStream: OLE文件流
  • olePicture: 用于显示OLE对象的图像(图标)
  • fileExtension: 嵌入的文件对象扩展名(如:mp3、mp4、avi等)
主要代码步骤解析:
1. 初始化Document类的一个新实例并添加一个新的节。
2. 添加段落,调用Paragraph.AppendOleObject()方法将多媒体文件作为OLE对象嵌入到段落。
3. 通过Document.SaveToFile(string fileName, FileFormat fileFormat)保存文档到指定路径。
C#
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.Drawing; using System.IO; namespace EmbedMediaFile { class Program { static void Main(string[] args) { //实例化Document类的对象,并添加Section Document doc = new Document(); Section section = doc.AddSection(); //定义段落样式 ParagraphStyle style1 = new ParagraphStyle(doc); style1.Name = "Style"; style1.CharacterFormat.FontName = "Calibri"; style1.CharacterFormat.FontSize = 18; style1.CharacterFormat.Bold = true; style1.CharacterFormat.TextColor = Color.BlueViolet; doc.Styles.Add(style1); //添加段落1,嵌入视频文件 Paragraph para1 = section.AddParagraph(); para1.AppendText("嵌入视频文件:"); para1.ApplyStyle(style1.Name); Stream s1 = File.OpenRead("Video.mp4"); DocPicture pic1 = new DocPicture(doc); pic1.LoadImage(Image.FromFile("logo1.png")); para1.AppendOleObject(s1, pic1, "mp4"); //添加一个空白段落2 Paragraph para2 = section.AddParagraph(); //添加段落3,嵌入音频文件 Paragraph para3 = section.AddParagraph(); para3.AppendText("嵌入音频文件:"); para3.ApplyStyle(style1.Name); Stream s2 = File.OpenRead("Audio.mp3"); DocPicture pic2 = new DocPicture(doc); pic2.LoadImage(Image.FromFile("logo2.png")); para3.AppendOleObject(s2, pic2, "mp3"); //保存文档 doc.SaveToFile("Result.docx", FileFormat.Docx2013); } } }

VB.NET
Imports Spire.Doc Imports Spire.Doc.Documents Imports Spire.Doc.Fields Imports System.Drawing Imports System.IONamespace EmbedMediaFile Class Program Private Shared Sub Main(args As String()) '实例化Document类的对象,并添加Section Dim doc As New Document() Dim section As Section = doc.AddSection()'定义段落样式 Dim style1 As New ParagraphStyle(doc) style1.Name = "Style" style1.CharacterFormat.FontName = "Calibri" style1.CharacterFormat.FontSize = 18 style1.CharacterFormat.Bold = True style1.CharacterFormat.TextColor = Color.BlueViolet doc.Styles.Add(style1)'添加段落1,嵌入视频文件 Dim para1 As Paragraph = section.AddParagraph() para1.AppendText("嵌入视频文件:") para1.ApplyStyle(style1.Name) Dim s1 As Stream = File.OpenRead("Video.mp4") Dim pic1 As New DocPicture(doc) pic1.LoadImage(Image.FromFile("logo1.png")) para1.AppendOleObject(s1, pic1, "mp4")'添加一个空白段落2 Dim para2 As Paragraph = section.AddParagraph()'添加段落3,嵌入音频文件 Dim para3 As Paragraph = section.AddParagraph() para3.AppendText("嵌入音频文件:") para3.ApplyStyle(style1.Name) Dim s2 As Stream = File.OpenRead("Audio.mp3") Dim pic2 As New DocPicture(doc) pic2.LoadImage(Image.FromFile("logo2.png")) para3.AppendOleObject(s2, pic2, "mp3")'保存文档 doc.SaveToFile("Result.docx", FileFormat.Docx2013) End Sub End Class End Namespace


嵌入效果后的文档效果:
C#|C# / VB.NET 在Word中嵌入多媒体(视频、音频)文件
文章图片


注意事项
  • 代码中的所有文件路径均为的VS程序的Debug路径,如:F:\VS2017Project\InsertOLE_Doc\EmbedMediaFile\bin\Debug\Result.docx,文件路径自定义为其他路径。
  • 以上代码程序中引入的是免费Word库 Free Spire.Doc for .NET版本中的dll。

—End—
【C#|C# / VB.NET 在Word中嵌入多媒体(视频、音频)文件】

    推荐阅读