Table layout
mPDF will atempt to layout tables using the same algorithm recommended by the HTML specifications (see Auto-layout algorithm). However, the constraints of fitting content to the page size means that the recommended algorithm has to be altered.
In general, mPDF places more priority on producing a pleasing, efficiently laid out table than it does on respecting
defined values e.g. <table width="300px"> or <td width="30%">
If the result is not what you want, consider using some of the following to control the layout:
- change the maximum shrinkage factor allowed for an individual table e.g.
<table autosize="1.6"> - prevent an individual table from resizing e.g.
<table autosize="1"> - prevent all tables from resizing:
$mpdf->shrink_tables_to_fit = 1; - non-breaking spaces
<td nowrap="nowrap"><td style="white-space:nowrap"><td style="width: 33%"><td style="width: 5cm"><table style="page-break-inside:avoid">to force the table onto one page.<table style="overflow: visible|hidden|wrap">to control wide tables or tables with specific widths specified
Overriding the Auto- Layout
Other methods to override the default layout algorithm.
$keep_table_proportions
If the table width is set greater than the page width allows, mPDF will by default ignore any defined sizes and attempt to auto-layout the table to the page width. This will result in relative column widths etc. being lost.
If you wish to maintain the relative proportions of the table, set $keep_table_proportions = true; this forces the table to be resized, but keep relative proportions. NB It also
forces respect of cell widths set by %
$ignore_table_percents
Table and cell widths set as a percent value are respected when possible by mPDF - as long as the table layout meets the
other constraints. This can lead to an ugly or inefficiently laid out table for a printed document. Setting
$ignore_table_percents = true; will force mPDF to
ignore any table or cell widths set as percent values.
$ignore_table_width
Table widths set as absolute length values are respected when possible by mPDF - as long as the table layout meets
the other constraints. This can lead to an ugly or inefficiently laid out table for a printed document. Setting
$ignore_table_width = true; will force mPDF to ignore any table widths set as absolute length values.
$tableMinSizePriority
If there is a conflict between respecting $page-break-inside:avoid and respecting
the maximum value allowed for $autosize, the configurable variable
tableMinSizePriority
will determine which factor takes priority. (mPDF vā„4.6)