Poi-tl列表渲染,当列表不存在或空时移除占位tag

文章讲述了如何在使用poi-tl创建自定义列表渲染时,修正当列表为空时占位tag未删除的问题,方法包括获取并替换文本,检查父元素是否为XWPFParagraph,以及在必要时从文档中移除相关段落。
摘要由CSDN通过智能技术生成

 使用poi-tl创建了一个自定义的列表渲染对象,但当列表为空时占位tag没有删除, 解决方案如下:


XWPFRun run = context.getRun();
IRunBody parent = run.getParent();
String text = run.text();
run.setText("", 0);
if (clearParagraph && (parent instanceof XWPFParagraph)) {
	String paragraphText = ParagraphUtils.trimLine((XWPFParagraph) parent);
	if (text.equals(paragraphText)) {
		XWPFDocument doc = context.getXWPFDocument();
		int pos = doc.getPosOfParagraph((XWPFParagraph) parent);
		// TODO p inside table for-each cell's p and remove
		doc.removeBodyElement(pos);
	} 
}

源码参考: 

com.deepoove.poi.policy.AbstractRenderPolicy.clearPlaceholder
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值