本文介绍通过Java后端程序代码来读取Word文本和段落格式的方法。

本次测试环境如下:

  • Word版本:2013
  • 编译环境:IntelliJ IDEA2018
  • Work库:free spire.doc.jar 3.9.0
  • JDK版本:1.8.0

通过textrange.getCharacterFormat()方法读取文本字符串格式,通过paragraph.getFormat()读取段落格式,读取具体文字及段落属性时,可支持读取字体、字号、文字颜色、文字背景、文字是否加粗或倾斜、文字下划线、大小写、边框、上标下标、行距、段落缩进、对齐方式、段落边框、背景等等,下表中罗列了所有可支持读取的样式属性,供参考:

读取文本格式 getCharacterFormat():

方法

类型

getFontName()

String

getFontNameAscii()

String

getFontNameBidi()

String

getFontNameFarEast()

String

getFontNameNonFarEast()

String

getBold()

boolean

getFontSize()

float

getHighlightColor()

Color

getItalic()

boolean

getTextBackgroundColor()

Color

getTextColor()

Color

getAllCaps()

boolean

getAllowContextualAlternates()

boolean

getBidi()

boolean

getBoldBidi()

boolean

getBorder()

Border

getCharacterSpacing()

float

getDoubleStrike()

boolean

getEmboss()

boolean

getEmphasisMark()

Emphasis

getEngrave()

boolean

getFontSizeBidi()

float

getFontTypeHint()

FontTypeHint

getHidden()

boolean

getItalicBidi()

boolean

getLigaturesType()

LigatureType

getLocaleIdASCII()

short

getLocaleIdFarEast()

short

getNumberFormType()

NumberFormType

getNumberSpaceType()

NumberSpaceType

getPosition()

float

getStylisticSetType()

StylisticSetType

getSubSuperScript()

SubSuperScript

getTextScale()

short

getUnderlineStyle()

UnderlineStyle

读取段落格式:getFormat()

方法

类型

getLineSpacing()

float

getFirstLineIndent()

float

getLeftIndent()

float

getAfterSpacing()

float

getBeforeSpacing()

float

getRightIndent()

float

getTextAlignment()

TextAlignmnet

getAfterAutoSpacing()

boolean

getAutoSpaceDE()

boolean

getAutoSpaceDN()

boolean

getBackColor()

Color

getBeforeAutoSpacing()

boolean

getBoders()

Borders

getHorizontalAlignment()

HorizontalAlignmnet

getKeepFollow()

boolean

getKeepLines()

boolean

getLineSpacingRule()

LineSpacingRule

getMirrorIndents()

boolean

getOutlineLevel()

OutlineLevel

getOverflowPunc()

boolean

getPageBreakAfter()

boolean

getPageBreakBefore()

boolean

getSuppressAutoHyphens()

boolean

getTabs()

TabCollection

用于测试的Word文档:

Java示例代码

import com.spire.doc.*;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.documents.TextSelection;
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("test.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); //获取第二段
Paragraph paragraph2 = doc.getSections().get(0).getParagraphs().get(1);
//获取段落行距
float linespage = paragraph2.getFormat().getLineSpacing();
System.out.println("段落行距:" + linespage); //遍历段落中的子对象
for (int z = 0; z < paragraph2.getChildObjects().getCount(); z++)
{
Object obj2 = paragraph2.getChildObjects().get(z); //判定是否为文本
if (obj2 instanceof TextRange)
{
TextRange textRange2 = (TextRange) obj2; //获取文本颜色
Color textcolor = textRange2.getCharacterFormat().getTextColor();
if (!(textcolor.getRGB() == 0))
{
System.out.println("文本颜色:" + 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文本/段落格式属性的更多相关文章

  1. Java 读取Word文本框中的文本/图片/表格

    Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...

  2. C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)

    [概述] Word中可插入文本框,在文本框中可添加文本.图片.表格等内容.本篇文章通过C#程序代码介绍如何来读取文本框中的文本.图片和表格等内容.附VB.NET代码,有需要可作参考. [程序环境] 程 ...

  3. [Java] Java读取Word文档

    前言 最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法. Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括 ...

  4. Java读取word中表格

    因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...

  5. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  6. Java 读取Word批注中的文本和图片

    本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片.关于操作Word批注的方法还可以参考这两篇文章:Java 添加.回复.修改.删除Word批注:Java 给Word指定字符串添加批 ...

  7. Java 读取Word表格中的文本和图片

    本文通过Java程序来展示如何读取Word表格,包括读取表格中的文本和图片.下面是具体实现的步骤和方法. 1. 程序环境准备 代码编译工具:IntelliJ IDEA Jdk版本:1.8.0 测试文档 ...

  8. java通过jacob来读取word转换为htm格式

    转自:http://blog.csdn.net/chinapi_hzh/article/details/5798689 因为微软没有公开word源代码,所以直接用java流来读取word的后果是读出来 ...

  9. Java 读取Word中的脚注、尾注

    本文介绍读取Word中的脚注及尾注的方法,添加脚注.尾注可以参考这篇文章. 注:本文使用了Word类库(Free Spire.Doc for Java 免费版)来读取,获取该类库可通过官网下载,并解压 ...

随机推荐

  1. React Hooks: useImperativeHandle All In One

    React Hooks: useImperativeHandle All In One useImperativeHandle https://reactjs.org/docs/hooks-refer ...

  2. Git Best Practice All In One

    Git Best Practice All In One git workflow 本地开发环境: 开发人员自测的,可以是自己本地部署的静态服务器,当然也可类似是运行 npm server类似的环境, ...

  3. bash for mac

    bash for mac https://sourabhbajaj.com/mac-setup/iTerm/ https://sourabhbajaj.com/mac-setup/iTerm/zsh. ...

  4. whiteboard & coding interview practice

    whiteboard & coding interview practice 白板 & 面试 & 编码练习 Algorithm https://www.freecodecamp ...

  5. 2020 front-end interview

    2020 front-end interview https://juejin.im/post/5e083e17f265da33997a4561 xgqfrms 2012-2020 www.cnblo ...

  6. URLSearchParams & GET Query String & JSON

    URLSearchParams & GET Query String & JSON https://developer.mozilla.org/zh-CN/docs/Web/API/U ...

  7. nodejs 在windows10中设置动态(视频)壁纸

    github 项目地址 node版本 λ node -v v12.16.2 main.js const ffi = require("@saleae/ffi"); const ch ...

  8. apollo-server 返回模拟数据

    模式模拟GraphQL数据 const { ApolloServer, gql } = require('apollo-server'); const typeDefs = gql` type Que ...

  9. MongoDB的下载、安装与部署

    1.什么是MongoDB? 它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性.可伸缩性.扩展性于一身的高性能的面向文档的通用数据库. 2.为什么要用Mong ...

  10. Nice!JavaScript基础语法知识都在这儿了

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 转载请注明出处! 链接:https://blog.csdn ...