Java 在Word中嵌入多媒体(视频、音频)文件
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—
Java 在Word中嵌入多媒体(视频、音频)文件的更多相关文章
- C# / VB.NET 在Word中嵌入多媒体(视频、音频)文件
Word中可将Office(Word/Excel/PowerPoint).PDF.txt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体 ...
- Java读取word中表格
因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...
- [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作
[原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...
- php-ffmpeg 操作视频/音频文件
php-ffmpeg 是一个php操作视频/音频文件的类库. GitHub地址:https://github.com/PHP-FFMpeg/PHP-FFMpeg/ 使用composer快速安装:com ...
- Java 实现word 中写入文字图片的解决方案
JAVA生成WORD文件的方法目前有以下两种方式: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案; 一种是poi但是他的excel处理很程序 ...
- [转载]Java给word中的table赋值
一.准备工作: 下载PageOffice for Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...
- [原创]Java给word中的table赋值
一.准备工作: 下载PageOffice for Java:http://www.zhuozhengsoft.com/dowm/ 二. 实现方法: 要调用PageOffice操作Word中的tabl ...
- Java 提取Word中的文本和图片
本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java ...
- Java 读取Word中的脚注、尾注
本文介绍读取Word中的脚注及尾注的方法,添加脚注.尾注可以参考这篇文章. 注:本文使用了Word类库(Free Spire.Doc for Java 免费版)来读取,获取该类库可通过官网下载,并解压 ...
随机推荐
- [luogu1526]智破连环阵
(以下在描述复杂度时,认为$n$和$m$相同,因此一律使用$n$) 称第$i$个炸弹能匹配非空区间$[l,r]$,当且仅当$l$到$r$内所有武器都在$i$攻击范围内,且$r=m$或第$r+1$个武器 ...
- HashSet 如何保证元素不重复——hash码
HashSet 不重复主要add 方法实现,使用 add 方法找到是否存在元素,存在就不添加,不存在就添加.HashSet 主要是基于HashMap 实现的,HashMap 的key就是 HashSe ...
- idea提交代码好习惯-代码格式化
提交代码的时候,勾选这个可以格式化提交的代码,非常好! reformat code
- linux下root用户和普通用户切换
没有root权限干啥都费劲 切换root用户 sudo su 切换普通用户 su player3
- vue-if和show
<template> <div> <div v-if="flag">今晚要上课</div> <div v-else> 今 ...
- 【AGC板刷记录】
这个帖子,是在自己学知识点累了的时候就看看\(AGC\)的题目来休息. 而且白天上课可以做( AGC-001 \(A\ BBQ Easy\) 考虑从小到大排,相邻两个取为一对. BBQ Easy #i ...
- R语言与医学统计图形-【30】流行病学数据可视化
sjPlot包适用于社会科学.流行病学中调查数据可视化,且能和SPSS数据无缝对接(流行病学问卷调查录入Epidata软件后,都会转成SPSS格式或EXCEL格式保存). 辅助包sjmisc进行数据转 ...
- Genscan指南
Genscan指南 GenScan是一个gene识别软件,主要是通过已知生物的基因结构特征来识别新的基因(parse).所利用的基因特征请参看readme文件. 特点: 只考虑编码蛋白的基因. 模型考 ...
- Excel-vlookup内部能不能用函数?(即内部嵌套函数)
11.vlookup(查找值,目标区域,列序号,FALSE0/TRUE1)内部能不能用函数?(即内部嵌套函数) 总结:只能说有,但不是所有,目前还没有找到规律(唯一的规律是内嵌函数结果值得是符合vlo ...
- 巩固javaweb的第二十天
巩固内容: 同一个页面中的多个 form 在同一个页面中可以有多个 form 如果存在多个 form,那么提交信息的时候提交哪些信息,提交给哪个文件处理,这都 与提交按钮的位置有关.如果提交按钮在第一 ...