Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3060620
  • 博文数量: 160
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1603
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
文章分类

全部博文(160)

文章存档

2022年(8)

2021年(31)

2020年(19)

2019年(48)

2018年(45)

2017年(9)

我的朋友

分类: Java

2021-12-09 10:52:07

Word中可将OfficeWord/Excel/PowerPoint)、PDFtxt等文件作为OLE对象插入到文档中,双击该对象可直接访问或编辑该文件,除了以上常见的文件格式对象,也可以插入多媒体文件,如视频、音频等。本篇文章将对此作相关介绍。

Jar导入(2种方法)

1.通过Maven安装

  在pom.xml中配置如下内容导入:

点击(此处)折叠或打开

  1. <repositories>
  2.         <repository>
  3.             <id>com.e-iceblue</id>
  4.             <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
  5.         </repository>
  6.     </repositories>
  7. <dependencies>
  8.     <dependency>
  9.         <groupId>e-iceblue</groupId>
  10.         <artifactId>spire.doc.free</artifactId>
  11.         <version>3.9.0</version>
  12.     </dependency>
  13. </dependencies>

2.手动添加jar

下载Jar包到本地,解压,找到lib文件夹下的jar

IDEA中打开“Project Structure”界面,然后执行如下图中的步骤来完成jar导入:




嵌入多媒体文件

代码中嵌入多媒体文件的方法是通过调用appendOleObject(InputStream oleStream, DocPicture olePicture, String fileExtension)方法来实现,该方法中的三个参数解释分别为:


  • oleStreamOLE文件流
  • olePicture:用于显示OLE对象的图像(图标)
  • fileExtension:嵌入的文件对象扩展名(如:mp3mp4avi等)


另外,该jar包中的Paragraph类提供的添加OLE对象的方法中,可通过设置不同参数,以多种方式来添加OLE对象,如图:


主要代码步骤解析:

1. 初始化Document类的一个新实例并添加一个新的节。

2. 添加段落,调用Paragraph.appendOleObject()方法将多媒体文件作为OLE对象嵌入到段落。

3. 通过Document.saveToFile(String fileName, FileFormat fileFormat)保存文档到指定路径。

Java

  1. import com.spire.doc.*;
  2. import com.spire.doc.documents.Paragraph;
  3. import com.spire.doc.documents.ParagraphStyle;
  4. import com.spire.doc.fields.DocPicture;

  5. import java.awt.*;
  6. import java.io.FileInputStream;
  7. import java.io.IOException;
  8. import java.io.InputStream;

  9. public class EmbedMediaFile {
  10.     public static void main(String[] args)throws IOException {
  11.         //实例化Document类的对象,并添加Section
  12.         Document doc = new Document();
  13.         Section section = doc.addSection();

  14.         //定义段落样式
  15.         ParagraphStyle style1 = new ParagraphStyle(doc);
  16.         style1.setName("Style");
  17.         style1.getCharacterFormat().setFontName("Calibri");
  18.         style1.getCharacterFormat().setFontSize(18);
  19.         style1.getCharacterFormat().setBold(true);
  20.         style1.getCharacterFormat().setTextColor(new Color(123,104,238));
  21.         doc.getStyles().add(style1);

  22.         //添加段落1,嵌入视频文件
  23.         Paragraph para1 = section.addParagraph();
  24.         para1.appendText("嵌入视频文件:");
  25.         para1.applyStyle(style1.getName());
  26.         InputStream stream1 = new FileInputStream("Video.mp4");
  27.         DocPicture pic1 = new DocPicture(doc);
  28.         pic1.loadImage("logo1.png");
  29.         para1.appendOleObject(stream1, pic1, "mp4");

  30.         //添加一个空白段落2
  31.         Paragraph para2 = section.addParagraph();

  32.         //添加段落3,嵌入音频文件
  33.         Paragraph para3 = section.addParagraph();
  34.         para3.appendText("嵌入音频文件:");
  35.         para3.applyStyle(style1.getName());
  36.         InputStream stream2 = new FileInputStream("Audio.mp3");
  37.         DocPicture pic2 = new DocPicture(doc);
  38.         pic2.loadImage("logo2.png");
  39.         para3.appendOleObject(stream2, pic2, "mp3");

  40.         //保存文档
  41.         doc.saveToFile("Result.docx", FileFormat.Docx_2013);
  42.     }
  43. }

嵌入后的文档效果:




注意事项

代码中的所有文件路径均为IDEA程序的程序项目文件夹路径,如: F:\IDEAProject\OLE_Doc\Result.docx,文件路径可自定义为其他路径。

—End—

阅读(146) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~