ClownsAndTears 2017-11-20 11:33 采纳率: 50%
浏览 878

Java获取不到docx文档里某些部分的内容。

我在解析doc和docx的时候遇到一些问题,不知道大家是如何解决的。
不管doc还是docx,鼠标点在某一块,出现右边这一排东西的时候:
如图:图片说明
Java就获取不到里面的内容。而我用word转换成html的时候这一块地方就会变成图片。
而如果遇到以下这种情况:
如图:图片说明
Java是可以读取到里面的纯文本内容。我换了几种方法,都无法读取到第一种情况的内容。里面是空的。

方法1:

 File inputFile = new File("E:\\aaa.docx");
POITextExtractor extractor = ExtractorFactory.createExtractor(inputFile);
System.out.println(extractor.getText());

输出是空的。

方法2:

 String result = "";
FileInputStream fis = new FileInputStream(file);
XWPFDocument xdoc = new XWPFDocument(fis);
XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
result = extractor.getText();
fis.close();
System.out.println(result);

输出还是空的。

方法3:

 String result = "";
FileInputStream fis = new FileInputStream(file);

WordExtractor ex = new WordExtractor(fis);
result = ex.getText().trim();
fis.close();
System.out.println(result);

这是报错的,好像这是读取doc的而非读取docx的吧。

方法4:

 try {
        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file), encode));
            String str = "";
            StringBuffer sb = new StringBuffer();
            while (null != (str = br.readLine())) {
                sb.append("\n");
                sb.append(str);
            }
            br.close();
            return sb.toString();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

这个我换了很多种编码,都是乱码。我不知道到底他的编码格式到底是什么。

我已经把

 Charset.availableCharsets().keySet();

里面的所有编码都用一遍了。一直到解析得我的eclipse卡到闪退,都没发现什么编码是对的。。。。
其中我见到最多出现的就是 [Content_Types].xml ,但是不知道这啥意思。
如图:图片说明

请各位大神帮个忙,如何把图一里面的内容正确获取出来。谢谢了。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
    • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
    • ¥15 onvif+openssl,vs2022编译openssl64
    • ¥15 iOS 自定义输入法-第三方输入法