使用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