【概述】
文本突出显示和底纹的区别:
在Word里面设置文本“突出显示(高亮)”和“底纹”是通过不同方式来实现的,但是表现出来的文字效果却很相似,不注意区分就很容易弄混,如下图中:
其中的突出显示(高亮)是通过:【字体】-【突出显示】,即高亮,如上图。
而底纹是通过:【设计】-【页面边框】-【底纹】,即文字背景,如下图:
因此,要读取文字突出显示(高亮)或者底纹需要通过不同方法来实现读取,具体可参考如下通过spire.doc.jar 提供的方法来读取:
1. 读取突出显示(高亮),需使用方法:getHighlightColor();
2. 读取文字底纹,需使用方法:getTextBackgroundColor();
【程序环境】
1. 本次测试环境:
● IDEA
● Word测试源文档版本为2013
● Word类库工具spire.Doc.jar为免费版3.9.0
2. 全部测试代码如下:
import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.TextRange;
import java.awt.*;
public class GetTextFormat {
public static void main(String[] args) {
//加载Word源文档
Document doc = new Document();
doc.loadFromFile("inputfile.docx");
//获取section
Section section = doc.getSections().get(0);
//遍历段落
for(int i = 0; i< section.getParagraphs().getCount();i++)
{
Paragraph paragraph = section.getParagraphs().get(i);
//遍历段落中的子对象
for (int j = 0; j< paragraph.getChildObjects().getCount();j++)
{
Object obj = paragraph.getChildObjects().get(j);
//判定是否为文本
if (obj instanceof TextRange)
{
String text = ((TextRange) obj).getText();//获取文本
Color color = ((TextRange) obj).getCharacterFormat().getHighlightColor();//获取文本的高亮颜色(即突出显示颜色) //Color color1 = ((TextRange) obj).getCharacterFormat().getTextBackgroundColor();//获取文字底纹
if(!(color.getRGB() == 0))
{
System.out.println(text + color.toString());//输出文本和颜色
}
}
}
}
}
}
文本突出显示(高亮)获取结果:
底纹(背景)获取结果:
【总结】
注意区分段落中的文本是突出显示(高亮)还是底纹(背景)设置,需要采用对应的方法来读取。
可关注公众号【Office文档开发】获取更多文档开发内容。