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));
生成效果:
分类:
工作笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)