Direct writing to document
Other Methods
mPDF is optimised to accept HTML code and CSS styles. Apart from WriteHTML() there are other methods that can be used
to write to the PDF document, but these do not always have full functionality. These are methods available in the
original FPDF and successors, and if these are all you are using you may find that you do not need to use mPDF with
its extra functions that slow the program down - see FPDF and UFPDF for further details.
The methods Cell() and Text() from FPDF are still present, but should not be used directly as they will not cope with
UTF-8 encoded text. Use the WriteCell() and WriteText() methods instead.
All the methods described below handle UTF-8 encoded text, and all but AutosizeText() and watermark() will reverse RTL
(right-to-left) text when appropriate.
Direct writing methods and OTL (updated: mPDF ≥ 6.0)
WriteText(),WriteCell(),Watermark(),AutoSizeText()andShadedBox()DO support complex scripts and right-to-left text (RTL).Write()does NOT support complex scripts or RTL (NB this is a change -Write()used to support RTL).CircularText()does NOT support complex scripts or RTL.MultiCell()DOES support complex scripts and RTL, but complex-script line-breaking MAY NOT be accurate.MultiCell()does not support kerning and justification. NB This includes<textarea>in forms which usesMultiCell()internally.<select>form objects also do NOT support kerning.
Text containing HTML entities, as well as decimal and hex e.g. ', ≬ or ↤ can be used in all of these
methods, by setting text_input_as_HTML:
$mpdf->text_input_as_HTML = true; (Default: false)
This will convert all the above to their appropriate characters, otherwise the text will be output as it is.
For most of the methods, you are referred to FPDF Original Functions which point to the original manual pages for more information.
Overview
WriteCell( float w, float h, string text [, mixed border [, integer ln [, string align [, integer fill [, mixed link [, float returnx ]]]]]])
Writes a single line of text directly to the PDF document at the current position.
See the details for Cell() at FPDF. An additional parameter returnx has been added; if ln is set, the current position
moves not to the left margin, but to the value set as returnx.
WriteText( float $w, float $h, string $text )
Writes a single line of text directly to the PDF document at a specified position.
See the details for Text() at FPDF.
MultiCell( float $w, float $h, string $text [, mixed $border [, string $align [, integer $fill [, mixed $link [, string $directionality [, boolean $encoded ]]]]]])
Writes a block of text directly to the PDF document at the current position. Lines are wrapped at the margins.
See the details for MultiCell() at FPDF. Two additional parameters have been added:
$directionalitySet to'rtl'if using RTL language (right-to-left) Default = ‘ltr’-
$encodedWhen set to false (default), UTF-8 encoded text will be appropriately converted to the chosen output file format. It should only be set to true, when the input text has already been converted internally within the program.Default:
false
SetX(float $x)
SetY(float $y)
SetXY(float $x, float $y)
Sets the co-ordinates for the current position to write. Note only millimeters can be used as units. $x and $y are
measured from the top-left corner of the page.
See the details these methods at FPDF
AutosizeText( string $text, float $width, string $font, string $style [, float $fontsize ])
Writes a single line of text directly to the PDF document at the current position.
Font size will be automatically reduced to fit width (but is not increased).
NB Does not reverse RTL text
$textUTF-8 encoded text to write. Single line only.$widthWidth of text in millimeters. The font size will be reduced if required to fit this size.$fontFont family to use$styleFont style used[blank for normal]|'i'|'b'|'bi'$fontsizeMaximm font size in points (pt) Default:72
watermark( string $text [, float $angle [, float $fontsize [, float $alpha ]]])
Writes a single line of text centred on the page, which can be rotated and transparent i.e. a watermark.
NB Does not reverse RTL text.
$textUTF-8 encoded text$angleAngle of rotation for text (anticlockwise rotation from horizontal) Default:45$fontsizeFont size in points (pt) Default:96$alphaTransparency Default:0.2
Note: the functions SetWatermarkImage() and SetWatermarkText() are available as well
RoundedRect( float $x, float $y, float $w, float $h, float $radius [, string $style] )
Draws a rectangle with rounded corners directly to the PDF document at the specified position.
$xAbscissa of left edge of box - value in millimeters$yOrdinate of top edge of box - value in millimeters$wWidth of the box - in millimeters$hWidth of the box - in millimeters$radiusRadius of the rounded corners$styleBox style:'Dor empty string - draw border (default);'F- fill;'DFor'FD- draw and fill Default:''i.e. border, no fill
Shaded_box( string title [, string $font [, float $fontstyle [, float $fontsize [, float $width [, string $style [, float $radius [, string $backgroundcolor [, string $color [, float $padding ]]]]]]]]])
Writes a single line of text surrounded by a box directly to the PDF document at the current position. The box can have rounded corners, and be filled with background-colour.
$titleUTF-8 encoded text (single line)$fontFont family Default:''i.e. default document font$fontstyleFont style as one of'B'(bold),'I'(italic),'BI'(bold-italic) or blank for normal Default:'B'i.e. bold$fontsizeFont size in points (pt) Default:''i.e. default document font size$widthWidth of the box - any units acceptable in CSS can be used e.g.pt,px,mm,%(of page width) Default:'70%'$styleBox style:'D'or empty string - draw border (default);'F'- fill;'DF'or'FD'- draw and fill Default:'DF'i.e. border and fill$radiusRadius of the rounded corners Default:2.5$backgroundcolorFill colour for the box - as#rrggbbDefault:'#FFFFFF'$colorText colour - as#rrggbbDefault:'#000000'$paddingPadding between text and box border, in millimeters Default:2
See Also
- preparePreText() - Prepares text to be output ignoring the HTML markup