I am trying to apply list formatting to my headers so that the first header will be in the format of 1, 2, 3 and the second header will have the list format of 1.1, 1.2, 1.3
I’ve tried a number of things but all I get is the header 2 participating in the same list numbering as header one. So if I have an output for header one - 1. and then following that header 2 output, header 2 output will be 2.
List list = doc.getLists().add(ListTemplate.OUTLINE_LEGAL);
doc.getStyles().forEach(s -> {
if (s.getName().equals(“Heading 1”)) {
ListLevel level1 = list.getListLevels().get(1);
s.getListFormat().setList(list);
level1.setLinkedStyle(s);
level1.setNumberStyle(NumberStyle.ARABIC);
level1.setNumberFormat("\u0000");
level1.setNumberPosition(0);
s.getParagraphFormat().setLeftIndent(0);
try {
level1.getFont().setBold(true);
level1.getFont().setItalic(false);
level1.getFont().setSize(14);
level1.getFont().setName(“Arial”);
} catch (Exception e) {
e.printStackTrace();
}
} else if (s.getName().equals(“Heading 2”)) {
ListLevel level = list.getListLevels().get(2);
s.getListFormat().setList(list);
level.setNumberFormat("\u0000.\u0001");
level.isLegal(true);
level.setLinkedStyle(s);
level.setRestartAfterLevel(0);
level.setNumberPosition(0);
try {
level.getFont().setBold(true);
level.getFont().setItalic(false);
level.getFont().setSize(12);
level.getFont().setName(“Arial”);
} catch (Exception e) {
e.printStackTrace();
}
level.setTextPosition(.25);
s.getParagraphFormat().setLeftIndent(0);
}
});