• Work库:free spire.doc.jar 3.9.0

由于这个包比较大,maven依赖容易下载失败,故此提供百度云下载地址,下载地址在最下面

        可支持读取字体、字号、文字颜色、文字背景、文字是否加粗或倾斜、文字下划线、大小写、边框、上标下标、行距、段落缩进、对齐方式、段落边框、背景等等

测试的Word文档内容

java 提取word Java 提取word下划线内容_java 提取word

 

mavne依赖

<dependencies>
    <!-- java 读取word文件里面的加颜色的字体(特殊字体)  -->
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.doc.free</artifactId>
        <version>3.9.0</version>
    </dependency>
</dependencies>

    <!-- java 读取word文件里面的加颜色的字体(特殊字体)  -->
    <repositories>
        <repository>
            <id>com.e-iceblue</id>
            <name>e-iceblue</name>
            <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
        </repository>
    </repositories>

代码:

package com.test.word;


import com.spire.doc.Document;
import com.spire.doc.collections.DocumentObjectCollection;
import com.spire.doc.collections.SectionCollection;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextSelection;
import com.spire.doc.fields.TextRange;

import java.awt.*;

public class Test {

    public static void main(String[] args) {
        //加载Word源文档
        Document doc = new Document();
        // 读取文件
        doc.loadFromFile("C:\\Users\\admin-xu\\Desktop\\word.docx");

        //获取段落数量
        int count = doc.getSections().get(0).getParagraphs().getCount();
        System.out.println("总共含有段落数:" + count);

        //查找指定文本
        TextSelection textSelections = doc.findString("组织编制修订", false, true);
        //获取字体名称
        String fontname = textSelections.getAsOneRange().getCharacterFormat().getFontName();
        //获取字体大小
        float fontsize = textSelections.getAsOneRange().getCharacterFormat().getFontSize();
        System.out.println("字体名称:" + fontname + "\n" + "字体大小:" + fontsize);

        SectionCollection sections = doc.getSections();


        //获取第二段
      //  Paragraph paragraph2 = doc.getSections().get(0).getParagraphs().get(1);
        //获取段落行距
//        float linespage = paragraph2.getFormat().getLineSpacing();
//        System.out.println("段落行距:" + linespage);

        for (int i = 0 ; i < count ; i++){
            Paragraph paragraph = doc.getSections().get(0).getParagraphs().get(i);
            //遍历段落中的子对象

            for (int z = 0; z < paragraph.getChildObjects().getCount(); z++) {
                Object obj2 = paragraph.getChildObjects().get(z);

                //判定是否为文本
                if (obj2 instanceof TextRange) {
                    TextRange textRange2 = (TextRange) obj2;

                    //获取文本颜色
                    Color textcolor = textRange2.getCharacterFormat().getTextColor();
                    if (!(textcolor.getRGB() == 0)) {
                        int counts = i + 1 ;
                        System.out.println("第" +  counts   + " 段数据 == 文本颜色: " + textRange2.getText()  + "    ===== "  +  textcolor.toString());
                    }

                    //获取字体加粗效果
                    /*boolean isbold = textRange2.getCharacterFormat().getBold();
                    if (isbold == true) {
                        System.out.println("加粗文本:" + textRange2.getText());
                    }*/

                    //获取字体倾斜效果
                    /*boolean isitalic = textRange2.getCharacterFormat().getItalic();
                    if (isitalic == true) {
                        System.out.println("倾斜文本:" + textRange2.getText());
                    }*/

                    //获取文本背景
                   /* String text = textRange2.getText();
                    Color highlightcolor = textRange2.getCharacterFormat().getHighlightColor();//获取文本的高亮颜色(即突出显示颜色)
                    if (!(highlightcolor.getRGB() == 0)) {
                        System.out.println("文本高亮:" + text + " =========== " +highlightcolor.toString());//输出高亮的文本和颜色
                    }*/

                    /*Color textbackgroundcolor = textRange2.getCharacterFormat().getTextBackgroundColor();//获取文字背景(底纹)
                    if (!(textbackgroundcolor.getRGB() == 0)) {
                        System.out.println("文本背景:" + text + textbackgroundcolor.toString());//输出有背景的文本和颜色
                    }*/

                }
            }
        }




    }

}

打印日志

java 提取word Java 提取word下划线内容_java 提取word_02

 jar包下载地址:

链接:https://pan.baidu.com/s/1oU-DDQwpb7XNyI0nYB_-pw 
提取码:1234