mPDF Manual – mPDF functions


(mPDF ≥ 7.0)


__construct – Initialise an instance of mPDF class


\Mpdf\Mpdf::__construct([array $config = []])

Initialise an instance of mPDF class.



This parameter specifies configuration of the new document.

  • Apart from configuration variables defined in ConfigVariables and FontVariables classes it can obtain variables which where the arguments from the constructor of mPDF < 7.0: mode, format, default_font_size, default_font, margin_left (formerly $mgl), margin_right (formerly $mgr), margin_top (formerly $mgt), $margin_bottom (formerly mgb), $margin_header (formerly $mgh), margin_footer (formerly $mgf), orientation. These variables with their defaults are described in the next section.

  • The other configuration keys are listed at the configuration overview.

Variables with defaults from constructor


Mode of the document. Is parsed from values of various formats:

  • Codepage Values (case-insensitive)

    'c' '...-x' '...-s' or 's' '...+aCJK' or '+aCJK' '...-aCJK' or '-aCJK'

    where ... can be any string. Only language/country codes will have any effect, but other strings are parsed for backwards compatability (but have no effect).

    Only some combinations make sense. See Choosing a configuration for more details.

  • Country/Language code values (case-insensitive)

    Country/language codes are defined in \Mpdf\LangToFont class

    A country/language code can be passed as e.g. 'en-GB' or 'en_GB' or 'en'


Can be specified either as a pre-defined page size, or as an array of width and height in millimetres (see Example #2 below).

Default value: 'A4'

Values (case-insensitive)

  • 'A0’ - 'A10', 'B0' - 'B10', 'C0' - 'C10'
  • '4A0', '2A0', 'RA0' - 'RA4', 'SRA0' - 'SRA4'
  • 'Letter', 'Legal', 'Executive', 'Folio'
  • 'Demy', 'Royal'
  • 'A' (Type A paperback 111x178mm)
  • 'B' (Type B paperback 128x198mm)
  • 'Ledger'*, 'Tabloid'*

All of the above values can be suffixed with '-L' to force a Landscape page orientation document e.g. 'A4-L'.

If format is defined as a string, the orientation parameter will be ignored.

* Ledger and Tabloid are standard formats with the same page size but different orientation (Ledger is landscape, and Tabloid is portrait). Prior to mPDF 6.1, mPDF treats these identically; if you wished to use Ledger, you should have specified 'Ledger-L' for landscape.


Sets the default document font size in points (pt)

BLANK or omitted or 0 uses the default value set in defaultCSS configuration variable for the font-size of the BODY.


Sets the default font-family for the new document.

BLANK or omitted uses default value set in defaultCSS for the font-family of BODY unless codepage has been set to 'win-1252' (e.g. by using 'mode' => 'c'). If 'codepage' => "win-1252", the appropriate core Adobe font will be set i.e. Helvetica, Times, or Courier.


Set the page margins for the new document.

All values should be specified as LENGTH in millimetres.

If you are creating a DOUBLE-SIDED document, the margin values specified will be used for ODD pages; left and right margins will be mirrored for EVEN pages.

BLANK or omitted uses the default values.

Default values:

  • margin_left: 15
  • margin_right: 15
  • margin_top: 16
  • margin_bottom: 16
  • margin_header: 9
  • margin_footer: 9

This attribute specifies the default page orientation of the new document if format is defined as an array. This value will be ignored if format is a string value.

Default value: 'P'

Values (case-insensitive)

  • 'P': Portrait
  • 'L': Landscape


Version Description
6.1 Introduced to support higher versions of PHP

Parameters replaced with single $config parameter array


Example #1


// Require composer autoload
require_once __DIR__ . '/vendor/autoload.php';
$mpdf = new \Mpdf\Mpdf();

$mpdf->WriteHTML('Hello World');


Example #2

// Define a new \Mpdf\Mpdf document using utf-8 fonts
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8']);

// Define a new \Mpdf\Mpdf document using win-1252 fonts based on a language/country code
$mpdf = new \Mpdf\Mpdf(['mode' => 'en-GB']);

// Define a Landscape page size/format by name
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => 'A4-L']);

// Define a page size/format by array - page will be 190mm wide x 236mm height
$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'format' => [190, 236]]);

// Define a page using all default values except "L" for Landscape orientation
$mpdf = new \Mpdf\Mpdf(['orientation' => 'L']);


See Also

Fork me on GitHub