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.uj5u.com/net/375725.html
標籤:C#
上一篇:C# 機器學習
