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 免费版)来读取,获取该类库可通过官网下载,并解压 ...
随机推荐
- 菜鸡的Java笔记
1.注释 在JAVA中对于注释有三种: 单行注释:// 多行注释:/*--*/ 文档注释:/**--*/ 2.关键字和标识符 在程序中描述类名称,方法名称,变量等概念就需要使用标识符来定义.而在JAV ...
- [hdu7020]Array
(这是一个线性的做法) 显然对于合法的区间,众数是唯一的,因此不妨枚举众数,将众数标记为1.其余数标记为-1,此时问题即求有多少个区间和大于0 考虑暴力的做法:从左到右枚举右端点,记当前前缀和为$to ...
- [noi38]游戏
用线段数维护一段区间内的两个信息:1.需要多少经验就可以让有一个人升级,2.等级和.单点修改直接暴力做就可以,区间修改考虑如果这个区间不会产生升级就不递归下去而是打上懒标记. 考虑这个算法的时间复杂度 ...
- .NET Core基础篇之:配置文件读取
配置文件是每个项目最基础的部分,也是不可或缺的部分,比如:数据库连接.中间件属性等常见的配置. 今天这篇文章主要内容就是,在.Net Core项目中怎样去读取配置文件并使用. 提前准备 appsett ...
- vue3 + vite实现异步组件和路由懒加载
在 Vue2 中,异步组件和路由懒加载处理使用 import 就可以很轻松实现.但是在Vue 3.x 中异步组件的使用与 Vue 2.x 完全不同了.本文就详细讲讲vue3中异步组件和路由懒加载的实现 ...
- springboot和mybatis集成
springboot和mybatis集成 pom <?xml version="1.0" encoding="UTF-8"?> <proje ...
- Hardware assisted virtualization and data execution protection must be enabled in the BIOS. See https://docs.docker.com/docker-for-windows/troubleshoot/#virtualization
解决办法:先关闭 Hyper-V ,然后重新开启 Hyper-V 即可! 来自:https://zhuanlan.zhihu.com/p/51939654
- Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表
若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121572767红胖子(红模仿)的博文大全:开发技术集合( ...
- CF1559D2 Mocha and Diana (Hard Version)
考虑到加树边每次最多只导致一对联通块之间的状态. 所以我们以任意顺序加入当前的合法边. 我们考虑先加入所有可加的\((1,a)\) 然后统计只在\(A\)中与1连的点,\(B\)中与2连的点. 则他们 ...
- pcm-pcie 解析
简介 pcm 全称为 Performance Counter Monitor,该项目是针对 intel 平台处理器的资源利用率进行监控的工具.在现代 Intel 处理器已经提供了监视处理器内部性能事件 ...