private void setFooterReference(Enum type, XWPFHeaderFooter wrapper) {
CTHdrFtrRef ref = doc.getDocument().getBody().getSectPr().addNewFooterReference();
ref.setType(type);
ref.setId(doc.getRelationId(wrapper));
private void setHeaderReference(Enum type, XWPFHeaderFooter wrapper) {
CTHdrFtrRef ref = doc.getDocument().getBody().getSectPr().addNewHeaderReference();
ref.setType(type);
ref.setId(doc.getRelationId(wrapper));
/**
* Create a footer of the given type
* @param type {@link HeaderFooterType} enum
* @return object of type {@link XWPFFooter}
public XWPFFooter createFooter(HeaderFooterType type) {
XWPFHeaderFooterPolicy hfPolicy = createHeaderFooterPolicy();
// TODO this needs to be migrated out into section code
if (type == HeaderFooterType.FIRST) {
CTSectPr ctSectPr = getSection();
if (!ctSectPr.isSetTitlePg()) {
CTOnOff titlePg = ctSectPr.addNewTitlePg();
titlePg.setVal(STOnOff.ON);
// } else if (type == HeaderFooterType.EVEN) {
// TODO Add support for Even/Odd headings and footers
return hfPolicy.createFooter(STHdrFtr.Enum.forInt(type.toInt()));
for (int i = 0; i < sectPr.sizeOfHeaderReferenceArray(); i++) {
CTHdrFtrRef ref = sectPr.getHeaderReferenceArray(i);
POIXMLDocumentPart relatedPart = doc.getRelationById(ref.getId());
XWPFHeader hdr = null;
for (int i = 0; i < sectPr.sizeOfFooterReferenceArray(); i++) {
CTHdrFtrRef ref = sectPr.getFooterReferenceArray(i);
POIXMLDocumentPart relatedPart = doc.getRelationById(ref.getId());
XWPFFooter ftr = null;
@Override protected void visitFooter( CTHdrFtr currentFooter, CTHdrFtrRef footerRef, CTSectPr sectPr, StylableMasterPage masterPage ) throws Exception BigInteger footerY = sectPr.getPgMar() != null ? sectPr.getPgMar().getFooter() : null; this.currentPageWidth = sectPr.getPgMar() != null ? DxaUtil.dxa2points( sectPr.getPgSz().getW() ) : null; StylableHeaderFooter pdfFooter = new StylableHeaderFooter( pdfDocument, footerY, false ); StylableTableCell tableCell = pdfFooter.getTableCell(); visitBodyElements( currentFooter, tableCell ); masterPage.setFooter( pdfFooter ); this.currentPageWidth = null;
try{
CTSectPr sectpr = document.getDocument().getBody().addNewSectPr();
if(!sectpr.isSetPgSz()) {
sectpr.addNewPgSz();
CTPageSz pageSize = sectpr.getPgSz();
Paper paper=report.getPaper();
Orientation orientation=paper.getOrientation();
int columnMargin=paper.getColumnMargin();
cols.setSpace(new BigInteger(String.valueOf(DxaUtils.points2dxa(columnMargin))));
sectpr.setCols(cols);
CTPageMar pageMar = sectpr.addNewPgMar();
pageMar.setLeft(BigInteger.valueOf(DxaUtils.points2dxa(paper.getLeftMargin())));
pageMar.setRight(BigInteger.valueOf(DxaUtils.points2dxa(paper.getRightMargin())));
boolean ignoreFirstHeaderFooter = !XWPFUtils.isCTOnOff( sectPr.getTitlePg() );
Collection<CTHdrFtrRef> headersRef = sectPr.getHeaderReferenceList();
Collection<CTHdrFtrRef> footersRef = sectPr.getFooterReferenceList();
protected void visitHeadersFooters( CTSectPr sectPr, T container )
throws Exception
Collection<CTHdrFtrRef> headersRef = sectPr.getHeaderReferenceList();
Collection<CTHdrFtrRef> footersRef = sectPr.getFooterReferenceList();
for ( CTHdrFtrRef headerRef : headersRef )
visitHeader( headerRef );
for ( CTHdrFtrRef footerRef : footersRef )
visitFooter( footerRef );
CTSectPr sect = document.getDocument().getBody().getSectPr(); sect.addNewTitlePg();
@Override protected void visitHeader( CTHdrFtr currentHeader, CTHdrFtrRef headerRef, CTSectPr sectPr, StylableMasterPage masterPage ) throws Exception BigInteger headerY = sectPr.getPgMar() != null ? sectPr.getPgMar().getHeader() : null; this.currentPageWidth = sectPr.getPgMar() != null ? DxaUtil.dxa2points( sectPr.getPgSz().getW() ) : null; StylableHeaderFooter pdfHeader = new StylableHeaderFooter( pdfDocument, headerY, false ); StylableTableCell tableCell = pdfHeader.getTableCell(); visitBodyElements( currentHeader, tableCell ); masterPage.setHeader( pdfHeader ); this.currentPageWidth = null;
for(int i=0; i<sectPr.sizeOfHeaderReferenceArray(); i++) {
CTHdrFtrRef ref = sectPr.getHeaderReferenceArray(i);
POIXMLDocumentPart relatedPart = doc.getRelationById(ref.getId());
XWPFHeader hdr = null;
assignHeader(hdr, type);
for(int i=0; i<sectPr.sizeOfFooterReferenceArray(); i++) {
CTHdrFtrRef ref = sectPr.getFooterReferenceArray(i);
POIXMLDocumentPart relatedPart = doc.getRelationById(ref.getId());
XWPFFooter ftr = null;
try{
CTSectPr sectpr = document.getDocument().getBody().addNewSectPr();
if(!sectpr.isSetPgSz()) {
sectpr.addNewPgSz();
CTPageSz pageSize = sectpr.getPgSz();
Paper paper=report.getPaper();
Orientation orientation=paper.getOrientation();
int columnMargin=paper.getColumnMargin();
cols.setSpace(new BigInteger(String.valueOf(DxaUtils.points2dxa(columnMargin))));
sectpr.setCols(cols);
CTPageMar pageMar = sectpr.addNewPgMar();
pageMar.setLeft(BigInteger.valueOf(DxaUtils.points2dxa(paper.getLeftMargin())));
pageMar.setRight(BigInteger.valueOf(DxaUtils.points2dxa(paper.getRightMargin())));
boolean ignoreFirstHeaderFooter = !XWPFUtils.isCTOnOff( sectPr.getTitlePg() );
Collection<CTHdrFtrRef> headersRef = sectPr.getHeaderReferenceList();
Collection<CTHdrFtrRef> footersRef = sectPr.getFooterReferenceList();
@Override protected void visitHeader( CTHdrFtr currentHeader, CTHdrFtrRef headerRef, CTSectPr sectPr, StylableMasterPage masterPage ) throws Exception BigInteger headerY = sectPr.getPgMar() != null ? sectPr.getPgMar().getHeader() : null; this.currentPageWidth = sectPr.getPgMar() != null ? DxaUtil.dxa2points( sectPr.getPgSz().getW() ) : null; StylableHeaderFooter pdfHeader = new StylableHeaderFooter( pdfDocument, headerY, false ); StylableTableCell tableCell = pdfHeader.getTableCell(); visitBodyElements( currentHeader, tableCell ); masterPage.setHeader( pdfHeader ); this.currentPageWidth = null;
for (int i = 0; i < sectPr.sizeOfHeaderReferenceArray(); i++) {
CTHdrFtrRef ref = sectPr.getHeaderReferenceArray(i);
POIXMLDocumentPart relatedPart = doc.getRelationById(ref.getId());
XWPFHeader hdr = null;
for (int i = 0; i < sectPr.sizeOfFooterReferenceArray(); i++) {
CTHdrFtrRef ref = sectPr.getFooterReferenceArray(i);
POIXMLDocumentPart relatedPart = doc.getRelationById(ref.getId());
XWPFFooter ftr = null;
/**
* Create a header of the given type
* @param type {@link HeaderFooterType} enum
* @return object of type {@link XWPFHeader}
public XWPFHeader createHeader(HeaderFooterType type) {
XWPFHeaderFooterPolicy hfPolicy = createHeaderFooterPolicy();
// TODO this needs to be migrated out into section code
if (type == HeaderFooterType.FIRST) {
CTSectPr ctSectPr = getSection();
if (!ctSectPr.isSetTitlePg()) {
CTOnOff titlePg = ctSectPr.addNewTitlePg();
titlePg.setVal(STOnOff.ON);
// } else if (type == HeaderFooterType.EVEN) {
// TODO Add support for Even/Odd headings and footers
return hfPolicy.createHeader(STHdrFtr.Enum.forInt(type.toInt()));
private void setHeaderReference(Enum type, XWPFHeaderFooter wrapper) {
CTHdrFtrRef ref = doc.getDocument().getBody().getSectPr().addNewHeaderReference();
ref.setType(type);
ref.setId(doc.getRelationId(wrapper));
private void setFooterReference(Enum type, XWPFHeaderFooter wrapper) {
CTHdrFtrRef ref = doc.getDocument().getBody().getSectPr().addNewFooterReference();
ref.setType(type);
ref.setId(doc.getRelationId(wrapper));
@Override protected void visitFooter( CTHdrFtr currentFooter, CTHdrFtrRef footerRef, CTSectPr sectPr, StylableMasterPage masterPage ) throws Exception BigInteger footerY = sectPr.getPgMar() != null ? sectPr.getPgMar().getFooter() : null; this.currentPageWidth = sectPr.getPgMar() != null ? DxaUtil.dxa2points( sectPr.getPgSz().getW() ) : null; StylableHeaderFooter pdfFooter = new StylableHeaderFooter( pdfDocument, footerY, false ); StylableTableCell tableCell = pdfFooter.getTableCell(); visitBodyElements( currentFooter, tableCell ); masterPage.setFooter( pdfFooter ); this.currentPageWidth = null;
/**
* Create a header of the given type
* @param type {@link HeaderFooterType} enum
* @return object of type {@link XWPFHeader}
public XWPFHeader createHeader(HeaderFooterType type) {
XWPFHeaderFooterPolicy hfPolicy = createHeaderFooterPolicy();
// TODO this needs to be migrated out into section code
if (type == HeaderFooterType.FIRST) {
CTSectPr ctSectPr = getSection();
if (!ctSectPr.isSetTitlePg()) {
CTOnOff titlePg = ctSectPr.addNewTitlePg();
titlePg.setVal(STOnOff.ON);
// } else if (type == HeaderFooterType.EVEN) {
// TODO Add support for Even/Odd headings and footers
return hfPolicy.createHeader(STHdrFtr.Enum.forInt(type.toInt()));