C# 提取Word中插入的多媒體檔案(視訊、音訊)
在Word中可將檔案通過OLE物件嵌入的方式插入到文件,包括Word、excel、PDF、PPT、圖片、巨集檔案、檔案包等在內的多種檔案型別。對文件中已插入的文件物件,也可通過本文中的方法提取出來另存到指定路徑。本文將通過C#程式程式碼示例做詳細介紹。
dll檔案安裝(3種方法)
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檔案新增引用至程式。
提取檔案
提取檔案時,主要通過以下步驟完成:
-
建立 Document類的物件,並通過 Document.LoadFromFile()方法載入Word文件。
-
遍歷Word文件中的所有 Section中的子物件,判斷物件是否為 Paragraph型別。
-
遍歷段落中的子物件,判斷物件是否為 DocumentObjectType型別的OLE物件。
-
將符合條件的OLE物件通過as操作符轉換為DocOleObject型別。
-
通過 File.WriteAllBytes()方法提取物件,儲存到本地路徑。
注:以下程式碼中所使用到的Word測試檔案和提取到的多媒體檔案路徑為VS程式的Debug路徑,如:F:\VS2017Project\ ExtractMediaFile\bin\Debug 。
下面是完整程式碼示例:
C#
using Spire.Doc; using Spire.Doc.Documents; using Spire.Doc.Fields; using System.IO; namespace ExtractMediaFile { class Program { static void Main(string[] args) { //載入Word文件 Document doc = new Document(); doc.LoadFromFile(@"OLE.docx"); //遍歷所有子物件 foreach (Section section in doc.Sections) { foreach (DocumentObject obj in section.Body.ChildObjects) { if (obj is Paragraph) { Paragraph paragraph = obj as Paragraph; foreach (DocumentObject obj2 in paragraph.ChildObjects) { if (obj2.DocumentObjectType == DocumentObjectType.OleObject) { DocOleObject ole = obj2 as DocOleObject; //提取檔案 File.WriteAllBytes(ole.PackageFileName, ole.NativeData); } } } } } } } }
VB.NET
Imports Spire.Doc Imports Spire.Doc.Documents Imports Spire.Doc.Fields Imports System.IO Namespace ExtractMediaFile Class Program Private Shared Sub Main(args As String()) '載入Word文件 Dim doc As New Document() doc.LoadFromFile("test.docx") '遍歷所有子物件 For Each section As Section In doc.Sections For Each obj As DocumentObject In section.Body.ChildObjects If TypeOf obj Is Paragraph Then Dim paragraph As Paragraph = TryCast(obj, Paragraph) For Each obj2 As DocumentObject In paragraph.ChildObjects If obj2.DocumentObjectType = DocumentObjectType.OleObject Then Dim ole As DocOleObject = TryCast(obj2, DocOleObject) '提取檔案 File.WriteAllBytes(ole.PackageFileName, ole.NativeData) End If Next End If Next Next End Sub End Class End Namespace
檔案讀取結果如圖:
—End—
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31499788/viewspace-2854968/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C# / VB.NET 在Word中嵌入多媒體(視訊、音訊)檔案C#音訊
- Java 在Word中嵌入多媒體(視訊、音訊)檔案Java音訊
- 風雲音訊處理大師提取視訊中的音訊檔案的方法音訊
- 插入音/視訊
- 風雲音訊處理大師提取影片中的音訊檔案的方法音訊
- Mac線上視訊音訊提取工具Mac音訊
- 分享下 PHP 使用 getID3 來獲取音訊、視訊等媒體檔案相關資訊PHP音訊
- android音視訊指南-支援的媒體格式Android
- 如何下載微信公眾號中的音訊、視訊檔案?音訊
- [Android多媒體技術] 播放Raw/Assets音視訊方法總結Android
- 前端Html5(2)之多媒體音訊視訊標籤前端HTML音訊
- Android 多媒體之 Silk 格式音訊解碼Android音訊
- android音視訊指南-響應媒體按鈕Android
- Android多媒體之SoundPool+pcm流的音訊操作Android音訊
- WAV音訊檔案中隱藏惡意軟體音訊
- ffmpeg 匯出影片檔案中的音訊音訊
- android音視訊指南-媒體應用架構概述Android應用架構
- C# 在Word中插入公式(LaTeX/MathML)C#公式
- 鴻蒙ArkWeb 元件多媒體探究:從影片到音訊鴻蒙Web元件音訊
- 自帶多媒體視訊播放器Infuse pro播放器
- AQ錄製軟體批量匯入視訊檔案並且合併視訊檔案的方法
- 分享下 PHP 使用 getID3 來獲取音訊、影片等媒體檔案相關資訊PHP音訊
- Movavi Video Converter 2022 Premium for Mac(視訊音訊檔案轉換器)IDEREMMac音訊
- C#程式呼叫FFmpeg操作音視訊C#
- 短視訊“音訊化”,音樂“視訊化”音訊
- Java 新增 、讀取以及刪除PPT幻燈片中的視訊、音訊檔案Java音訊
- Android多媒體之視訊播放器(基於MediaPlayer)Android播放器
- [- 多媒體 -] OpenGLES3.0 接入視訊實現特效 - 引言S3特效
- js對flv提取h264、aac音視訊流JS
- 快手科技音視訊技術亮相ChinaMM 首次公開多媒體傳輸協議KTP協議
- win10系統如何提取網頁中視訊_win10提取網頁中視訊的圖文教程Win10網頁
- 音視訊--音訊入門音訊
- 音視訊–音訊入門音訊
- wavesurfer fluent-ffmpeg提取音訊音訊
- 萬彩動畫大師教程 | 如何匯出工程檔案裡的音訊、視訊?動畫音訊
- librosa 音訊特徵提取的現成文件ROS音訊特徵
- 音視訊--視訊入門
- Golang 開源流媒體音視訊網路傳輸服務-LALGolang