- Work库:free spire.doc.jar 3.9.0
由于这个包比较大,maven依赖容易下载失败,故此提供百度云下载地址,下载地址在最下面
可支持读取字体、字号、文字颜色、文字背景、文字是否加粗或倾斜、文字下划线、大小写、边框、上标下标、行距、段落缩进、对齐方式、段落边框、背景等等
测试的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());//输出有背景的文本和颜色
}*/
}
}
}
}
}
打印日志
jar包下载地址:
链接:https://pan.baidu.com/s/1oU-DDQwpb7XNyI0nYB_-pw
提取码:1234