=========================== mPDF 6.0 20/12/2014 =========================== New features / Improvements --------------------------- Support for OpenTypeLayout tables / features for complex scripts and Advances Typography. Improved bidirectional text handling. Improved line-breaking, including for complex scripts e.g. Lao, Thai and Khmer. Updated page-breaking options. Automatic language mark-up and font selection using autoScriptToLang and autoLangToFont. Kashida for text-justification in arabic scripts. Index collation for non-ASCII characters. Index mark-up allowing control over layout using CSS. {PAGENO} and {nbpg} can use any of the number types as in list-style e.g. set in using pagenumstyle. CSS support for lists. Default stylesheet - mpdf.css - updated. Added CSS support ----------------- - lang attribute selector e.g. :lang(fr), [lang="fr"] - font-variant-position - font-variant-caps - font-variant-ligatures - font-variant-numeric - font-variant-alternates - Only [normal | historical-forms] supported (i.e. most are NOT supported) - font-variant - as above, and except for: east-asian-variant-values, east-asian-width-values, ruby - font-language-override - font-feature-settings - text-outline is now supported on TD/TH tags - hebrew, khmer, cambodian, lao, and cjk-decimal recognised as values for "list-style-type" in numbered lists and page numbering. - list-style-image and list-style-position - transform (on only) - text-decoration:overline - image-rendering - unicode-bidi (also tag) - vertical-align can use lengths e.g. 0.5em - line-stacking-strategy - line-stacking-shift ================ mPDF 5.7.4 15/12/2014 ================ Bug Fixes & Minor Additions --------------------------- - SVG images now support embedded images e.g. - SVG images now supports element e.g. , and also - SVG images now can use Autofont (see top of classes/svg.php file) - SVG images now has limited support for CSS classes (see top of classes/svg.php file) - SVG images - style inheritance improved - SVG images - improved handling of comments and other extraneous code - SVG images - fix to ensure opacity is reset before another element - SVG images - font-size not resetting after a element - SVG radial gradients bug (if the focus [fx,fy] lies outside circle defined by [cx,cy] and r) cf. pservers-grad-15-b.svg - SVG allows spaces in attribute definitions in or e.g. - SVG text which contains a < sign, it will break the text - now processed as < (despite the fact that this does not conform to XML spec) - SVG images - support automatic font selection and (minimal) use of CSS classes - cf. the defined constants at top of svg.php file - SVG images - text-anchor now supported as a CSS style, as well as an HTML attribute - CSS support for :nth-child() selector improved to fully support the draft CSS3 spec - http://www.w3.org/TR/selectors/#nth-child-pseudo [NB only works on table columns or rows] - text-indent when set as "em" - incorrectly calculated if last text in line in different font size than for block - CSS not applying cascaded styles on elements - [changed MergeCSS() type to INLINE for 'A', LEGEND, METER and PROGRESS] - fix for underline/strikethrough/overline so that line position(s) are based correctly on font-size/font in nested situations - Error: Strict warning: Only variables should be passed by reference - in PHP5.5.9 - bug accessing images from some servers (HTTP 403 Forbidden whn accessed using fopen etc.) - Setting page format incorrectly set default twice and missed some options - bug fixed in Overwrite() when specifying replacement as a string - barcode C93 - updated C93 code from TCPDF because of bug - incorrect checksum character for "153-2-4" - Tables - bug when using colspan across columns which may have a cell width specified cf. http://www.mpdf1.com/forum/discussion/2221/colspan-bug - Tables - cell height (when specified) is not resized when table is shrunk - Tables - if table width specified, but narrower than minimum cell wdith, and less than page width - table will expand to minimum cell width(s) as long as $keep_table_proportions = true - Tables - if using packTableData, and borders-collapse, wider border is overwriting content of adjacent cell Test case:
Hallo world
Hallo world
- Images - image height is reset proportional to original if width is set to maximum e.g. links, images and CSS url() e.g background-image - also to ignore "../" included as a query value - Barcodes with bottom numerals e.g. EAN-13 - incorrect numeral size when using core fonts -------------------------------- NB Spec. for embedded SVG images: as per http://www.w3.org/TR/2003/REC-SVG11-20030114/struct.html#ImageElement Attributes supported: x y xlink:href (required) - can be jpeg, png or gif image - not vector (SVG or WMF) image width (required) height (required) preserveAspectRatio Note: all attribute names and values are case-sensitive width and height cannot be assigned by CSS - must be attributes --------------------------------- ================ mPDF 5.7.3 24/8/2014 ================ Bug Fixes & Minor Additions --------------------------- - Tables - cellSpacing and cellPadding taking preference over CSS stylesheet - Tables - background images in table inside HTML Footer incorrectly positioned - Tables - cell in a nested table with a specified width, should determine width of parent table cell (cf. http://www.mpdf1.com/forum/discussion/1648/nested-table-bug-) - Tables - colspan (on a row after first row) exceeds number of columns in table - Gradients in Imported documents (mPDFI) causing error in some browsers - Fatal error after page-break-after:always on root level block element - Support for 'https/SSL' if file_get_contents_by_socket required (e.g. getting images with allow_url_fopen turned off) - Improved support for specified ports when getting external CSS stylesheets e.g. www.domain.com:80 - error accessing local .css files with dummy queries (cache-busting) e.g. mpdfstyleA4.css?v=2.0.18.9 - start of end tag in PRE incorrectly changed to < - error thrown when open.basedir restriction in effect (deleting temporary files) - image which forces pagebreak incorrectly positioned at top of page - [changes to avoid warning notices by checking if (isset(x)) before referencing it] - text with letter-spacing set inside table which needs to be resixed (shrunk) - letter-spacing was not adjusted - nested table incorrectly calculating width and unnecessarily wrapping text - vertical-align:super|sub can be nested using elements - inline elements can be nested e.g. text text13text text - CSS vertical-align:0.5em (or %) now supported - underline and strikethrough now use the parent inline block baseline/fontsize/color for child inline elements *** change in behaviour (Adjusts line height to take account of superscript and subscript except in tables) - nested table incorrectly calculating width and unnecessarily wrapping text - tables - font size carrying over from one nested table to the next nested table - tables - border set as attribute on overrides border set as CSS on not printing at all (since v5.7) - list-style incorrectly overriding list-style-type in cascading CSS - page-break-after:avoid not taking into account bottom padding and margin when estimating if next line can fit on page - images not displayed when using "https://" if images are referenced by src="//domain.com/image" - +aCJK incorrectly parsed when instantiating class e.g. new mpDF('ja+aCJK') - line-breaking - zero-width object at end of line (e.g. index entry) causing a space left untrimmed at end of line - ToC since v5.7 incorrectly handling non-ascii characters, entities or tags - cell height miscalculated when using hard-hyphenate - border colors set with transparency not working - transparency settings for stroke and fill interfering with one another - 'float' inside a HTML header/footer - not clearing the float before first line of text - error if script run across date change at midnight - temporary file name collisions (e.g. when processing images) if numerous users - position attribute not working - < (less-than sign) inside a PRE element, and NOT start of a valid tag, was incorrectly removed - file attachments not opening in Reader XI - JPG images not recognised if not containing JFIF or Exif markers - instance of preg_replace with /e modifier causing error in PHP 5.5 - correctly handle CSS URLs with no scheme - Index entries causing errors when repeat entries are used within page-break-inside:avoid, rotated tables etc. - table with fixed width column and long word in cell set to colspan across this column (adding spare width to all columns) - incorrect hyphenation if multiple soft-hyphens on line before break - SVG images - objects contained in being displayed - SVG images - multiple, or quoted fonts e.g. style="font-family:'lucida grande', verdana" not recognised - SVG images - line with opacity=0 still visible (only in some PDF viewers/browsers) - text in an SVG image displaying with incorrect font in some PDF viewers/browsers - SVG images - fill:RGB(0,0,0) not recognised when uppercase - background images using data:image\/(jpeg|gif|png);base64 format - error when reading in stylesheet New CSS support --------------- - added support for style="opacity:0.6;" in SVG images - previously only supported style="fill-opacity:0.6; stroke-opacity: 0.6;" - improved PNG image handling for some cases of alpha channel transparency - khmer, cambodian and lao recognised as list-style-type for numbered lists SVG Images ---------- Limited support for and ================ mPDF 5.7.1 1/09/2013 ================ 1) FILES: mpdf.php Bug fix; Dollar sign enclosed by
 tag causing error.
