mPDF Manual – Headers & Footers

Headers & Top margins

(mPDF >= 4.0)

In standard usage, mPDF sets the following:

  • top-margin = distance in mm from top of page to start of text (ignoring any headers)
  • header-margin = distance in mm from top of page to start of header
  • bottom-margin = distance in mm from bottom of page to bottom of text (ignoring any footers)
  • footer-margin = distance in mm from bottom of page to bottom of footer

If you specify a header that extends further down the page than the top-margin, then the header and main text will overlap.

Alternative margin usage

The variables $this->setAutoTopMargin and $this->setAutoBottomMargin can be set in the config.php file. Both default to FALSE.

pad

If $this->setAutoTopMargin is set to ‘pad’ then the value for margin-top is used to set a fixed distance in mm (padding) between the bottom of the header and top of the main text. The converse is true with $this->setAutoBottomMargin.

stretch

If $this->setAutoTopMargin is set to ‘stretch’ then the margin-top sets a minimum distance in mm between the top of the page and the top of the main text, which expands if header is too large to fit. The value $this->autoMarginPadding (default = 2, configurable in config.php) defines an additional distance in mm used as padding between the header and main text. This is the behaviour seen in Microsoft Word.

The converse is true with $this->setAutoBottomMargin.

Experimental!

Use of this function is probably best considered experimental. It is incompatible with some of the other functionality in mPDF, and has some limitations:

  • Using either pad or stretch, the values are set for the whole document - changes during the document will produce unpredictable results

  • Incompatible with orientation changes, $forceportraitheaders or $forceportraitmargins

  • Does not work with “write to current page” options for Headers

  • Incompatible with CSS @paged media

  • Cannot set a new Footer when already further down the page than there is room needed for footer

  • Potential error if using {nbpg} to define page total in an HTML header or footer. The top/bottom margin is calculated by writing the HTML header using the current page no. If when the header is finally written, a page number total of e.g. 500 causes an extra line in the header/footer, this will not be allowed for.