zoukankan      html  css  js  c++  java
  • POI使用笔记,复用样式,添加书签等

      最近遇到需求需要给文档指定run上添加书签,网上查到的方法也是需要在run创建之前和之后分别添加书签的start和end,可查看http://www.javaear.com/question/47182971.html

      试验过程:创建新的文档,新的段落,调用addRun将原来的run add进去,但是后面发现新文档里面有run下载下来却是一片空白,后面发现addRun和createRun的区别是createRun时候绑定到了指定paragraph并且还往iruns里面添加了

      所以后面重写了XWPFParagraph的addRun方法,与createRun保持一致,依旧没有效果,也没有找到原因,网上也没有查到相关资料,只有换成创建新的文档,新的段落,新的run,然后将原文档段落样式以及run的样式复用过来。

      段落样式复用:主要是换行,缩进等

    newParagraph.getCTP().setPPr(content.getCTP().getPPr());//设置段落样式,换行,空格等

      run样式复用:字号,颜色,字体等

    XWPFRun newRun = paragraph.createRun();
    newRun.setText(run.text());//文字数据
    newRun.getCTR().setRPr(run.getCTR().getRPr());//样式

      添加书签:

    CTBookmark ctBookmark = paragraph.getCTP().addNewBookmarkStart();
    ctBookmark.setName(colorName + "-" + index);
    ctBookmark.setId(BigInteger.valueOf(index));
    addNewRun(paragraph, run);//此方法是上面样式复用方法
    paragraph.getCTP().addNewBookmarkEnd().setId(BigInteger.valueOf(index));

      生成效果:

  • 相关阅读:
    JQuery 快速入门一篇通
    Winform 显示Gif图片
    MD5编码工具类 MD5Code.java
    Asp.Net 上传图片并生成高清晰缩略图
    winform时钟c#代码
    PHP面试题汇总
    PHP条件语句语法与示例
    Android声音播放实例代码
    html和js基础功能代码备份
    纯C#实现屏幕指定区域截屏
  • 原文地址:https://www.cnblogs.com/lin0/p/14035799.html
Copyright © 2011-2022 走看看