直接上代码:

import java.io.FileOutputStream;
import java.math.BigInteger;
import java.util.Random;import org.apache.poi.xwpf.usermodel.BreakType;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.TextAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBackground;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHighlight;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRPr;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTSpacing;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTUnderline;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STHighlightColor;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STLineSpacingRule;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STShd;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STUnderline;public class POI_07_设置下划线样式_S3_Test {public static void main(String[] args) throws Exception {POI_07_设置下划线样式_S3_Test t = new POI_07_设置下划线样式_S3_Test();XWPFDocument doc = new XWPFDocument();// 需关闭护眼色才能看到效果t.setDocumentbackground(doc, "FDE9D9");//设置页面背景色t.testSetUnderLineStyle(doc);//设置下划线样式以及突出显示文本t.addNewPage(doc, BreakType.PAGE);t.testSetShdStyle(doc);//设置文字底纹t.saveDocument(doc,"f:/saveFile/temp/sys_" + System.currentTimeMillis() + ".docx");}public void testSetUnderLineStyle(XWPFDocument doc) {String[] colors = new String[] { "CCA6EF", "DD999D", "4FCEF0","7A7A7A", "F3C917", "FFA932", "C7B571", "535354", "5FD2F1","B5E900", "FEF8B6" };Random random = new Random();// TODO 这里为了方便测试写了数字,推荐写英文样式for (int i = 1; i <= 18; i++) {XWPFParagraph p = doc.createParagraph();setParagraphFontInfoAndUnderLineStyle(p, "测试下划线", "宋体", "1D8C56","22", false, false, false, true, i,colors[Math.abs(random.nextInt(colors.length))], false, 0,null);setParagraphSpacingInfo(p, true, "0", "50", false, "0", "0", true,"240", STLineSpacingRule.Enum.forString("auto"));setParagraphAlignInfo(p, ParagraphAlignment.LEFT,TextAlignment.CENTER);}}public void testSetShdStyle(XWPFDocument doc) {String[] colors = new String[] { "CCA6EF", "DD999D", "4FCEF0","7A7A7A", "F3C917", "FFA932", "C7B571", "535354", "5FD2F1","B5E900", "FEF8B6" };Random random = new Random();// TODO 这里为了方便测试写了数字,推荐写英文样式for (int i = 1; i <= 38; i++) {XWPFParagraph p = doc.createParagraph();setParagraphFontInfoAndUnderLineStyle(p, "测试底纹", "宋体", "1D8C56","22", false, false, false, false, i, null, true, i,colors[Math.abs(random.nextInt(colors.length))]);setParagraphSpacingInfo(p, true, "0", "50", false, "0", "0", true,"240", STLineSpacingRule.Enum.forString("auto"));setParagraphAlignInfo(p, ParagraphAlignment.LEFT,TextAlignment.CENTER);}}public void setParagraphAlignInfo(XWPFParagraph p,ParagraphAlignment pAlign, TextAlignment valign) {p.setAlignment(pAlign);p.setVerticalAlignment(valign);}public void setParagraphSpacingInfo(XWPFParagraph p, boolean isSpace,String before, String after, boolean isPLine, String beforeLines,String afterLines, boolean isLine, String line,STLineSpacingRule.Enum lineValue) {CTPPr pPPr = null;if (p.getCTP() != null) {if (p.getCTP().getPPr() != null) {pPPr = p.getCTP().getPPr();} else {pPPr = p.getCTP().addNewPPr();}}CTSpacing pSpacing = pPPr.getSpacing() != null ? pPPr.getSpacing(): pPPr.addNewSpacing();if (isSpace) {// 段前磅数if (before != null) {pSpacing.setBefore(new BigInteger(before));}// 段后磅数if (after != null) {pSpacing.setAfter(new BigInteger(after));}}if (isPLine) {// 段前行数if (beforeLines != null) {pSpacing.setBeforeLines(new BigInteger(beforeLines));}// 段后行数if (afterLines != null) {pSpacing.setAfterLines(new BigInteger(afterLines));}}// 间距if (isLine) {if (line != null) {pSpacing.setLine(new BigInteger(line));}if (lineValue != null) {pSpacing.setLineRule(lineValue);}}}public void setParagraphFontInfoAndUnderLineStyle(XWPFParagraph p,String content, String fontFamily, String colorVal,String fontSize, boolean isBlod, boolean isItalic,boolean isStrike, boolean isUnderLine, int underLineStyle,String underLineColor, boolean isShd, int shdValue, String shdColor) {XWPFRun pRun = null;if (p.getRuns() != null && p.getRuns().size() > 0) {pRun = p.getRuns().get(0);} else {pRun = p.createRun();}pRun.setText(content);CTRPr pRpr = null;if (pRun.getCTR() != null) {pRpr = pRun.getCTR().getRPr();if (pRpr == null) {pRpr = pRun.getCTR().addNewRPr();}}// 设置字体CTFonts fonts = pRpr.isSetRFonts() ? pRpr.getRFonts() : pRpr.addNewRFonts();fonts.setAscii(fontFamily);fonts.setEastAsia(fontFamily);fonts.setHAnsi(fontFamily);// 设置字体大小CTHpsMeasure sz = pRpr.isSetSz() ? pRpr.getSz() : pRpr.addNewSz();sz.setVal(new BigInteger(fontSize));CTHpsMeasure szCs = pRpr.isSetSzCs() ? pRpr.getSzCs() : pRpr.addNewSzCs();szCs.setVal(new BigInteger(fontSize));// 设置字体样式if (isBlod) {pRun.setBold(isBlod);}if (isItalic) {pRun.setItalic(isItalic);}if (isStrike) {pRun.setStrike(isStrike);}if (colorVal != null) {pRun.setColor(colorVal);}// 设置字突出显示文本if (underLineStyle > 0 && underLineStyle < 17) {CTHighlight hightLight = pRpr.isSetHighlight() ? pRpr.getHighlight() : pRpr.addNewHighlight();hightLight.setVal(STHighlightColor.Enum.forInt(underLineStyle));}// 设置下划线样式if (isUnderLine) {CTUnderline u = pRpr.isSetU() ? pRpr.getU() : pRpr.addNewU();u.setVal(STUnderline.Enum.forInt(Math.abs(underLineStyle % 19)));if (underLineColor != null) {u.setColor(underLineColor);}}if (isShd) {// 设置底纹CTShd shd = pRpr.isSetShd() ? pRpr.getShd() : pRpr.addNewShd();if (shdValue > 0 && shdValue <= 38) {shd.setVal(STShd.Enum.forInt(shdValue));}if (shdColor != null) {shd.setColor(shdColor);}}}// 设置页面背景色public void setDocumentbackground(XWPFDocument document, String bgColor) {CTBackground bg = document.getDocument().isSetBackground() ? document.getDocument().getBackground() : document.getDocument().addNewBackground();bg.setColor(bgColor);}public void addNewPage(XWPFDocument document, BreakType breakType) {XWPFParagraph xp = document.createParagraph();xp.createRun().addBreak(breakType);}public void saveDocument(XWPFDocument document, String savePath)throws Exception {FileOutputStream fos = new FileOutputStream(savePath);document.write(fos);fos.close();}
}

结果为:


    

      转载请注明原处,原文链接:http://53873039oycg.iteye.com/blog/2157758 ,谢谢。
      全文完。

[简单]POI设置word 2007文本下划线样式及文字底纹相关推荐

  1. POI设置word 2007文本下划线样式及文字底纹

    直接上代码: Java代码   import java.io.FileOutputStream; import java.math.BigInteger; import java.util.Rando ...

  2. [简单]poi 设置word 2007段落与表格底纹

    直接上代码: import java.io.FileOutputStream; import java.math.BigInteger; import java.util.ArrayList; imp ...

  3. poi处理word内容的公式_[简单]POI读取word 2007内容控件

    见代码 : import java.util.Iterator; import java.util.List; import org.apache.poi.openxml4j.opc.OPCPacka ...

  4. html设置文本的下划线效果,CSS3 自定义文本下划线样式

    CSS 语言: CSSSCSS 确定 body { background: #165578; } .wrapper { width: 500px; margin: 0 auto; } h1 { col ...

  5. 计算机统考加重号,高会《职称计算机》Word 2007:设置字体效果、下划线、着重号...

    通过高级会计师考试的考生们现在可以着手准备职称计算机考试了,东奥小编为您准备相关知识点,希望大家能够认真学习. 设置字体效果.下划线.着重号 文本格式化,除了可以设置字体.字形.字号.字体颜色,还可以 ...

  6. text-decoration设置文本下划线失效

    前言 最近公司的一项业务中涉及到了文本下划线的问题,本来对于我们来说,下划线并不是难点,可曾想过,这里也能踩坑. 下划线? so easy! text-decoration: underline so ...

  7. HTML文本下划线效果,聊聊CSS中文本下划线_CSS, SVG, masking, clip-path, 会员专栏, text-decoration 教程_W3cplus...

    在Web中给文本添加下划线常常出现在链接的文本上,早期一般使用text-decoration属性给文本添加下划线.删除线等.除了text-decoration之外,CSS还有很多技术方案可以给文本添加 ...

  8. html怎么设置下划线形状,科技常识:CSS如何给文字添加下划线样式

    今天小编跟大家讲解下有关CSS如何给文字添加下划线样式 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关CSS如何给文字添加下划线样式 的相关资料,希望小伙伴们看了有所帮助. 在css中可以 ...

  9. 使用pymupdf获取pdf文档中的文本下划线信息(全网唯一解决方案)

    1,问题描述 最近,公司需要对一批pdf文档进行解析,获取其中文字,并再展示到前端页面上.如果单纯地提取文字,其实非常容易,但麻烦的在于保存原有文档中的文本格式,例如加粗.斜体.下划线,以及三者的各种 ...

最新文章

  1. 计算机语言编程能力有哪些,除了编程语言,程序员还需要具备哪些能力
  2. 奥比中光2022春季校园招聘全面启动!
  3. 【设计模式】模板方法模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  4. 【二叉树详解】二叉树的创建、遍历、查找以及删除等-数据结构05
  5. 关于投稿 LaTeX 的使用
  6. vue中安装sass
  7. CSharp设计模式读书笔记(18):中介者模式(学习难度:★★★☆☆,使用频率:★★☆☆☆)...
  8. 使用Pycharm将代码同步到GitHub
  9. Factorized Graph Matching
  10. MySQL OCP认证(文末附参考题)
  11. 用Python进行数学建模(一)
  12. 如何实现施耐德Twido系列PLC远程上下载
  13. 微信小程序图标点击后变色并跳转页面
  14. Customer-exit总结
  15. 开源大阅兵:盘点那些走向世界的中国项目
  16. 轮廓图(Silhouette)
  17. 基于微信小程序的商城购物系统的设计与实现(论文+源码)_kaic
  18. 快速打开命令行方法集合
  19. 高中计算机学考试卷,北京市西城区 2018 年普通高中学业水平考试 信息技术试卷及答案 (PDF版)...
  20. 一个例子彻底弄懂python中的break和continue语句(Python经典编程案例)

热门文章

  1. UML(统一建模语言)类图的六大关系
  2. 记一次foxmailQQ邮箱创建失败到解决方法
  3. 全球最大BT网站海盗湾服务器被封 看备份重要性
  4. Path之贝塞尔曲线 进阶篇
  5. 解决“window+D按键无效”
  6. red hat linux 时间配置,Red Hat linux9 初装配置(转)
  7. 小白Home Assistant日记
  8. [土狗之路]Coursera 北京大学C++ 魔兽世界:备战
  9. enter按键的事件监听
  10. 职位名称:初级,罗马数字和难以捉摸的“ Python架构师”