C#?VB.NET?實(shí)現(xiàn)在Word中嵌入多媒體(視頻、音頻)文件
引入dll
1.通過(guò)NuGet安裝dll(2種方法)
1.1可以在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“管理NuGet包”,然后搜索Free Spire.Doc安裝。
1.2將以下內(nèi)容復(fù)制到PM控制臺(tái)安裝。
Install-Package FreeSpire.Doc -Version 9.9.7
2.手動(dòng)添加dll引用
可通過(guò)手動(dòng)下載包,然后解壓,找到BIN文件夾下的Spire.Doc.dll。在Visual Studio中打開“解決方案資源管理器”,鼠標(biāo)右鍵點(diǎn)擊“引用”,“添加引用”將本地路徑BIN文件夾下的dll文件添加引用至程序。
嵌入多媒體文件
代碼中嵌入多媒體文件的方法是通過(guò)調(diào)用AppendOleObject(Stream oleStream, DocPicture olePicture, string fileExtension)方法來(lái)實(shí)現(xiàn),該方法中的三個(gè)參數(shù)解釋分別為:
- oleStream: OLE文件流
- olePicture: 用于顯示OLE對(duì)象的圖像(圖標(biāo))
- fileExtension: 嵌入的文件對(duì)象擴(kuò)展名(如:mp3、mp4、avi等)
主要代碼步驟解析
1. 初始化Document類的一個(gè)新實(shí)例并添加一個(gè)新的節(jié)。
2. 添加段落,調(diào)用Paragraph.AppendOleObject()方法將多媒體文件作為OLE對(duì)象嵌入到段落。
3. 通過(guò)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) { //實(shí)例化Document類的對(duì)象,并添加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"); //添加一個(gè)空白段落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()) '實(shí)例化Document類的對(duì)象,并添加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") '添加一個(gè)空白段落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
嵌入效果后的文檔效果
注意事項(xiàng)
- 代碼中的所有文件路徑均為的VS程序的Debug路徑,如:F:\VS2017Project\InsertOLE_Doc\EmbedMediaFile\bin\Debug\Result.docx,文件路徑自定義為其他路徑。
- 以上代碼程序中引入的是免費(fèi)Word庫(kù) Free Spire.Doc for .NET版本中的dll。?
以上就是C#/VB.NET 實(shí)現(xiàn)在Word中嵌入多媒體(視頻、音頻)文件 的詳細(xì)內(nèi)容,更多關(guān)于C#/VB.NET Word嵌入多媒體文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
淺談c#中config.exe 引發(fā)的一些問(wèn)題
下面小編就為大家分享一篇淺談c#中config.exe 引發(fā)的一些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-11-11Unity3D基于OnGUI實(shí)時(shí)顯示FPS
這篇文章主要介紹了Unity3D基于OnGUI實(shí)時(shí)顯示FPS,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11C#自定義繁體和簡(jiǎn)體字庫(kù)實(shí)現(xiàn)中文繁體和簡(jiǎn)體之間轉(zhuǎn)換的方法
這篇文章主要介紹了C#自定義繁體和簡(jiǎn)體字庫(kù)實(shí)現(xiàn)中文繁體和簡(jiǎn)體之間轉(zhuǎn)換的方法,通過(guò)自定義繁簡(jiǎn)轉(zhuǎn)換字庫(kù)實(shí)現(xiàn)繁體與簡(jiǎn)體轉(zhuǎn)換的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-04-04C#使用OpenCvSharp4庫(kù)讀取電腦攝像頭數(shù)據(jù)并實(shí)時(shí)顯示
OpenCvSharp4庫(kù)是一個(gè)基于.Net封裝的OpenCV庫(kù),本文主要給大家介紹了C#使用OpenCvSharp4庫(kù)讀取電腦攝像頭數(shù)據(jù)并實(shí)時(shí)顯示的詳細(xì)方法,感興趣的朋友可以參考下2024-01-01C#通過(guò)PInvoke調(diào)用c++函數(shù)的備忘錄的實(shí)例詳解
這篇文章主要介紹了C#通過(guò)PInvoke調(diào)用c++函數(shù)的備忘錄的實(shí)例以及相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-08-08分享WCF文件傳輸實(shí)現(xiàn)方法---WCFFileTransfer
這篇文章主要介紹了分享WCF文件傳輸實(shí)現(xiàn)方法---WCFFileTransfer,需要的朋友可以參考下2015-11-11C# 中如何利用lambda實(shí)現(xiàn)委托事件的掛接
在寫一個(gè)小程序的時(shí)候,碰到了這樣的問(wèn)題,需要用委托來(lái)掛接事件,但是又想在這事件中使用局部的變量,而委托一旦定義好后,掛接方就沒有辦法再添加額外的形參了。那有沒有什么辦法,可以實(shí)現(xiàn)呢2013-07-07C# 解決在Dictionary中使用枚舉的效率問(wèn)題
這篇文章主要介紹了C# 解決在Dictionary中使用枚舉的效率問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04