Java 读取Word文本/段落格式属性
本文介绍通过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文本/段落格式属性的更多相关文章
- Java 读取Word文本框中的文本/图片/表格
Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...
- C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)
[概述] Word中可插入文本框,在文本框中可添加文本.图片.表格等内容.本篇文章通过C#程序代码介绍如何来读取文本框中的文本.图片和表格等内容.附VB.NET代码,有需要可作参考. [程序环境] 程 ...
- [Java] Java读取Word文档
前言 最近需要做一些NLP 方面的工作,使用的是Java,在此总结一下使用Java读取Word(.doc)格式文件的方法. Apache基金会非常厉害,开源工具包POI就可以处理微软家的文档,甚至包括 ...
- Java读取word中表格
因为要新建一个站,公司要把word表格的部分行列存到数据库中.之前用java操作过excel,本来打算用java从word表格中读取数据,再存到数据库中,结果因为权限不够,无法访问公司要写的那个数据库 ...
- java操作office和pdf文件java读取word,excel和pdf文档内容
在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...
- Java 读取Word批注中的文本和图片
本文将介绍读取Word批注的方法,包括读取Word批注中的文本及图片.关于操作Word批注的方法还可以参考这两篇文章:Java 添加.回复.修改.删除Word批注:Java 给Word指定字符串添加批 ...
- Java 读取Word表格中的文本和图片
本文通过Java程序来展示如何读取Word表格,包括读取表格中的文本和图片.下面是具体实现的步骤和方法. 1. 程序环境准备 代码编译工具:IntelliJ IDEA Jdk版本:1.8.0 测试文档 ...
- java通过jacob来读取word转换为htm格式
转自:http://blog.csdn.net/chinapi_hzh/article/details/5798689 因为微软没有公开word源代码,所以直接用java流来读取word的后果是读出来 ...
- Java 读取Word中的脚注、尾注
本文介绍读取Word中的脚注及尾注的方法,添加脚注.尾注可以参考这篇文章. 注:本文使用了Word类库(Free Spire.Doc for Java 免费版)来读取,获取该类库可通过官网下载,并解压 ...
随机推荐
- React Hooks: useImperativeHandle All In One
React Hooks: useImperativeHandle All In One useImperativeHandle https://reactjs.org/docs/hooks-refer ...
- Git Best Practice All In One
Git Best Practice All In One git workflow 本地开发环境: 开发人员自测的,可以是自己本地部署的静态服务器,当然也可类似是运行 npm server类似的环境, ...
- bash for mac
bash for mac https://sourabhbajaj.com/mac-setup/iTerm/ https://sourabhbajaj.com/mac-setup/iTerm/zsh. ...
- whiteboard & coding interview practice
whiteboard & coding interview practice 白板 & 面试 & 编码练习 Algorithm https://www.freecodecamp ...
- 2020 front-end interview
2020 front-end interview https://juejin.im/post/5e083e17f265da33997a4561 xgqfrms 2012-2020 www.cnblo ...
- URLSearchParams & GET Query String & JSON
URLSearchParams & GET Query String & JSON https://developer.mozilla.org/zh-CN/docs/Web/API/U ...
- nodejs 在windows10中设置动态(视频)壁纸
github 项目地址 node版本 λ node -v v12.16.2 main.js const ffi = require("@saleae/ffi"); const ch ...
- apollo-server 返回模拟数据
模式模拟GraphQL数据 const { ApolloServer, gql } = require('apollo-server'); const typeDefs = gql` type Que ...
- MongoDB的下载、安装与部署
1.什么是MongoDB? 它是介于关系型数据库和非关系型数据库之间的一种NoSQL数据库,用C++编写,是一款集敏捷性.可伸缩性.扩展性于一身的高性能的面向文档的通用数据库. 2.为什么要用Mong ...
- Nice!JavaScript基础语法知识都在这儿了
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star 转载请注明出处! 链接:https://blog.csdn ...