poi 拆分带图片的word_poi提取docx中的文字和图片

该博客介绍了一个Java方法,利用Apache POI库读取带有图片的DOCX文件,提取文字并保存为TXT,同时将图片保存到指定文件夹。方法包括使用XWPFWordExtractor获取文字,通过XWPFDocument获取所有图片。
摘要由CSDN通过智能技术生成

package com.fry.poiDemo.dao;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.PrintStream;

import java.util.List;

import org.apache.poi.xwpf.extractor.XWPFWordExtractor;

import org.apache.poi.xwpf.usermodel.XWPFDocument;

import org.apache.poi.xwpf.usermodel.XWPFPictureData;

public class Word {

// maven太好用了

// 读取srcFile源word文件docx文字

// 读取srcFile源word文件docx中的image图片并且存放在文件夹imageFile中

public String readDocxImage(String srcFile, String imageFile) {

String path = srcFile;

File file = new File(path);

try {

// 用XWPFWordExtractor来获取文字

FileInputStream fis = new FileInputStream(file);

XWPFDocument document = new XWPFDocument(fis);

XWPFWordExtractor xwpfWordExtractor = new XWPFWordExtractor(document);

String text = xwpfWordExtractor.getText();

// System.out.println(text);

//将获取到的文字存放到对应文件名中的txt文件中

String temp[]=srcFile.split("\\/");

String temp1=temp[temp.length-1];

String temp3[]=temp1.split("\\.");

String txtFileName="myRes//txt//"+temp3[0]+".txt";

PrintStream ps = new PrintStream(txtFileName);

ps.println(text);

// 用XWPFDocument的getAllPictures来获取所有的图片

List picList = document.getAllPictures();

for (XWPFPictureData pic : picList) {

// System.out.println(pic.getPictureType() + file.separator + pic.suggestFileExtension() + file.separator

// + pic.getFileName());

byte[] bytev = pic.getData();

// System.out.println(bytev.length);

// 大于1000bites的图片我们才弄下来,消除word中莫名的小图片的影响

if (bytev.length > 300) {

FileOutputStream fos = new FileOutputStream(imageFile + pic.getFileName());

fos.write(bytev);

}

}

fis.close();

return text;

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

org.apache.poi

poi-ooxml

3.9

org.apache.poi

poi

3.9

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值