zoukankan      html  css  js  c++  java
  • Java 在Word中嵌入多媒体(视频、音频)文件 E

    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—

  • 相关阅读:
    驰骋工作流引擎2016年第1次组团培训日程
    CCBPM中流程回滚的介绍
    CCBPM流程变更处理解决方案与对策
    CCBPM多表单流程中关于绑定表单的设计步骤
    CCBPM关于工作流引擎取回审批的设计方案与实现过程
    线程池 -实现线程复用
    线程安全 -同步锁机制
    匿名内部类创建线程,简化线程创建代码
    Thread -线程的两种创建方式
    Throwable -抛出异常类与自定义异常类
  • 原文地址:https://www.cnblogs.com/Yesi/p/15692704.html
Copyright © 2011-2022 走看看