HeaderPart header = new HeaderPart(new PartName("/word/header.xml")); Hdr hdr = objectFactory.createHdr(); hdr.getContent().add(headerTbl); header.setJaxbElement(hdr); Relationship rel1 = wordMLPackage.getMainDocumentPart().addTargetPart(header); createHeaderReference(wordMLPackage, rel1); public static void createHeaderReference( WordprocessingMLPackage wordprocessingMLPackage, Relationship relationship ) throws InvalidFormatException { List sections = wordprocessingMLPackage.getDocumentModel().getSections(); SectPr sectPr = sections.get(sections.size() - 1).getSectPr(); // There is always a section wrapper, but it might not contain a sectPr if (sectPr==null ) { sectPr = objectFactory.createSectPr(); wordprocessingMLPackage.getMainDocumentPart().addObject(sectPr); sections.get(sections.size() - 1).setSectPr(sectPr); } HeaderReference headerReference = objectFactory.createHeaderReference(); headerReference.setId(relationship.getId()); headerReference.setType(HdrFtrRef.DEFAULT); sectPr.getEGHdrFtrReferences().add(headerReference); }