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.IO

Namespace 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

 

嵌入后的文档效果:

 

注意事项

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

 

 —End—

 

文章来源:https://www.cnblogs.com/Yesi/p/15656687.html

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
管理员
上一篇:C# 扫描识别图片中的文字(.NET Framework)
下一篇:Quartz在.NET中的使用
评论列表

发表评论

评论内容
昵称:
关联文章

C# / VB.NET Word嵌入多媒体视频音频文件
C# 读取txt文件生成Word文档
cshtml文件使用预编译语法
C# PDF文档应用多种不同字体
高清图片、视频素材网站汇总
ASP.NET Core MVC 过滤器ActionFilter保存页面的生成的html静态页面文件
视频播放器:PotPlayer
asp.net - ASP.NET Core MVC 嵌套 TagHelper
.net 简单实现H5中将word、jpg、png转成PDF给PDF添加水印并且控制样式和可视化编辑
Quartz.NET的使用
C# 扫描识别图片的文字(.NET Framework)
ASP.NET Core web API使用Swagger/OpenAPI(Swashbuckle)
C#从文件夹随机获取一个文件
C# winform选择dll文件
word页眉表格多一个空行
.net core MVC页面源码文件文被编码
C# 使用JavaScript给PDF文档设置过期时间
C# 7.0 - C# 7.3 的新增功能
《步步入门》.NET6Linux下以守护进程方式运行
C# 设置或验证 PDF的文本域格式

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码