Is it possible to create new header for every different sections using docx4j?
I've seen that MS Word provides functionality to create different headers by creating different sections using section breaks. But I want to implement this functionality using docx4j.
For example: If I've to create a docx files that may contains list of products, some terms and conditions, and some other sections. And I want title for each section to be displayed at top with paging (Like Product Summary: Page 1 of 2, Terms & Conditions: Page 3 of 3).
Also I'm using MainDocumentPart.addAltChunk() method to write html content in the document for creating Document.
Thanks in Advance.
--
Regards,
Sanshey Sachdeva
Finally I got the solution.
Below piece of code allows me to handle sections:
SectPr sectPr = null;
if(isLastSection){
List<SectionWrapper> sections = wordprocessingMLPackage.getDocumentModel().getSections();
sectPr = sections.get(sections.size() - 1).getSectPr();
if (sectPr==null ) {
sectPr = objectFactory.createSectPr();
wordprocessingMLPackage.getMainDocumentPart().addObject(sectPr);
sections.get(sections.size() - 1).setSectPr(sectPr);
}
}
else{
sectPr = objectFactory.createSectPr();
}
This code allows me to create separate header for each section:
HeaderPart headerPart = new HeaderPart(new PartName("/word/header"+ (countHeader++) +".xml"));
headerPart.setPackage(wordprocessingMLPackage);
headerPart.setRelationshipType(Namespaces.HEADER);
headerPart.setJaxbElement(objectFactory.createHdr());
Relationship relationship = documentPart.addTargetPart(headerPart);
HeaderReference headerReference = objectFactory.createHeaderReference();
headerReference.setId(relationship.getId());
headerReference.setType(HdrFtrRef.DEFAULT);
sectPr.getEGHdrFtrReferences().add(headerReference);
This piece of code allows me to create separate paging for each section:
CTPageNumber ctPageNumber = objectFactory.createCTPageNumber();
ctPageNumber.setStart(BigInteger.ONE);
sectPr.setPgNumType(ctPageNumber);