我想在docx4j
的Word文档中生成无序列表。任何人都可以给我一个AbstractNumbering
项目符号列表的例子吗?
public void setAbstractNumbering(){
try {
NumberingDefinitionsPart ndp = new NumberingDefinitionsPart();
myword.addTargetPart(ndp);
Numbering.AbstractNum abstractNum = factory.createNumberingAbstractNum();
abstractNum.setAbstractNumId(BigInteger.valueOf(1));
Numbering.AbstractNum.MultiLevelType multiLevelType = new Numbering.AbstractNum.MultiLevelType();
abstractNum.setMultiLevelType(multiLevelType);
multiLevelType.setVal("singleLevel");
Lvl lvl = factory.createLvl();
abstractNum.getLvl().add(lvl);
lvl.setIlvl(BigInteger.valueOf(0));
Lvl.Start start = new Lvl.Start();
lvl.setStart(start);
start.setVal(BigInteger.valueOf(1));
NumFmt numFmt = factory.createNumFmt();
lvl.setNumFmt(numFmt);
numFmt.setVal(NumberFormat.BULLET);
Lvl.LvlText text = new Lvl.LvlText();
lvl.setLvlText(text);
text.setVal("%1");
Numbering.Num numbering = ndp.addAbstractListNumberingDefinition(abstractNum);
Numbering.Num.AbstractNumId abstractNumId = new Numbering.Num.AbstractNumId();
abstractNumId.setVal(BigInteger.valueOf(1));
numbering.setAbstractNumId(abstractNumId);
numbering.setNumId(BigInteger.valueOf(3));
} catch (InvalidFormatException ife){
ife.printStackTrace();
}
}
我在向NullPointerException
添加abstractNumbering
时收到NumberingDefinitionsPart
。有谁知道我做错了什么?
答案 0 :(得分:0)
您需要一个指向它的编号定义实例;进一步了解ecma376/WordML/numbering_2.html
获取代码的最简单方法是在Word中创建一个简单的docx,然后使用docx4j webapp或Helper Word AddIn从该docx中的编号定义部分生成代码。