Test e.g.: 
Test $1.00 Test
Test $2.00 Test
Test $3.00 Test
Test $4.00 Test
----------------------------- 2) FILES: includes/functions.php AND mpdf.php Changes to preg_replace with /e modifier to use preg_replace_callback (/e depracated from PHP 5.5) ----------------------------- 3) FILES: classes/barcode.php Small change to function barcode_c128() which allows ASCII 0 - 31 to be used in C128A e.g. chr(13) in: ----------------------------- 4) FILES: mpdf.php Using $use_kwt ("keep-[heading]-with-table") if

before table is on 2 lines and pagebreak occurs after first line the first line is displayed at the bottom of the 2nd page. Edited so that $use_kwt only works if the HEADING is only one line. Else ignores (but prints correctly) ----------------------------- 5) FILES: mpdf.php Clearing old temporary files from _MPDF_TEMP_PATH will now ignore "hidden" files e.g. starting with a "." .htaccess, .gitignore etc. and also leave dummy.txt alone ----------------------------- =========================== mPDF 5.7 14/07/2013 =========================== Files changed ------------- config.php mpdf.php classes/tocontents.php classes/cssmgr.php classes/svg.php includes/functions.php includes/out.php examples/formsubmit.php [Important - Security update] Updated Example Files in /examples/ ----------------------------------- All example files mpdfstyleA4.css config.php ---------- Removed: $this->hyphenateTables $this->hyphenate $this->orphansAllowed Edited: "hyphens: manual" - Added to $this->defaultCSS $this->allowedCSStags now includes '|TEXTCIRCLE|DOTTAB' New: $this->decimal_align = array('DP'=>'.', 'DC'=>',', 'DM'=>"\xc2\xb7", 'DA'=>"\xd9\xab", 'DD'=>'-'); $this->h2toc = array('H1'=>0, 'H2'=>1, 'H3'=>2); $this->h2bookmarks = array('H1'=>0, 'H2'=>1, 'H3'=>2); $this->CJKforceend = false; // Forces overflowng punctuation to hang outside right margin (used with CJK script) Backwards compatability ----------------------- Changes in mPDF 5.7 may cause some changes to the way your documents appear. There are two main differences: 1) Hyphenation. To retain appearance compatible with earlier versions, set the CSS property "hyphens: auto" whenever you previously used $mpdf->hyphenate=true; 2) Table of Contents - appearance can now be controlled with CSS styles. By default, in mPDF 5.7, no styling is applied so you will get: - No indent (previous default of 5mm) - ($tocindent is ignored) - Any font, font-size set ($tocfont or $tocfontsize) will not work - HyperLinks will appear with your default appearance - usually blue and underlined - line spacing will be narrower (can use line-height or margin-top in CSS) New features / Improvements --------------------------- Layout of Table of Content ToC now controlled using CSS styles Text alignment on decimal mark inside tables Automatically generated bookmarks and/or ToC entries from H1 - H6 tags Support for unit of "rem" as size e.g. font-size: 1rem; Origin and clipping for background images and gradients controlled by CSS i.e. background-origin, background-size, background-clip Text-outline controlled by CSS (compatible with CSS3 spec.) Use of enhanced by custom CSS "outdent" property Image HTML attributes added: max-height, max-width, min-height and min-width Spotcolor can now be defined as it is used e.g. color: spot(PANTONE 534 EC, 100%, 85, 65, 47, 9); Lists - added support for "start" attribute in
    e.g.
      Hyphenation controlled using CSS, consistent with CSS3 spec. Line breaking improved to avoid breaks within words where HTML tags are used e.g. H20 Line breaking in CJK scripts improved (and ability to force hanging punctuation) Numerals in a CJK script are kept together RTL improved support for phrases containing numerals and \ and / Bidi override codes supported - Right-to-Left Embedding [RLE] U+202B, Left-to-Right Embedding [LRE] U+202A, U+202C POP DIRECTIONAL FORMATTING (PDF) Support for in HTML - uses it to SetBasePath for relative URLs. HTML tag - added support for or - converted to a soft-hyphen CSS now takes precedence over HTML attribute e.g.
