Java 在Word中嵌入多媒體(視訊、音訊)檔案

iceblue發表於2021-12-15

Word中可將Office(Word/Excel/PowerPoint)、PDF、txt等檔案作為OLE物件插入到文件中,雙擊該物件可直接訪問或編輯該檔案,除了以上常見的檔案格式物件,也可以插入多媒體檔案,如視訊、音訊等。本篇文章將對此作相關介紹。

 

Jar匯入(2種方法)


 

1.通過 Maven 安裝

  在pom.xml中配置如下內容匯入:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
        </repository>
    </repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>3.9.0</version>
    </dependency>
</dependencies>

2.手動新增jar

下載 Jar 包(Free Spire.Doc for Java)到本地,解壓,找到lib資料夾下的Spire.Doc.jar。

在IDEA中開啟“Project Structure”介面,然後執行如下圖中的步驟來完成jar匯入:

 

 

 

 

嵌入多媒體檔案


 

程式碼中嵌入多媒體檔案的方法是通過呼叫appendOleObject(InputStream oleStream, DocPicture olePicture, String fileExtension)方法來實現,該方法中的三個引數解釋分別為:

  • oleStream:OLE檔案流
  • olePicture:用於顯示OLE物件的影像(圖示)
  • fileExtension:嵌入的檔案物件副檔名(如:mp3、mp4、avi等)

另外,該jar包中的Paragraph類提供的新增OLE物件的方法中,可通過設定不同引數,以多種方式來新增OLE物件,如圖:

 

主要程式碼步驟解析:

1. 初始化Document類的一個新例項並新增一個新的節。

2. 新增段落,呼叫Paragraph.appendOleObject()方法將多媒體檔案作為OLE物件嵌入到段落。

3. 通過Document.saveToFile(String fileName, FileFormat fileFormat)儲存文件到指定路徑。

 

Java

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.ParagraphStyle;
import com.spire.doc.fields.DocPicture;

import java.awt.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class EmbedMediaFile {
    public static void main(String[] args)throws IOException {
        //例項化Document類的物件,並新增Section
        Document doc = new Document();
        Section section = doc.addSection();

        //定義段落樣式
        ParagraphStyle style1 = new ParagraphStyle(doc);
        style1.setName("Style");
        style1.getCharacterFormat().setFontName("Calibri");
        style1.getCharacterFormat().setFontSize(18);
        style1.getCharacterFormat().setBold(true);
        style1.getCharacterFormat().setTextColor(new Color(123,104,238));
        doc.getStyles().add(style1);

        //新增段落1,嵌入視訊檔案
        Paragraph para1 = section.addParagraph();
        para1.appendText("嵌入視訊檔案:");
        para1.applyStyle(style1.getName());
        InputStream stream1 = new FileInputStream("Video.mp4");
        DocPicture pic1 = new DocPicture(doc);
        pic1.loadImage("logo1.png");
        para1.appendOleObject(stream1, pic1, "mp4");

        //新增一個空白段落2
        Paragraph para2 = section.addParagraph();

        //新增段落3,嵌入音訊檔案
        Paragraph para3 = section.addParagraph();
        para3.appendText("嵌入音訊檔案:");
        para3.applyStyle(style1.getName());
        InputStream stream2 = new FileInputStream("Audio.mp3");
        DocPicture pic2 = new DocPicture(doc);
        pic2.loadImage("logo2.png");
        para3.appendOleObject(stream2, pic2, "mp3");

        //儲存文件
        doc.saveToFile("Result.docx", FileFormat.Docx_2013);
    }
}

嵌入後的文件效果:

 

注意事項

程式碼中的所有檔案路徑均為IDEA程式的程式專案資料夾路徑,如: F:\IDEAProject\OLE_Doc\Result.docx,檔案路徑可自定義為其他路徑。

 

—End—

相關文章