PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / 1.5
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin v1.5
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 +132 -204 1.8.21.5 View file →
@@ -1,34 +1,34 @@
1 1 <?php
2 2
3 +// mPDF 5.4
4 +// Using disk to cache table data can reduce memory usage dramatically, but at a cost of increased
5 +// executon time and disk access (read and write)
6 +$this->cacheTables = false;
3 7
8 +// Set an optional array to specify appearance of Bookmarks (by level)
9 +// Default values are Black and normal style
10 +/*
11 + Example:
12 +$this->bookmarkStyles = array(
13 + 0 => array('color'=> array(0,64,128), 'style'=>'B'),
14 + 1 => array('color'=> array(128,0,0), 'style'=>''),
15 + 2 => array('color'=> array(0,128,0), 'style'=>'I'),
16 +);
17 +*/
18 +$this->bookmarkStyles = array();
4 19
5 -// PAGING
6 -$this->mirrorMargins = 0;
7 -$this->forcePortraitMargins = false;
8 -$this->displayDefaultOrientation = false;
9 -$this->printers_info = false; // Adds date and page info for printer when using @page and "marks:crop;"
10 -$this->bleedMargin = 5;
11 -$this->crossMarkMargin = 5; // Distance of cross mark from margin in mm
12 -$this->cropMarkMargin = 8; // Distance of crop mark from margin in mm
13 -$this->cropMarkLength = 18; // Default length in mm of crop line
14 -$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'
20 +// ACTIVE FORMS
21 +$this->useActiveForms = false;
17 22
18 -// Avoid just the border/background-color of the end of a block being moved on to next page
19 -$this->margBuffer = 2; // Allows an (empty) end of block to extend beyond the bottom margin by this amount (mm)
23 +// When embedding full TTF font files, remakes the font file using only core tables
24 +// May improve function with some PostScript printers (GhostScript/GSView)
25 +// Does not work with TTC font collections
26 +// Slightly smaller file; increased processing time
27 +$this->repackageTTF = false;
20 28
21 -// 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)
27 -
28 -// FONTS, LANGUAGES & CHARACTER SETS
29 29 // 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
30 +// Used to avoid e.g. Arial Unicode MS (perhaps used for substitutions) to ever be fully embedded
31 31 // NB Free serif is 1.5MB, most files are <= 600kB (most 200-400KB)
32 32 $this->maxTTFFilesize = 2000;
33 33
34 34 // this value determines whether to subset or not
@@ -36,9 +36,9 @@
36 36 // i.e. if ==40, mPDF will embed whole font if >40% characters in that font
37 37 // or embed subset if <40% characters
38 38 // 0 will force whole file to be embedded (NO subsetting)
39 39 // 100 will force always to subset
40 -// This value is overridden if you set new mPDF('s')
40 +// This value is overridden if you set new mPDF('s)
41 41 // and/or Can set at runtime
42 42 $this->percentSubset = 30;
43 43
44 44 $this->useAdobeCJK = false; // Uses Adobe CJK fonts for CJK languages
@@ -45,28 +45,42 @@
45 45 // default TRUE; only set false if you have defined some available fonts that support CJK
46 46 // If true this will not stop use of other CJK fonts if specified by font-family:
47 47 // and vice versa i.e. only dictates behaviour when specified by lang="" incl. AutoFont()
48 48
49 -// When embedding full TTF font files, remakes the font file using only core tables
50 -// May improve function with some PostScript printers (GhostScript/GSView)
51 -// Does not work with TTC font collections
52 -// Slightly smaller file; increased processing time
53 -$this->repackageTTF = false;
54 49
50 +// Small Caps
51 +$this->smCapsScale = 0.75; // Factor of 1 to scale capital letters
52 +$this->smCapsStretch = 110; // % to stretch small caps horizontally (i.e. 100 = no stretch)
53 +
54 +
55 +// PAGING
56 +$this->mirrorMargins = 0;
57 +$this->restoreBlockPagebreaks = false;
58 +$this->forcePortraitMargins = false;
59 +$this->displayDefaultOrientation = false;
60 +$this->printers_info = false; // Adds date and page info for printer when using @page and "marks:crop;"
61 +$this->bleedMargin = 5; // mPDF 5.0.047
62 +$this->crossMarkMargin = 5; // Distance of cross mark from margin in mm
63 +$this->cropMarkMargin = 8; // Distance of crop mark from margin in mm
64 +$this->cropMarkLength = 18; // Default length in mm of crop line
65 +$this->nonPrintMargin = 8; // Non-printable border at edge of paper sheet in mm
66 +
67 +
68 +// PAGE NUMBERING
69 +// Page numbering - Conditional Text
70 +$this->pagenumPrefix;
71 +$this->pagenumSuffix;
72 +$this->nbpgPrefix;
73 +$this->nbpgSuffix;
74 +
75 +
76 +// FONTS LANGUAGES & CHARACTER SETS
55 77 // Allows automatic character set conversion if "charset=xxx" detected in html header (WriteHTML() )
56 78 $this->allow_charset_conversion = true;
57 79 $this->biDirectional=false; // automatically determine BIDI text in LTR page
80 +$this->autoFontGroupSize = 2; // 1: individual words are spanned; 2: words+; 3: as big chunks as possible.
81 +$this->useLang = true; // Default changed in mPDF 4.0
58 82
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 83 $this->useSubstitutions = false; // Substitute missing characters in UTF-8(multibyte) documents - from other fonts
70 84 $this->falseBoldWeight = 5; // Weight for bold text when using an artificial (outline) bold; value 0 (off) - 10 (rec. max)
71 85
72 86 // CONFIGURATION
@@ -85,24 +99,14 @@
85 99
86 100 // Automatically correct for tags where HTML specifies optional end tags e.g. P,LI,DD,TD
87 101 // If you are confident input html is valid XHTML, turning this off may make it more reliable(?)
88 102 $this->allow_html_optional_endtags = true;
89 -
90 103 $this->ignore_invalid_utf8 = false;
91 104 $this->text_input_as_HTML = false; // Converts all entities in Text inputs to UTF-8 before encoding
92 105 $this->useGraphs = false;
93 106
94 107
95 -// When writing a block element with position:fixed and overflow:auto, mPDF scales it down to fit in the space
96 -// by repeatedly rewriting it and making adjustments. These values give the adjustments used, depending how far out
97 -// the previous guess was. The lower the number, the quicker it will finish, but the less accurate the fit may be.
98 -// FPR1 is for coarse adjustments, and FPR4 for fine adjustments when it is getting closer.
99 -$this->incrementFPR1 = 10; // i.e. will alter by 1/[10]th of width and try again until within closer limits
100 -$this->incrementFPR2 = 20;
101 -$this->incrementFPR3 = 30;
102 -$this->incrementFPR4 = 50; // i.e. will alter by 1/[50]th of width and try again when it nearly fits
103 108
104 -
105 109 // COLORSPACE
106 110 // 1 - allow GRAYSCALE only [convert CMYK/RGB->gray]
107 111 // 2 - allow RGB / SPOT COLOR / Grayscale [convert CMYK->RGB]
108 112 // 3 - allow CMYK / SPOT COLOR / Grayscale [convert RGB->CMYK]
@@ -118,14 +122,24 @@
118 122 $this->PDFA = false; // true=Forces compliance with PDFA-1b spec
119 123 // Can use with $this->restrictColorSpace=3 (for a CMYK file)
120 124 // Any other settings, uses RGB profile
121 125 $this->PDFAauto = false; // Overrides warnings making changes when possible to force PDFA1-b compliance
126 +
122 127 $this->ICCProfile = ''; // Colour profile OutputIntent
123 128 // sRGB_IEC61966-2-1 (=default if blank and PDFA), or other added .icc profile
124 129 // Must be CMYK for PDFX, or appropriate type for PDFA(RGB or CMYK)
125 130
126 131
132 +// When writing a block element with position:fixed and overflow:auto, mPDF scales it down to fit in the space
133 +// by repeatedly rewriting it and making adjustments. These values give the adjustments used, depending how far out
134 +// the previous guess was. The lower the number, the quicker it will finish, but the less accurate the fit may be.
135 +// FPR1 is for coarse adjustments, and FPR4 for fine adjustments when it is getting closer.
136 +$this->incrementFPR1 = 10; // i.e. will alter by 1/[10]th of width and try again until within closer limits
137 +$this->incrementFPR2 = 20;
138 +$this->incrementFPR3 = 30;
139 +$this->incrementFPR4 = 50; // i.e. will alter by 1/[50]th of width and try again when it nearly fits
127 140
141 +
128 142 // DEBUGGING & DEVELOPERS
129 143 $this->showStats = false;
130 144 $this->debug = false;
131 145 $this->debugfonts = false; // Checks and reports on errors when parsing TTF files - adds significantly to processing time
@@ -134,9 +148,9 @@
134 148 $this->table_error_report_param = ''; // Parameter which can be passed to show in error report i.e. chapter number being processed//
135 149
136 150
137 151 // ANNOTATIONS
138 -$this->title2annots = false; // Automaticaaly convert title="" properties in tags, to annotations
152 +$this->title2annots = false;
139 153 $this->annotSize = 0.5; // default mm for Adobe annotations - nominal
140 154 $this->annotMargin; // default position for Annotations
141 155 $this->annotOpacity = 0.5; // default opacity for Annotations
142 156
@@ -141,57 +155,11 @@
141 155 $this->annotOpacity = 0.5; // default opacity for Annotations
142 156
143 157 // BOOKMARKS
144 158 $this->anchor2Bookmark = 0; // makes <a name=""> into a bookmark as well as internal link target; 1 = just name; 2 = name (p.34)
145 -// Set an optional array to specify appearance of Bookmarks (by level)
146 -// Default values are Black and normal style
147 -/*
148 - Example:
149 -$this->bookmarkStyles = array(
150 - 0 => array('color'=> array(0,64,128), 'style'=>'B'),
151 - 1 => array('color'=> array(128,0,0), 'style'=>''),
152 - 2 => array('color'=> array(0,128,0), 'style'=>'I'),
153 -);
154 -*/
155 -$this->bookmarkStyles = array();
156 159
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 -
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 160 // CSS & STYLES
193 -$this->CSSselectMedia='print'; // screen, print, or any other CSS @media type (except "all")
161 +$this->CSSselectMedia='print'; // screen, print, or any other CSS @media type (not "all")
194 162
195 163
196 164 // PAGE HEADERS & FOOTERS
197 165 $this->forcePortraitHeaders = false;
@@ -203,9 +171,8 @@
203 171 $this->defaultfooterfontstyle = 'BI'; // '', or 'B' or 'I' or 'BI'
204 172 $this->defaultfooterline = 1; // 1 or 0 - line over the footer
205 173 $this->header_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize
206 174 $this->footer_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize
207 -
208 175 // If 'pad' margin-top sets fixed distance in mm (padding) between bottom of header and top of text.
209 176 // 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 177 $this->setAutoTopMargin = false;
211 178 $this->setAutoBottomMargin = false;
@@ -215,42 +182,28 @@
215 182
216 183 // TABLES
217 184 $this->simpleTables = false; // Forces all cells to have same border, background etc. Improves performance
218 185 $this->packTableData = false; // Reduce memory usage processing tables (but with increased processing time)
219 -
220 186 $this->ignore_table_percents = false;
221 187 $this->ignore_table_widths = false;
222 -$this->keep_table_proportions = true; // If table width set > page width, force resizing but keep relative sizes
188 +$this->keep_table_proportions = false; // If table width set > page width, force resizing but keep relative sizes
223 189 // Also forces respect of cell widths set by %
224 190 $this->shrink_tables_to_fit = 1.4; // automatically reduce fontsize in table if words would have to split ( not in CJK)
225 191 // 0 or false to disable; value (if set) gives maximum factor to reduce fontsize
226 192
227 193 $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
194 + // exceeding autosize; setting this value to true will force respsect for
229 195 // autosize, and disable the page-break-inside:avoid
230 196
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.
197 +$this->use_kwt = false;
233 198 $this->iterationCounter = false; // Set to TRUE to use table Head iteration counter
234 -$this->splitTableBorderWidth = 0; // Use table border (using this width in mm) when table breaks across pages
235 - // Recommended to use small value e.g. 0.01
236 199
237 -
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 200 // 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 201 $this->img_dpi = 96; // Default dpi to output images if size not defined
248 202 // See also above "dpi"
249 203
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();
204 +// TEXT SPACING & JUSTIFICATION
205 +$this->useKerning = false; // true to use kerning
253 206 $this->justifyB4br = false; // In justified text, <BR> does not cause the preceding text to be justified in browsers
254 207 // Change to true to force justification (as in MS Word)
255 208
256 209 $this->tabSpaces = 8; // Number of spaces to replace for a TAB in <pre> sections
@@ -259,37 +212,20 @@
259 212 $this->jSmaxChar = 2; // Maximum spacing to allocate to character spacing. (0 = no maximum)
260 213
261 214 $this->jSmaxCharLast = 1; // Maximum character spacing allowed (carried over) when finishing a last line
262 215 $this->jSmaxWordLast = 2; // Maximum word spacing allowed (carried over) when finishing a last line
216 +$this->orphansAllowed = 5; // No of SUP or SUB characters to include on line to avoid leaving e.g. end of line//<sup>32</sup>
217 +$this->normalLineheight = 1.33; // Value used for line-height when CSS specified as 'normal' (default)
263 218
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 219
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 -// Small Caps
277 -$this->smCapsScale = 0.75; // Factor of 1 to scale capital letters
278 -$this->smCapsStretch = 110; // % to stretch small caps horizontally (i.e. 100 = no stretch)
279 -
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 220 // CJK Line-breaking
287 221 $this->allowCJKorphans = true; // FALSE=always wrap to next line; TRUE=squeeze or overflow
288 222 $this->allowCJKoverflow = false; // FALSE=squeeze; TRUE=overflow (only some characters, and disabled in tables)
289 -$this->CJKforceend = false; // Forces overflowng punctuation to hang outside right margin mPDF 5.6.40
290 223
291 -// HYPHENATION (using word dictionaries)
224 +
225 +// HYPHENATION
226 +$this->hyphenate = false;
227 +$this->hyphenateTables = false;
292 228 $this->SHYlang = "en"; // Should be one of: 'en','de','es','fi','fr','it','nl','pl','ru','sv'
293 229 $this->SHYleftmin = 2;
294 230 $this->SHYrightmin = 2;
295 231 $this->SHYcharmin = 2;
@@ -301,29 +237,13 @@
301 237 $this->ColGap=5;
302 238
303 239
304 240 // 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
241 +$this->list_align_style = 'R'; // Determines alignment of numbers in numbered lists
242 +$this->list_indent_first_level = 0; // 1/0 yex/no to indent first level of list
243 +$this->list_number_suffix = '.'; // Content to follow a numbered list marker e.g. '.' gives 1. or IV.; ')' gives 1) or a)
312 244
313 -$this->list_number_suffix = '.'; // Content to follow a numbered list marker e.g. '.' gives 1. or IV.; ')' gives 1) or a)
314 245
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 -// ACTIVE FORMS
324 -$this->useActiveForms = false;
325 -
326 246 // WATERMARKS
327 247 $this->watermarkImgBehind = false;
328 248 $this->showWatermarkText = 0;
329 249 $this->showWatermarkImage = 0;
@@ -350,10 +270,8 @@
350 270 'FONT-SIZE' => '11pt',
351 271 'TEXT-INDENT' => '0pt',
352 272 'LINE-HEIGHT' => 'normal',
353 273 'MARGIN-COLLAPSE' => 'collapse', /* Custom property to collapse top/bottom margins at top/bottom of page - ignored in tables/lists */
354 - 'HYPHENS' => 'manual', /* mPDF 5.6.08 */
355 - 'FONT-KERNING' => 'auto', /* mPDF 6 */
356 274 ),
357 275 'P' => array(
358 276 'MARGIN' => '1.12em 0',
359 277 ),
@@ -483,16 +401,14 @@
483 401 'COLOR' => '#0000FF',
484 402 'TEXT-DECORATION' => 'underline',
485 403 ),
486 404 'UL' => array(
487 - 'PADDING' => '0 auto', /* mPDF 6 */
488 - 'MARGIN-TOP' => '0.83em', /* mPDF 6 */
489 - 'MARGIN-BOTTOM' => '0.83em', /* mPDF 6 */
405 + 'MARGIN' => '0.83em 0', /* only applied to top-level of nested lists */
406 + 'TEXT-INDENT' => '1.3em', /* Custom effect - list indent */
490 407 ),
491 408 'OL' => array(
492 - 'PADDING' => '0 auto', /* mPDF 6 */
493 - 'MARGIN-TOP' => '0.83em', /* mPDF 6 */
494 - 'MARGIN-BOTTOM' => '0.83em', /* mPDF 6 */
409 + 'MARGIN' => '0.83em 0', /* only applied to top-level of nested lists */
410 + 'TEXT-INDENT' => '1.3em', /* Custom effect - list indent */
495 411 ),
496 412 'DL' => array(
497 413 'MARGIN' => '1.67em 0',
498 414 ),
@@ -507,10 +423,8 @@
507 423 'BORDER-SPACING' => '2px',
508 424 'EMPTY-CELLS' => 'show',
509 425 'LINE-HEIGHT' => '1.2',
510 426 'VERTICAL-ALIGN' => 'middle',
511 - 'HYPHENS' => 'manual', /* mPDF 6 */
512 - 'FONT-KERNING' => 'auto', /* mPDF 6 */
513 427 ),
514 428 'THEAD' => array(
515 429 ),
516 430 'TFOOT' => array(
@@ -529,14 +443,13 @@
529 443 'PADDING-TOP' => '0.1em',
530 444 'PADDING-BOTTOM' => '0.1em',
531 445 ),
532 446 'CAPTION' => array(
533 - 'TEXT-ALIGN' => 'center',
447 + 'TEXT-ALIGN' => 'center', /* Added mPDF 5.4 */
534 448 ),
535 449 'IMG' => array(
536 450 'MARGIN' => '0',
537 451 'VERTICAL-ALIGN' => 'baseline',
538 - 'IMAGE-RENDERING' => 'auto',
539 452 ),
540 453 'INPUT' => array(
541 454 'FONT-FAMILY' => 'sans-serif',
542 455 'VERTICAL-ALIGN' => 'middle',
@@ -551,11 +464,8 @@
551 464 'FONT-FAMILY' => 'monospace',
552 465 'FONT-SIZE' => '0.9em',
553 466 'VERTICAL-ALIGN' => 'text-bottom',
554 467 ),
555 - 'MARK' => array( /* mPDF 5.5.09 */
556 - 'BACKGROUND-COLOR' => 'yellow',
557 - ),
558 468 );
559 469
560 470
561 471 //////////////////////////////////////////////////
@@ -566,55 +476,73 @@
566 476 // Hyphenation
567 477 $this->SHYlanguages = array('en','de','es','fi','fr','it','nl','pl','ru','sv'); // existing defined patterns
568 478
569 479 $this->default_lineheight_correction=1.2; // Value 1 sets lineheight=fontsize height;
570 - // Value used if line-height not set by CSS (usually is)
480 + // Value used if line-height not set by CSS (usuallly is)
571 481
572 482 $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 483
574 484 // CHARACTER PATTERN MATCHES TO DETECT LANGUAGES
575 485 // 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
486 + $this->pregRTLchars = "\x{0590}-\x{06FF}\x{0700}-\x{083E}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}";
487 + // mPDF 5 Now includes Syriac, Thaana, N'Ko and Samaritan
577 488
489 + // CJK Chars which require changing and are distinctive of specific charset
490 + $this->pregUHCchars = "\x{1100}-\x{11FF}\x{3130}-\x{318F}\x{AC00}-\x{D7AF}";
491 + $this->pregSJISchars = "\x{3040}-\x{309F}\x{30A0}-\x{30FF}\x{3190}-\x{319F}\x{31F0}-\x{31FF}";
492 +
578 493 // Chars which distinguish CJK but not between different
579 494 $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 495
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
496 + // For CJK Line-breaking
497 + //Leading characters - Not allowed at end of line
498 + $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}";
499 + // Following characters - Not allowed at start
500 + $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}";
501 + // Characters which are allowed to overflow the right margin
502 + $this->CJKoverflow = "\.,\x{ff61}\x{ff64}\x{3001}\x{3002}\x{ff0c}\x{ff0e}";
590 503
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 504
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 505
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}";
506 + // ASCII Chars which shouldn't break string
507 + // Use for very specific words
508 + $this->pregASCIIchars1 = "\x{0021}-\x{002E}\x{0030}-\x{003B}?"; // no [SPACE]
509 + // Use for words+
510 + $this->pregASCIIchars2 = "\x{0020}-\x{002E}\x{0030}-\x{003B}?"; // [SPACE] punctuation and 0-9
511 + // Use for chunks > words
512 + $this->pregASCIIchars3 = "\x{0000}-\x{002E}\x{0030}-\x{003B}\x{003F}-\x{007E}"; // all except <>
513 + // Vietnamese - specific
514 + $this->pregVIETchars = "\x{01A0}\x{01A1}\x{01AF}\x{01B0}\x{1EA0}-\x{1EF1}";
515 + // Vietnamese - Chars which shouldn't break string
516 + $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 517
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}";
518 + // Arabic
519 + $this->pregARABICchars = "\x{0600}-\x{06FF}\x{0750}-\x{077F}\x{FB50}-\x{FDFD}\x{FE70}-\x{FEFF}";
520 + // Characters of Urdu, Pashto, Sindhi (but NOT arabic or persian/farsi) [not covered by DejavuSans font]
521 + $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 522
523 + $this->pregHEBchars = "\x{0590}-\x{05FF}\x{FB00}-\x{FB49}"; // Hebrew
607 524
525 + // INDIC
526 + $this->pregHIchars = "\x{0900}-\x{0963}\x{0966}-\x{097F}"; // Devanagari (Hindi) minus the common indic punctuation 0964,0965
527 + $this->pregBNchars = "\x{0980}-\x{09FF}"; // Bengali
528 + $this->pregPAchars = "\x{0A00}-\x{0A7F}"; // Gurmukhi (Punjabi)
529 + $this->pregGUchars = "\x{0A80}-\x{0AFF}"; // Gujarati
530 + $this->pregORchars = "\x{0B00}-\x{0B7F}"; // Oriya
531 + $this->pregTAchars = "\x{0B80}-\x{0BFF}"; // Tamil
532 + $this->pregTEchars = "\x{0C00}-\x{0C7F}"; // Telugu
533 + $this->pregKNchars = "\x{0C80}-\x{0CFF}"; // Kannada
534 + $this->pregMLchars = "\x{0D00}-\x{0D7F}"; // Malayalam
535 + $this->pregSHchars = "\x{0D80}-\x{0DFF}"; // Sinhala
536 +
537 + $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}";
538 + // 200B-D=Zero-width joiners; 0964,0965=Generic Indic punctuation; NBSP & general punctuation (excludes # and / so can use in autoFont() )
539 +
608 540 $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';
610 541 $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';
542 +$this->allowedCSStags .= '|SELECT|INPUT|TEXTAREA|CAPTION'; // mPDF 5.4
613 543
614 -$this->outerblocktags = array('DIV','FORM','CENTER','DL','FIELDSET','ARTICLE','ASIDE','FIGURE','FIGCAPTION', 'FOOTER','HEADER','HGROUP','MAIN','NAV','SECTION','DETAILS','SUMMARY','UL','OL','LI');
615 -$this->innerblocktags = array('P','BLOCKQUOTE','ADDRESS','PRE','H1','H2','H3','H4','H5','H6','DT','DD','CAPTION');
616 -
617 -
544 +$this->outerblocktags = array('DIV','FORM','CENTER','DL');
545 +$this->innerblocktags = array('P','BLOCKQUOTE','ADDRESS','PRE','H1','H2','H3','H4','H5','H6','DT','DD','CAPTION'); // mPDF 5.4
618 546
619 547
620 548 ?>