- tables - if table width set to 100% and one cell/column is empty with no padding/border, sizing incorrectly (http://www.mpdf1.com/forum/discussion/1886/td-fontsize-in-nested-table-bug-#Item_5) -
added as recognised tag - CSS style transform supported on element (only) All transform functions are supported except matrix() i.e. translate(), translateX(), translateY(), skew(), skewX(), skewY(), scale(), scaleX(), scaleY(), rotate() NB When using Columns or Keep-with-table (use_kwt), cannot use transform - CSS background-color now supported on element - @page :first not recognised unless @page {} has styles set - left/right margins not allowed on @page :first ================ mPDF 5.7.2 28/12/2013 ================ Bug Fixes --------- -
Added CSS support ----------------- - max-height, max-width, min-height and min-width for images - "hyphens: none|manual|auto" as per CSS3 spec. - Decimal mark alignment e.g. text-align: "." center; - "rem" accepted as a valid (font)size in CSS e.g. font-size: 1.5rem - text-outline, text-outline-width and text-outline-color supported everywhere except in tables (blur not supported) - background-origin, background-size, background-clip are now supported everywhere except in tables - "visibility: hidden|visible|printonly|screenonly" for inline elements e.g. - Colors: device-cmyk(c,m,y,k) as per CSS3 spec. For consistency, device-cmyka also supported (not CSS3 spec) - "z-index" can be used to utilise layers in the PDF document - Custom CSS property added: "outdent" - opposite of indent The HTML elements and can now have CSS properties applied to them. Bug fixes --------- - SVG images - path including e.g. 1.234E-15 incorrectly parsed (not recognising capital E) - Tables - if a table starts when the Y position on page is below bottom margin caused endless loop - Float-ing DIVs - starting a float at bottom of page and it causes page break before anything output, second new page is forced - Tables - Warning notice now given in Table footer or header if placed after and table spans page - Columns - block with border-width wider than the length of the border line, line overflows - Columns - block with no padding containing a block with borders but no backgound colour, borders not printed - Table in Columns - when background color set by surrounding block element - colour missing for height of half bottom border. - TOCpagebreakByArray() when called by function was not adding the pagebreak - Border around block element - dashed not showing correctly (not resetting linewidth between different edges) - Double border in table - when background colour set in surrounding block element - shows as black line between the 2 bits of double - Borders around DIVs - "double" border problem if not all 4 sides equally - fixed - Borders around DIVs - solid (and double) borders overlap as in tables - now fixed so mitred joins as in browser [Inadvertently improves borders in Columns because of change in LineCap] - Page numbering - $mpdf->pagenumSuffix etc not suppressed in HTML headers/footers if number suppressed - Page numbering - Page number total {nbpg} incorrect - e.g. showing decreasing numbers through document, when ToC present - RTL numerals - incorrectly reversing a number followed by a comma - Transform to uppercase/lowercase not working for chars > ASCII 128 when using core fonts - TOCpagebreak - Not setting TOC-FOOTER - TOCpagebreak - toc-even-header-name etc. not working - Parsing some relative URLs incorrectly - Textcircle - when moved to next page by "page-break-inside: avoid" - Bookmarks will now work if jump more than one level e.g. 0,2,1 Inserts a new blank entry at level 1 - Paths to img or stylesheets - incorrectly reading "//www.domain.com" i.e. when starting with two / - data:image as background url() - incorrectly adjusting path on server if MPDF_PATH not specified (included in release mPDF 5.6.1) - Image problem if spaces or commas in path using http:// URL (included in release mPDF 5.6.1) - Image URL parsing rewritten to handle both urlencoded URLs and not urlencoded (included in release mPDF 5.6.1) - fixed to allow color, font-size and font-family to be correctly used, avoid dots being moved to new page, and to work in RTL - Table {colsum} summed figures in table header - list-style-type (custom) colour not working - toc-preHTML and toc-postHTML can now contain quotes =========================== mPDF 5.6 20/01/2013 =========================== Files changed ------------- mpdf.php config.php includes/functions.php classes/meter.php classes/directw.php config.php changes ------------------ $this->allowedCSStags - added HTML5 tags + textcircle AND $this->outerblocktags - added HTML5 tags $this->defaultCSS - added default CSS properties New features / Improvements --------------------------- CSS support added for for min-height, min-width, max-height and max-width in Images embedded in CSS improved to make it more robust, and background: url(data:image... now added to work HTML5 tags supported - as generic block elements:
CSS visibility: printonly, screenonly ------------------------------------- Roughly based on CSS Works on Block elements P, DIV etc, or Image Cannot nest / layer. Inner blocks/image with set visibility are ignored if already set on enclosing block element. (Block element) does not work inside table (image does) So 'visible' does nothing but is set as default (NB Changes output to PDF version 1.5) Incompatible with PDFA / PDFX 'visibility' Value: visible | hidden | (collapse | inherit) Initial: visible Applies to: all elements Inherited: yes The 'visibility' property specifies whether the boxes generated by an element are rendered. Invisible boxes still affect layout (set the 'display' property to 'none' to suppress box generation altogether). Values have the following meanings: visible The generated box is visible. hidden The generated box is invisible (fully transparent, nothing is drawn), but still affects layout. Furthermore, descendants of the element will be visible if they have 'visibility: visible'. collapse | inherit NOT supported in mPDF CUSTOM: printonly | screenonly Added VISIBILITY function $mpdf->SetVisibility('screenonly'); or 'printonly' 'visible' or 'hidden' (NB Changes output to PDF version 1.5) Incompatible with PDFA / PDFX CircularText ------------ function CircularText($x, $y, $r, $text, $align='top', $kerning=120, $fontwidth=100) { x: abscissa of center y: ordinate of center r: radius of circle text: text to be printed align: text alignment: top or bottom. Default value: top kerning: spacing between letters in percentage. Default value: 120. Zero is not allowed. fontwidth: width of letters in percentage. Default value: 100. Zero is not allowed - now uses Kerning between letters if useKerning == true (set manually see example) BookMark styling ---------------- New configurable variable to control appearance of Bookmarks e.g. $this->bookmarkStyles = array( 0 => array('color'=> array(0,64,128), 'style'=>'B'), 1 => array('color'=> array(128,0,0), 'style'=>''), 2 => array('color'=> array(0,128,0), 'style'=>'I'), ); Column sums ----------- (Also changed some preg_replace to str_replace to improve performance) To use: just add {colsum} to any cells of the table footer Add a number to specify a fixed number of decimal points e.g. will give you £123.40 The width of the column will be calculated using the actual string {colsum} as a placeholder. If you need the column to be wider, use underscores "_" to pad it e.g. {colsum2_____} Spread tables ------------- i.e. can split table (columns) across several pages width. CSS
Caption title here
£{colsum2}
Cannot use with: $this->kwt - ignored $this->table_rotate - ignored $this->table_keep_together - ignored $this->ColActive - cancels spread tables Messes up with: $mpdf->forcePortraitHeaders = true; $mpdf->forcePortraitMargins = true; Problems with CJK, and RTL Will do no resizing of fonts at all. Maximum width of column = page width i.e. will not split columns across pages - NB will keep colspan>1 on one page If table row too high for page will die with error message. Will override some specs for width if this creates conflicts Recommended to specify absolute value of width on each column. Bug fixes ========= Dottab - if text after dottab is hyperlinked then dots are underlined page-break-before now respects $mpdf->restoreBlockPagebreaks = true; i.e. will make pagebreak act like formfeed Annotation() function called directly with colorarray(r,g,b) Added urldecode to _getImage to cope with ../name%20of%20image.jpg Added urldecode AND htmlspecials_decode to href in link e.g. https://www.google.com/search?hl=en&q=mpdf&filename=name%20of%20file [barcode.php] Allow   in C39 codes - will be changed to spaces
inside a
not calculating table width correctly - leading to either upside down table or error width less than 1 character Depracated magic_quotes_runtime() in compress.php DIRECTW included twice in compress.php FORMS mark up for compress.php corrected double backslashes not preserved inside
 or