前言
使用java往word中嵌入其他文件最重要的是要创建ole。目前将文件嵌入了word但是图标是没有的,因此自己生成了一个图标替代。
部分代码
代码如下:
POIFSFileSystem fs = new POIFSFileSystem();
try {
Ole10Native ole10Native = new Ole10Native(label, filename, command, data);
ByteArrayOutputStream out = new ByteArrayOutputStream();
ole10Native.writeOut(out);
//在根目录中设置文档的内容
ByteArrayInputStream in1 = new ByteArrayInputStream(label.getBytes());
fs.createOrUpdateDocument(in1, "\u0003ObjInfo");
ByteArrayInputStream in2 = new ByteArrayInputStream(out.toByteArray());
fs.createOrUpdateDocument(in2, "\u0001Ole10Native");
ByteArrayOutputStream out2 = new ByteArrayOutputStream();
fs.writeFilesystem(out2);
String olePath = "word" + separator + "embeddings" + separator + oleName;
//嵌入文件由于没有图标所以自己生成一个图标
String imgPath = "word" + separator + "media" + separator + imgName;
...
} catch (Exception e) {
e.printStackTrace();
}finally {
IOUtils.close(fs);
}