PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 1.7.3
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v1.7.3
trunk 1.5 1.6 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 All 71 releases
← All changes | mpdf/config.php +98 -146 1.8.11.7.3 View file →
@@ -1,10 +1,30 @@
1 1 <?php
2 2
3 +// mPDF 5.7
4 +// Specify whether to automatically generate bookmarks or ToC entries from h1 - h6 tags
5 +$this->h2bookmarks = array();
6 +$this->h2toc = array();
7 +/* Define arrays with e.g. the tag=>ToC-level
8 +Remember bookmark and ToC levels start at 0
9 +(does not work inside tables)
10 +Only the default ToC will be used if > 1 ToCs are defined for the document
11 +H1 - H6 must be uppercase
12 +$this->h2toc = array('H1'=>0, 'H2'=>1, 'H3'=>2);
13 +$this->h2bookmarks = array('H1'=>0, 'H2'=>1, 'H3'=>2);
14 +*/
3 15
16 +// mPDF 5.7
17 +// Text-align on decimal marks
18 +// Allowed characters for alignment on decimal marks. Additional codes must start with D
19 +// Non-ASCII characters should be in utf-8 encoding
20 +// DM - middot U+00B7
21 +// DA - arabic decimal mark U+066B
22 +$this->decimal_align = array('DP'=>'.', 'DC'=>',', 'DM'=>"\xc2\xb7", 'DA'=>"\xd9\xab", 'DD'=>'-');
4 23
5 24 // PAGING
6 25 $this->mirrorMargins = 0;
26 +$this->restoreBlockPagebreaks = false;
7 27 $this->forcePortraitMargins = false;
8 28 $this->displayDefaultOrientation = false;
9 29 $this->printers_info = false; // Adds date and page info for printer when using @page and "marks:crop;"
10 30 $this->bleedMargin = 5;
@@ -11,24 +31,23 @@
11 31 $this->crossMarkMargin = 5; // Distance of cross mark from margin in mm
12 32 $this->cropMarkMargin = 8; // Distance of crop mark from margin in mm
13 33 $this->cropMarkLength = 18; // Default length in mm of crop line
14 34 $this->nonPrintMargin = 8; // Non-printable border at edge of paper sheet in mm
15 -$this->defaultPagebreakType = 'cloneall'; // 'slice' or 'cloneall' or 'clonebycss' - for forced pagebreaks using <pagebreak />
16 - // Automatic pagebreaks (flow in text) are always 'slice'
17 -
35 +// mPDF 5.5
18 36 // Avoid just the border/background-color of the end of a block being moved on to next page
19 37 $this->margBuffer = 2; // Allows an (empty) end of block to extend beyond the bottom margin by this amount (mm)
20 38
39 +
21 40 // PAGE NUMBERING
22 -$this->pagenumPrefix='';
23 -$this->pagenumSuffix='';
24 -$this->nbpgPrefix='';
25 -$this->nbpgSuffix='';
26 -$this->defaultPageNumStyle = '1'; // 1:Decimal, A:uppercase alphabetic etc. (as for list-style shorthands)
41 +$this->pagenumPrefix;
42 +$this->pagenumSuffix;
43 +$this->nbpgPrefix;
44 +$this->nbpgSuffix;
27 45
46 +
28 47 // FONTS, LANGUAGES & CHARACTER SETS
29 48 // Set maximum size of TTF font file to allow non-subsets - in kB
30 -// Used to avoid a font e.g. Arial Unicode MS (perhaps used for substitutions) ever being fully embedded
49 +// Used to avoid e.g. Arial Unicode MS (perhaps used for substitutions) to ever be fully embedded
31 50 // NB Free serif is 1.5MB, most files are <= 600kB (most 200-400KB)
32 51 $this->maxTTFFilesize = 2000;
33 52
34 53 // this value determines whether to subset or not
@@ -36,9 +55,9 @@
36 55 // i.e. if ==40, mPDF will embed whole font if >40% characters in that font
37 56 // or embed subset if <40% characters
38 57 // 0 will force whole file to be embedded (NO subsetting)
39 58 // 100 will force always to subset
40 -// This value is overridden if you set new mPDF('s')
59 +// This value is overridden if you set new mPDF('s)
41 60 // and/or Can set at runtime
42 61 $this->percentSubset = 30;
43 62
44 63 $this->useAdobeCJK = false; // Uses Adobe CJK fonts for CJK languages
@@ -54,19 +73,11 @@
54 73
55 74 // Allows automatic character set conversion if "charset=xxx" detected in html header (WriteHTML() )
56 75 $this->allow_charset_conversion = true;
57 76 $this->biDirectional=false; // automatically determine BIDI text in LTR page
77 +$this->autoFontGroupSize = 2; // 1: individual words are spanned; 2: words+; 3: as big chunks as possible.
78 +$this->useLang = true; // Default changed in mPDF 4.0
58 79
59 -
60 -// AUTOMATIC FONT SELECTION
61 -// Based on script and/or language
62 -$this->autoScriptToLang = false; // mPDF 6.0 (similar to previously using function SetAutoFont() )
63 -$this->baseScript = 1; // =Latin; to set another base script see constants in classes/ucdn.php
64 -$this->autoVietnamese = true;
65 -$this->autoArabic = true;
66 -
67 -$this->autoLangToFont = false; // mPDF 6.0 (similar to old useLang)
68 -
69 80 $this->useSubstitutions = false; // Substitute missing characters in UTF-8(multibyte) documents - from other fonts
70 81 $this->falseBoldWeight = 5; // Weight for bold text when using an artificial (outline) bold; value 0 (off) - 10 (rec. max)
71 82
72 83 // CONFIGURATION
@@ -134,9 +145,9 @@
134 145 $this->table_error_report_param = ''; // Parameter which can be passed to show in error report i.e. chapter number being processed//
135 146
136 147
137 148 // ANNOTATIONS
138 -$this->title2annots = false; // Automaticaaly convert title="" properties in tags, to annotations
149 +$this->title2annots = false;
139 150 $this->annotSize = 0.5; // default mm for Adobe annotations - nominal
140 151 $this->annotMargin; // default position for Annotations
141 152 $this->annotOpacity = 0.5; // default opacity for Annotations
142 153
@@ -153,45 +164,11 @@
153 164 );
154 165 */
155 166 $this->bookmarkStyles = array();
156 167
157 -// Specify whether to automatically generate bookmarks from h1 - h6 tags
158 -$this->h2bookmarks = array();
159 -/* Define arrays with e.g. the tag=>Bookmark-level
160 -Remember bookmark levels start at 0
161 -(does not work inside tables)
162 -H1 - H6 must be uppercase
163 -$this->h2bookmarks = array('H1'=>0, 'H2'=>1, 'H3'=>2);
164 -*/
165 168
166 -
167 -// TABLE OF CONTENTS
168 -// Specify whether to automatically generate ToC entries from h1 - h6 tags
169 -$this->h2toc = array();
170 -/* Define arrays with e.g. the tag=>ToC-level
171 -Remember ToC levels start at 0
172 -(does not work inside tables)
173 -Only the default ToC will be used if > 1 ToCs are defined for the document
174 -H1 - H6 must be uppercase
175 -$this->h2toc = array('H1'=>0, 'H2'=>1, 'H3'=>2);
176 -*/
177 -
178 -// INDEX
179 -/* Specifies whether to repeat the main entry for each subEntry (true suppressess this)
180 -e.g. Mammal:dog ... Mammal:elephant ->
181 -[true]
182 -Mammal
183 -- dog
184 -- elephant
185 -[false]
186 -Mammal, dog
187 -Mammal, elephant
188 -*/
189 -$this->indexUseSubentries = true;
190 -
191 -
192 169 // CSS & STYLES
193 -$this->CSSselectMedia='print'; // screen, print, or any other CSS @media type (except "all")
170 +$this->CSSselectMedia='print'; // screen, print, or any other CSS @media type (not "all")
194 171
195 172
196 173 // PAGE HEADERS & FOOTERS
197 174 $this->forcePortraitHeaders = false;
@@ -203,9 +180,8 @@
203 180 $this->defaultfooterfontstyle = 'BI'; // '', or 'B' or 'I' or 'BI'
204 181 $this->defaultfooterline = 1; // 1 or 0 - line over the footer
205 182 $this->header_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize
206 183 $this->footer_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize
207 -
208 184 // If 'pad' margin-top sets fixed distance in mm (padding) between bottom of header and top of text.
209 185 // If 'stretch' margin-top sets a minimum distance in mm between top of page and top of text, which expands if header is too large to fit.
210 186 $this->setAutoTopMargin = false;
211 187 $this->setAutoBottomMargin = false;
@@ -215,42 +191,35 @@
215 191
216 192 // TABLES
217 193 $this->simpleTables = false; // Forces all cells to have same border, background etc. Improves performance
218 194 $this->packTableData = false; // Reduce memory usage processing tables (but with increased processing time)
195 +// Using disk to cache table data can reduce memory usage dramatically, but at a cost of increased
196 +// executon time and disk access (read and write)
197 +$this->cacheTables = false;
219 198
220 199 $this->ignore_table_percents = false;
221 200 $this->ignore_table_widths = false;
222 -$this->keep_table_proportions = true; // If table width set > page width, force resizing but keep relative sizes
201 +$this->keep_table_proportions = false; // If table width set > page width, force resizing but keep relative sizes
223 202 // Also forces respect of cell widths set by %
224 203 $this->shrink_tables_to_fit = 1.4; // automatically reduce fontsize in table if words would have to split ( not in CJK)
225 204 // 0 or false to disable; value (if set) gives maximum factor to reduce fontsize
226 205
227 206 $this->tableMinSizePriority = false; // If page-break-inside:avoid but cannot fit on full page without
228 - // exceeding autosize; setting this value to true will force respect for
207 + // exceeding autosize; setting this value to true will force respsect for
229 208 // autosize, and disable the page-break-inside:avoid
230 209
231 -$this->use_kwt = false; // "Keep-with-table" Attempts to keep a <h1> to <h6> tagged heading together
232 - // with a table which comes immediately after it.
210 +$this->use_kwt = false; // "Keep-with-table"
233 211 $this->iterationCounter = false; // Set to TRUE to use table Head iteration counter
234 212 $this->splitTableBorderWidth = 0; // Use table border (using this width in mm) when table breaks across pages
235 213 // Recommended to use small value e.g. 0.01
236 214
237 215
238 -// Allowed characters for text alignment on decimal marks. Additional codes must start with D
239 -// DM - middot U+00B7
240 -// DA - arabic decimal mark U+066B
241 -$this->decimal_align = array('DP'=>'.', 'DC'=>',', 'DM'=>"\xc2\xb7", 'DA'=>"\xd9\xab", 'DD'=>'-');
242 -
243 -
244 216 // IMAGES
245 -$this->interpolateImages = false; // if image-rendering=='auto', this defines value for image-rendering
246 - // if true, image interpolation shall be performed by a conforming reader
247 217 $this->img_dpi = 96; // Default dpi to output images if size not defined
248 218 // See also above "dpi"
249 219
250 -// TEzXT SPACING & JUSTIFICATION
251 -$this->useKerning = false; // Specify whether kerning should be used when CSS font-kerning="auto" used for HTML;
252 - // Also whether kerning should be used in any direct writing e.g. $mpdf->Text();
220 +// TEXT SPACING & JUSTIFICATION
221 +$this->useKerning = false; // true to use kerning
253 222 $this->justifyB4br = false; // In justified text, <BR> does not cause the preceding text to be justified in browsers
254 223 // Change to true to force justification (as in MS Word)
255 224
256 225 $this->tabSpaces = 8; // Number of spaces to replace for a TAB in <pre> sections
@@ -259,37 +228,20 @@
259 228 $this->jSmaxChar = 2; // Maximum spacing to allocate to character spacing. (0 = no maximum)
260 229
261 230 $this->jSmaxCharLast = 1; // Maximum character spacing allowed (carried over) when finishing a last line
262 231 $this->jSmaxWordLast = 2; // Maximum word spacing allowed (carried over) when finishing a last line
232 +$this->normalLineheight = 1.33; // Value used for line-height when CSS specified as 'normal' (default)
263 233
264 -// LINE SPACING & TEXT BASELINE
265 -$this->useFixedNormalLineHeight = false; // Use the fixed factor ($this->normalLineheight) when line-height:normal
266 - // Compatible with mPDF versions < 6
267 -
268 -$this->useFixedTextBaseline = false; // Use a fixed ratio ($this->baselineC) to set the text baseline
269 - // Compatible with mPDF versions < 6
270 -
271 -$this->normalLineheight = 1.33; // Default Value used for line-height when CSS specified as 'normal' (default)
272 -
273 -$this->adjustFontDescLineheight = 1.14; // Correction factor applied to lineheight values derived from 'win', 'mac', 'winTypo'
274 -
275 -
276 234 // Small Caps
277 235 $this->smCapsScale = 0.75; // Factor of 1 to scale capital letters
278 236 $this->smCapsStretch = 110; // % to stretch small caps horizontally (i.e. 100 = no stretch)
279 237
280 -// Line-breaking
281 -// The alternative to these next 2 is the use of U+200B Zero-width space
282 -// These are only effective if using OTL for the fonts
283 -$this->useDictionaryLBR = true; // Use the dictionaries to determine line-breaking in Lao, Khmer and Thai
284 -$this->useTibetanLBR = true; // Use the inbuilt algorithm to determine line-breaking in Tibetan
285 -
286 238 // CJK Line-breaking
287 239 $this->allowCJKorphans = true; // FALSE=always wrap to next line; TRUE=squeeze or overflow
288 240 $this->allowCJKoverflow = false; // FALSE=squeeze; TRUE=overflow (only some characters, and disabled in tables)
289 241 $this->CJKforceend = false; // Forces overflowng punctuation to hang outside right margin mPDF 5.6.40
290 242
291 -// HYPHENATION (using word dictionaries)
243 +// HYPHENATION
292 244 $this->SHYlang = "en"; // Should be one of: 'en','de','es','fi','fr','it','nl','pl','ru','sv'
293 245 $this->SHYleftmin = 2;
294 246 $this->SHYrightmin = 2;
295 247 $this->SHYcharmin = 2;
@@ -301,26 +253,12 @@
301 253 $this->ColGap=5;
302 254
303 255
304 256 // LISTS
305 -// mPDF 6
306 -$this->list_auto_mode = 'browser'; // 'mpdf' or 'browser' - Specify whether to use mPDF custom method of automatic
307 - // indentation of lists, or standard browser-compatible
308 - // custom mPDF method is ignored if list-style-position: inside, or image used for marker (or custom U+)
309 -$this->list_indent_default = '40px'; // List Indentation when set to 'auto' if using standard browser-compatible method
310 -$this->list_indent_default_mpdf = '0em'; // List Indentation when set to 'auto' if using mPDF custom method
311 -$this->list_indent_first_level = 0; // 1/0 yes/no to indent first level of list, if using mPDF custom method
257 +$this->list_align_style = 'R'; // Determines alignment of numbers in numbered lists
258 +$this->list_indent_first_level = 0; // 1/0 yex/no to indent first level of list
259 +$this->list_number_suffix = '.'; // Content to follow a numbered list marker e.g. '.' gives 1. or IV.; ')' gives 1) or a)
312 260
313 -$this->list_number_suffix = '.'; // Content to follow a numbered list marker e.g. '.' gives 1. or IV.; ')' gives 1) or a)
314 -
315 -// To specify a bullet size and offset proprtional to the list item's font size:
316 -//$this->list_marker_offset = '0.45em'; // Offset (CSS length) of list marker bullets (disc/circle/square)
317 -//$this->list_symbol_size = '0.31em'; // Size (CSS) of list marker bullets (disc/circle/square)
318 -// Browsers use a fixed bullet size and offset
319 -$this->list_marker_offset = '5.5pt'; // Offset (CSS length) of list marker bullets (disc/circle/square)
320 -$this->list_symbol_size = '3.6pt'; // Size (CSS) of list marker bullets (disc/circle/square)
321 -
322 -
323 261 // ACTIVE FORMS
324 262 $this->useActiveForms = false;
325 263
326 264 // WATERMARKS
@@ -351,9 +289,8 @@
351 289 'TEXT-INDENT' => '0pt',
352 290 'LINE-HEIGHT' => 'normal',
353 291 'MARGIN-COLLAPSE' => 'collapse', /* Custom property to collapse top/bottom margins at top/bottom of page - ignored in tables/lists */
354 292 'HYPHENS' => 'manual', /* mPDF 5.6.08 */
355 - 'FONT-KERNING' => 'auto', /* mPDF 6 */
356 293 ),
357 294 'P' => array(
358 295 'MARGIN' => '1.12em 0',
359 296 ),
@@ -483,16 +420,14 @@
483 420 'COLOR' => '#0000FF',
484 421 'TEXT-DECORATION' => 'underline',
485 422 ),
486 423 'UL' => array(
487 - 'PADDING' => '0 auto', /* mPDF 6 */
488 - 'MARGIN-TOP' => '0.83em', /* mPDF 6 */
489 - 'MARGIN-BOTTOM' => '0.83em', /* mPDF 6 */
424 + 'MARGIN' => '0.83em 0', /* only applied to top-level of nested lists */
425 + 'TEXT-INDENT' => '1.3em', /* Custom effect - list indent */
490 426 ),
491 427 'OL' => array(
492 - 'PADDING' => '0 auto', /* mPDF 6 */
493 - 'MARGIN-TOP' => '0.83em', /* mPDF 6 */
494 - 'MARGIN-BOTTOM' => '0.83em', /* mPDF 6 */
428 + 'MARGIN' => '0.83em 0', /* only applied to top-level of nested lists */
429 + 'TEXT-INDENT' => '1.3em', /* Custom effect - list indent */
495 430 ),
496 431 'DL' => array(
497 432 'MARGIN' => '1.67em 0',
498 433 ),
@@ -507,10 +442,8 @@
507 442 'BORDER-SPACING' => '2px',
508 443 'EMPTY-CELLS' => 'show',
509 444 'LINE-HEIGHT' => '1.2',
510 445 'VERTICAL-ALIGN' => 'middle',
511 - 'HYPHENS' => 'manual', /* mPDF 6 */
512 - 'FONT-KERNING' => 'auto', /* mPDF 6 */
513 446 ),
514 447 'THEAD' => array(
515 448 ),
516 449 'TFOOT' => array(
@@ -534,9 +467,8 @@
534 467 ),
535 468 'IMG' => array(
536 469 'MARGIN' => '0',
537 470 'VERTICAL-ALIGN' => 'baseline',
538 - 'IMAGE-RENDERING' => 'auto',
539 471 ),
540 472 'INPUT' => array(
541 473 'FONT-FAMILY' => 'sans-serif',
542 474 'VERTICAL-ALIGN' => 'middle',
@@ -566,55 +498,75 @@
566 498 // Hyphenation
567 499 $this->SHYlanguages = array('en','de','es','fi','fr','it','nl','pl','ru','sv'); // existing defined patterns
568 500
569 501 $this->default_lineheight_correction=1.2; // Value 1 sets lineheight=fontsize height;
570 - // Value used if line-height not set by CSS (usually is)
502 + // Value used if line-height not set by CSS (usuallly is)
571 503
572 504 $this->fontsizes = array('XX-SMALL'=>0.7, 'X-SMALL'=>0.77, 'SMALL'=>0.86, 'MEDIUM'=>1, 'LARGE'=>1.2, 'X-LARGE'=>1.5, 'XX-LARGE'=>2);
573 505
574 506 // CHARACTER PATTERN MATCHES TO DETECT LANGUAGES
575 507 // pattern used to detect RTL characters -> force RTL
576 - $this->pregRTLchars = "\x{0590}-\x{06FF}\x{0700}-\x{085F}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}"; // 085F to include Mandaic
508 + $this->pregRTLchars = "\x{0590}-\x{06FF}\x{0700}-\x{083E}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}";
577 509
510 + // CJK Chars which require changing and are distinctive of specific charset
511 + $this->pregUHCchars = "\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}";
512 + $this->pregSJISchars = "\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3190}-\x{319F}\x{31F0}-\x{31FF}";
513 +
578 514 // Chars which distinguish CJK but not between different
579 515 $this->pregCJKchars = "\x{1100}-\x{11FF}\x{2E80}-\x{A4CF}\x{A800}-\x{D7AF}\x{F900}-\x{FAFF}\x{FE30}-\x{FE6F}\x{FF00}-\x{FFEF}\x{20000}-\x{2FA1F}";
580 516
581 - // For CJK Line-breaking - References:
582 - // http://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages
583 - // http://msdn.microsoft.com/en-us/goglobal/bb688158.aspx - listed using charsets
584 - // Word wrapping in other langauges - http://msdn.microsoft.com/en-us/goglobal/bb688158.aspx
585 - // Word wrapping in Japanese/Korean - http://en.wikipedia.org/wiki/Kinsoku_shori
586 - // Unicode character types: http://unicode.org/reports/tr14/
587 - // http://xml.ascc.net/en/utf-8/faq/zhl10n-faq-xsl.html#qb1
588 - // ECMA-376 4th edition Part 1
589 - // http://www.ecma-international.org/publications/standards/Ecma-376.htm
517 + // For CJK Line-breaking
518 + //Leading characters - Not allowed at end of line
519 + $this->CJKleading = "\$\(\*\[\{\x{00a3}\x{00a5}\x{00ab}\x{00b7}\x{2018}\x{201c}\x{2035}\x{3005}\x{3007}\x{3008}\x{300a}\x{300c}\x{300e}\x{3010}\x{3014}\x{3016}\x{3018}\x{301d}\x{fe34}\x{fe57}\x{fe59}\x{fe5b}\x{ff04}\x{ff08}\x{ff0e}\x{ff3b}\x{ff5b}\x{ff5f}\x{ffe1}\x{ffe5}\x{ffe6}";
520 + // Following characters - Not allowed at start
521 + $this->CJKfollowing = "!%\),\.:;>\?\]\}\x{00a2}\x{00a8}\x{00b0}\x{00b7}\x{00bb}\x{02c7}\x{02c9}\x{2010}\x{2013}-\x{2016}\x{2019}\x{201d}-\x{201f}\x{2020}-\x{2022}\x{2025}\x{2027}\x{203a}\x{203c}\x{2047}-\x{2049}\x{2103}\x{2236}\x{2574}\x{3001}-\x{3003}\x{3005}\x{3006}\x{3009}\x{300b}\x{300d}\x{300f}\x{3011}\x{3015}\x{3017}\x{3019}\x{301c}\x{301e}\x{301f}\x{303b}\x{3041}\x{3043}\x{3045}\x{3047}\x{3049}\x{3063}\x{3083}\x{3085}\x{3087}\x{308e}\x{3095}\x{3096}\x{30a0}\x{30a1}\x{30a3}\x{30a5}\x{30a7}\x{30a9}\x{30c3}\x{30e3}\x{30e5}\x{30e7}\x{30ee}\x{30f5}\x{30f6}\x{30fb}-\x{30fe}\x{31f0}-\x{31ff}\x{fe30}-\x{fe33}\x{fe50}-\x{fe56}\x{fe58}\x{fe5a}\x{fe5c}\x{ff01}\x{ff02}\x{ff05}\x{ff07}\x{ff09}\x{ff0c}\x{ff0e}\x{ff1a}\x{ff1b}\x{ff1f}\x{ff3d}\x{ff40}\x{ff5c}-\x{ff5e}\x{ff60}\x{ff64}";
522 + // Characters which are allowed to overflow the right margin
523 + $this->CJKoverflow = "\.,\x{ff61}\x{ff64}\x{3001}\x{3002}\x{ff0c}\x{ff0e}";
590 524
591 - //Leading characters - Not allowed at end of line
592 - $this->CJKleading = "\$\(\*\[\{\x{00a3}\x{00a5}\x{00ab}\x{00b7}\x{2018}\x{201c}\x{2035}\x{3005}\x{3007}\x{3008}\x{300a}\x{300c}\x{300e}\x{3010}\x{3014}\x{3016}\x{3018}\x{301d}\x{fe34}\x{fe35}\x{fe37}\x{fe39}\x{fe3b}\x{fe3d}\x{fe3f}\x{fe41}\x{fe43}\x{fe57}\x{fe59}\x{fe5b}\x{fe5d}\x{ff04}\x{ff08}\x{ff0e}\x{ff3b}\x{ff5b}\x{ff5f}\x{ff62}\x{ffe1}\x{ffe5}\x{ffe6}";
593 525
594 - // Following characters - Not allowed at start
595 - $this->CJKfollowing = "!%\),\.:;>\?\]\}\x{00a2}\x{00a8}\x{00b0}\x{00b7}\x{00bb}\x{02c7}\x{02c9}\x{2010}\x{2013}-\x{2016}\x{2019}\x{201d}-\x{201f}\x{2020}-\x{2022}\x{2025}-\x{2027}\x{2030}\x{2032}\x{2033}\x{203a}\x{203c}\x{2047}-\x{2049}\x{2103}\x{2236}\x{2574}\x{3001}-\x{3003}\x{3005}\x{3006}\x{3009}\x{300b}\x{300d}\x{300f}\x{3011}\x{3015}\x{3017}\x{3019}\x{301c}\x{301e}\x{301f}\x{303b}\x{3041}\x{3043}\x{3045}\x{3047}\x{3049}\x{3063}\x{3083}\x{3085}\x{3087}\x{308e}\x{3095}\x{3096}\x{309b}-\x{309e}\x{30a0}\x{30a1}\x{30a3}\x{30a5}\x{30a7}\x{30a9}\x{30c3}\x{30e3}\x{30e5}\x{30e7}\x{30ee}\x{30f5}\x{30f6}\x{30fb}-\x{30fd}\x{30fe}\x{31f0}-\x{31ff}\x{fe30}\x{fe31}-\x{fe34}\x{fe36}\x{fe38}\x{fe3a}\x{fe3c}\x{fe3e}\x{fe40}\x{fe42}\x{fe44}\x{fe4f}\x{fe50}-\x{fe58}\x{fe5a}\x{fe5c}-\x{fe5e}\x{ff01}\x{ff02}\x{ff05}\x{ff07}\x{ff09}\x{ff0c}\x{ff0e}\x{ff1a}\x{ff1b}\x{ff1f}\x{ff3d}\x{ff40}\x{ff5c}-\x{ff5e}\x{ff60}\x{ff61}\x{ff63}-\x{ff65}\x{ff9e}\x{ff9f}\x{ffe0}";
596 526
597 - // Characters which are allowed to overflow the right margin (from CSS3 http://www.w3.org/TR/2012/WD-css3-text-20120814/#hanging-punctuation)
598 - $this->CJKoverflow = "\.,\x{ff61}\x{ff64}\x{3001}\x{3002}\x{fe50}-\x{fe52}\x{ff0c}\x{ff0e}";
527 + // ASCII Chars which shouldn't break string
528 + // Use for very specific words
529 + $this->pregASCIIchars1 = "\x{0021}-\x{002E}\x{0030}-\x{003B}?"; // no [SPACE]
530 + // Use for words+
531 + $this->pregASCIIchars2 = "\x{0020}-\x{002E}\x{0030}-\x{003B}?"; // [SPACE] punctuation and 0-9
532 + // Use for chunks > words
533 + $this->pregASCIIchars3 = "\x{0000}-\x{002E}\x{0030}-\x{003B}\x{003F}-\x{007E}"; // all except <>
534 + // Vietnamese - specific
535 + $this->pregVIETchars = "\x{01A0}\x{01A1}\x{01AF}\x{01B0}\x{1EA0}-\x{1EF1}";
536 + // Vietnamese - Chars which shouldn't break string
537 + $this->pregVIETPluschars = "\x{0000}-\x{003B}\x{003F}-\x{00FF}\x{0300}-\x{036F}\x{0102}\x{0103}\x{0110}\x{0111}\x{0128}\x{0129}\x{0168}\x{0169}\x{1EF1}-\x{1EF9}"; // omits < >
599 538
600 - // mPDF 6
601 - // Used for preventing letter-spacing in cursive scripts
602 - // NB The following scripts in Unicode 6 are considered to be cursive scripts,
603 - // and do not allow expansion opportunities between their letters:
604 - // Arabic, Syriac, Mandaic, Mongolian, N'Ko, Phags Pa
605 - $this->pregCURSchars = "\x{0590}-\x{083E}\x{0900}-\x{0DFF}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}";
539 + // Arabic
540 + $this->pregARABICchars = "\x{0600}-\x{06FF}\x{0750}-\x{077F}\x{FB50}-\x{FDFD}\x{FE70}-\x{FEFF}";
541 + // Characters of Urdu, Pashto, Sindhi (but NOT arabic or persian/farsi) [not covered by DejavuSans font]
542 + $this->pregNonARABICchars = "\x{0671}-\x{067D}\x{067F}-\x{0685}\x{0687}-\x{0697}\x{0699}-\x{06A8}\x{06AA}-\x{06AE}\x{06B0}-\x{06CB}\x{06CD}-\x{06D3}";
606 543
544 + $this->pregHEBchars = "\x{0590}-\x{05FF}\x{FB00}-\x{FB49}"; // Hebrew
607 545
546 + // INDIC
547 + $this->pregHIchars = "\x{0900}-\x{0963}\x{0966}-\x{097F}"; // Devanagari (Hindi) minus the common indic punctuation 0964,0965
548 + $this->pregBNchars = "\x{0980}-\x{09FF}"; // Bengali
549 + $this->pregPAchars = "\x{0A00}-\x{0A7F}"; // Gurmukhi (Punjabi)
550 + $this->pregGUchars = "\x{0A80}-\x{0AFF}"; // Gujarati
551 + $this->pregORchars = "\x{0B00}-\x{0B7F}"; // Oriya
552 + $this->pregTAchars = "\x{0B80}-\x{0BFF}"; // Tamil
553 + $this->pregTEchars = "\x{0C00}-\x{0C7F}"; // Telugu
554 + $this->pregKNchars = "\x{0C80}-\x{0CFF}"; // Kannada
555 + $this->pregMLchars = "\x{0D00}-\x{0D7F}"; // Malayalam
556 + $this->pregSHchars = "\x{0D80}-\x{0DFF}"; // Sinhala
557 +
558 + $this->pregINDextra = "\x{200B}-\x{200D}\x{0964}\x{0965}\x{0020}-\x{0022}\x{0024}-\x{002E}\x{003A}-\x{003F}\x{005B}-\x{0060}\x{007B}-\x{007E}\x{00A0}";
559 + // 200B-D=Zero-width joiners; 0964,0965=Generic Indic punctuation; NBSP & general punctuation (excludes # and / so can use in autoFont() )
560 +
608 561 $this->allowedCSStags = 'DIV|P|H1|H2|H3|H4|H5|H6|FORM|IMG|A|BODY|TABLE|HR|THEAD|TFOOT|TBODY|TH|TR|TD|UL|OL|LI|PRE|BLOCKQUOTE|ADDRESS|DL|DT|DD';
609 -$this->allowedCSStags .= '|ARTICLE|ASIDE|FIGURE|FIGCAPTION|FOOTER|HEADER|HGROUP|NAV|SECTION|MAIN|MARK|DETAILS|SUMMARY|METER|PROGRESS|TIME';
562 +$this->allowedCSStags .= '|ARTICLE|ASIDE|FIGURE|FIGCAPTION|FOOTER|HEADER|HGROUP|NAV|SECTION|MARK|DETAILS|SUMMARY|METER|PROGRESS|TIME'; // mPDF 5.5.09
610 563 $this->allowedCSStags .= '|SPAN|TT|I|B|BIG|SMALL|EM|STRONG|DFN|CODE|SAMP|KBD|VAR|CITE|ABBR|ACRONYM|STRIKE|S|U|DEL|INS|Q|FONT';
611 -$this->allowedCSStags .= '|SELECT|INPUT|TEXTAREA|CAPTION|FIELDSET|LEGEND';
612 -$this->allowedCSStags .= '|TEXTCIRCLE|DOTTAB|BDO|BDI';
564 +$this->allowedCSStags .= '|SELECT|INPUT|TEXTAREA|CAPTION|FIELDSET|LEGEND'; // mPDF 5.4.18
565 +$this->allowedCSStags .= '|TEXTCIRCLE|DOTTAB'; // mPDF 5.5.23 // mPDF 5.6.33
613 566
614 -$this->outerblocktags = array('DIV','FORM','CENTER','DL','FIELDSET','ARTICLE','ASIDE','FIGURE','FIGCAPTION', 'FOOTER','HEADER','HGROUP','MAIN','NAV','SECTION','DETAILS','SUMMARY','UL','OL','LI');
567 +$this->outerblocktags = array('DIV','FORM','CENTER','DL','FIELDSET','ARTICLE','ASIDE','FIGURE','FIGCAPTION', 'FOOTER','HEADER','HGROUP','NAV','SECTION','DETAILS','SUMMARY'); // mPDF 5.5.09 // mPDF 5.5.22
615 568 $this->innerblocktags = array('P','BLOCKQUOTE','ADDRESS','PRE','H1','H2','H3','H4','H5','H6','DT','DD','CAPTION');
616 -
617 569
618 570
619 571
620 572 ?>