PluginProbe
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin / trunk
PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin vtrunk
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
pdf-print / mpdf / config.php

config.php in PDF & Print by BestWebSoft – WordPress Posts and Pages PDF Generator Plugin trunk, at mpdf/config.php

599 lines 24.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 // PAGING
4 $this->mirrorMargins = 0;
5 $this->forcePortraitMargins = false;
6 $this->displayDefaultOrientation = false;
7 $this->printers_info = false; // Adds date and page info for printer when using @page and "marks:crop;"
8 $this->bleedMargin = 5;
9 $this->crossMarkMargin = 5; // Distance of cross mark from margin in mm
10 $this->cropMarkMargin = 8; // Distance of crop mark from margin in mm
11 $this->cropMarkLength = 18; // Default length in mm of crop line
12 $this->nonPrintMargin = 8; // Non-printable border at edge of paper sheet in mm
13 $this->defaultPagebreakType = 'cloneall'; // 'slice' or 'cloneall' or 'clonebycss' - for forced pagebreaks using <pagebreak />
14 // Automatic pagebreaks (flow in text) are always 'slice'
15
16 // Avoid just the border/background-color of the end of a block being moved on to next page
17 $this->margBuffer = 2; // Allows an (empty) end of block to extend beyond the bottom margin by this amount (mm)
18
19 // PAGE NUMBERING
20 $this->pagenumPrefix = '';
21 $this->pagenumSuffix = '';
22 $this->nbpgPrefix = '';
23 $this->nbpgSuffix = '';
24 $this->defaultPageNumStyle = '1'; // 1:Decimal, A:uppercase alphabetic etc. (as for list-style shorthands)
25
26 // FONTS, LANGUAGES & CHARACTER SETS
27 // Set maximum size of TTF font file to allow non-subsets - in kB
28 // Used to avoid a font e.g. Arial Unicode MS (perhaps used for substitutions) ever being fully embedded
29 // NB Free serif is 1.5MB, most files are <= 600kB (most 200-400KB)
30 $this->maxTTFFilesize = 2000;
31
32 // this value determines whether to subset or not
33 // 0 - 100 = percent characters
34 // i.e. if ==40, mPDF will embed whole font if >40% characters in that font
35 // or embed subset if <40% characters
36 // 0 will force whole file to be embedded (NO subsetting)
37 // 100 will force always to subset
38 // This value is overridden if you set new mPDF('s')
39 // and/or Can set at runtime
40 $this->percentSubset = 30;
41
42 $this->useAdobeCJK = false; // Uses Adobe CJK fonts for CJK languages
43 // default TRUE; only set false if you have defined some available fonts that support CJK
44 // If true this will not stop use of other CJK fonts if specified by font-family:
45 // and vice versa i.e. only dictates behaviour when specified by lang="" incl. AutoFont()
46
47 // // When embedding full TTF font files, remakes the font file using only core tables
48 // May improve function with some PostScript printers (GhostScript/GSView)
49 // Does not work with TTC font collections
50 // Slightly smaller file; increased processing time
51 $this->repackageTTF = false;
52
53 // Allows automatic character set conversion if "charset=xxx" detected in html header (WriteHTML() )
54 $this->allow_charset_conversion = true;
55 $this->biDirectional = false; // automatically determine BIDI text in LTR page
56
57 // AUTOMATIC FONT SELECTION
58 // Based on script and/or language
59 $this->autoScriptToLang = false; // mPDF 6.0 (similar to previously using function SetAutoFont() )
60 $this->baseScript = 1; // =Latin; to set another base script see constants in classes/ucdn.php
61 $this->autoVietnamese = true;
62 $this->autoArabic = true;
63
64 $this->autoLangToFont = false; // mPDF 6.0 (similar to old useLang)
65
66 $this->useSubstitutions = false; // Substitute missing characters in UTF-8(multibyte) documents - from other fonts
67 $this->falseBoldWeight = 5; // Weight for bold text when using an artificial (outline) bold; value 0 (off) - 10 (rec. max)
68
69 // CONFIGURATION
70 $this->allow_output_buffering = false;
71
72 $this->enableImports = false; // Adding mPDFI functions
73
74 $this->collapseBlockMargins = true; // Allows top and bottom margins to collapse between block elements
75 $this->progressBar = 0; // Shows progress-bars whilst generating file 0 off, 1 simple, 2 advanced
76 $this->progbar_heading = 'mPDF file progress';
77
78 $this->progbar_altHTML = ''; // Should include <html> and <body> but NOT end tags
79 // Can include <head> and link to stylesheet etc.
80 // e.g. '<html><body><p><img src="loading.gif" /> Creating PDF file. Please wait...</p>';
81
82 $this->dpi = 96; // To interpret "px" pixel values in HTML/CSS (see img_dpi below)
83 // Automatically correct for tags where HTML specifies optional end tags e.g. P,LI,DD,TD
84 // If you are confident input html is valid XHTML, turning this off may make it more reliable(?)
85 $this->allow_html_optional_endtags = true;
86
87 $this->ignore_invalid_utf8 = false;
88 $this->text_input_as_HTML = false; // Converts all entities in Text inputs to UTF-8 before encoding
89 $this->useGraphs = false;
90
91
92 // When writing a block element with position:fixed and overflow:auto, mPDF scales it down to fit in the space
93 // by repeatedly rewriting it and making adjustments. These values give the adjustments used, depending how far out
94 // the previous guess was. The lower the number, the quicker it will finish, but the less accurate the fit may be.
95 // FPR1 is for coarse adjustments, and FPR4 for fine adjustments when it is getting closer.
96 $this->incrementFPR1 = 10; // i.e. will alter by 1/[10]th of width and try again until within closer limits
97 $this->incrementFPR2 = 20;
98 $this->incrementFPR3 = 30;
99 $this->incrementFPR4 = 50; // i.e. will alter by 1/[50]th of width and try again when it nearly fits
100
101 // COLORSPACE
102 // 1 - allow GRAYSCALE only [convert CMYK/RGB->gray]
103 // 2 - allow RGB / SPOT COLOR / Grayscale [convert CMYK->RGB]
104 // 3 - allow CMYK / SPOT COLOR / Grayscale [convert RGB->CMYK]
105 $this->restrictColorSpace = 0;
106
107 // PDFX/1-a Compliant files
108 $this->PDFX = false; // true=Forces compliance with PDFX-1a spec
109 // Cannot be used with $this->restrictColorSpace (i.e. no RGB)
110 $this->PDFXauto = false; // Overrides warnings making changes when possible to force PDFX1-a compliance
111
112 // PDFA1-b Compliant files
113 $this->PDFA = false; // true=Forces compliance with PDFA-1b spec
114 // Can use with $this->restrictColorSpace=3 (for a CMYK file)
115 // Any other settings, uses RGB profile
116 $this->PDFAauto = false; // Overrides warnings making changes when possible to force PDFA1-b compliance
117 $this->ICCProfile = ''; // Colour profile OutputIntent
118 // sRGB_IEC61966-2-1 (=default if blank and PDFA), or other added .icc profile
119 // Must be CMYK for PDFX, or appropriate type for PDFA(RGB or CMYK)
120
121 // DEBUGGING & DEVELOPERS
122 $this->showStats = false;
123 $this->debug = false;
124 $this->debugfonts = false; // Checks and reports on errors when parsing TTF files - adds significantly to processing time
125 $this->showImageErrors = false;
126 $this->table_error_report = false; // Die and report error if table is too wide to contain whole words
127 $this->table_error_report_param = ''; // Parameter which can be passed to show in error report i.e. chapter number being processed//
128
129 $this->title2annots = false; // Automatically convert title="" properties in tags, to annotations
130 $this->annotSize = 0.5; // default mm for Adobe annotations - nominal
131 $this->annotMargin; // default position for Annotations
132 $this->annotOpacity = 0.5; // default opacity for Annotations
133
134 // BOOKMARKS
135 $this->anchor2Bookmark = 0; // makes <a name=""> into a bookmark as well as internal link target; 1 = just name; 2 = name (p.34)
136 // Set an optional array to specify appearance of Bookmarks (by level)
137 // Default values are Black and normal style
138 /*
139 Example:
140 $this->bookmarkStyles = array(
141 0 => array('color'=> array(0,64,128), 'style'=>'B'),
142 1 => array('color'=> array(128,0,0), 'style'=>''),
143 2 => array('color'=> array(0,128,0), 'style'=>'I'),
144 );
145 */
146 $this->bookmarkStyles = array();
147
148 // Specify whether to automatically generate bookmarks from h1 - h6 tags
149 $this->h2bookmarks = array();
150 /* Define arrays with e.g. the tag=>Bookmark-level
151 Remember bookmark levels start at 0
152 (does not work inside tables)
153 H1 - H6 must be uppercase
154 $this->h2bookmarks = array('H1'=>0, 'H2'=>1, 'H3'=>2);
155 */
156
157
158 // TABLE OF CONTENTS
159 // Specify whether to automatically generate ToC entries from h1 - h6 tags
160 $this->h2toc = array();
161 /* Define arrays with e.g. the tag=>ToC-level
162 Remember ToC levels start at 0
163 (does not work inside tables)
164 Only the default ToC will be used if > 1 ToCs are defined for the document
165 H1 - H6 must be uppercase
166 $this->h2toc = array('H1'=>0, 'H2'=>1, 'H3'=>2);
167 */
168
169 // INDEX
170 /* Specifies whether to repeat the main entry for each subEntry (true suppresses this)
171 e.g. Mammal:dog ... Mammal:elephant ->
172 [true]
173 Mammal
174 - dog
175 - elephant
176 [false]
177 Mammal, dog
178 Mammal, elephant
179 */
180 $this->indexUseSubentries = true;
181
182
183 // CSS & STYLES
184 $this->CSSselectMedia = 'print'; // screen, print, or any other CSS @media type (except "all")
185
186 // PAGE HEADERS & FOOTERS
187 $this->forcePortraitHeaders = false;
188
189 // Values used if simple FOOTER/HEADER given i.e. not array
190 $this->defaultheaderfontsize = 8; // pt
191 $this->defaultheaderfontstyle = 'BI'; // '', or 'B' or 'I' or 'BI'
192 $this->defaultheaderline = 1; // 1 or 0 - line under the header
193 $this->defaultfooterfontsize = 8; // pt
194 $this->defaultfooterfontstyle = 'BI'; // '', or 'B' or 'I' or 'BI'
195 $this->defaultfooterline = 1; // 1 or 0 - line over the footer
196 $this->header_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize
197 $this->footer_line_spacing = 0.25; // spacing between bottom of header and line (if present) - function of fontsize
198 // If 'pad' margin-top sets fixed distance in mm (padding) between bottom of header and top of text.
199 // 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.
200 $this->setAutoTopMargin = false;
201 $this->setAutoBottomMargin = false;
202 $this->autoMarginPadding = 2; // distance in mm used as padding if 'stretch' mode is used
203
204 // TABLES
205 $this->simpleTables = false; // Forces all cells to have same border, background etc. Improves performance
206 $this->packTableData = false; // Reduce memory usage processing tables (but with increased processing time)
207
208 $this->ignore_table_percents = false;
209 $this->ignore_table_widths = false;
210 $this->keep_table_proportions = true; // If table width set > page width, force resizing but keep relative sizes
211 // Also forces respect of cell widths set by %
212 $this->shrink_tables_to_fit = 1.4; // automatically reduce fontsize in table if words would have to split ( not in CJK)
213 // 0 or false to disable; value (if set) gives maximum factor to reduce fontsize
214
215 $this->tableMinSizePriority = false; // If page-break-inside:avoid but cannot fit on full page without
216 // exceeding autosize; setting this value to true will force respect for
217 // autosize, and disable the page-break-inside:avoid
218
219 $this->use_kwt = false; // "Keep-with-table" Attempts to keep a <h1> to <h6> tagged heading together
220 // with a table which comes immediately after it.
221 $this->iterationCounter = false; // Set to TRUE to use table Head iteration counter
222 $this->splitTableBorderWidth = 0; // Use table border (using this width in mm) when table breaks across pages
223 // Recommended to use small value e.g. 0.01
224
225 // // Allowed characters for text alignment on decimal marks. Additional codes must start with D
226 // DM - middot U+00B7
227 // DA - arabic decimal mark U+066B
228 $this->decimal_align = array('DP' => '.', 'DC' => ',', 'DM' => "\xc2\xb7", 'DA' => "\xd9\xab", 'DD' => '-');
229
230
231 // IMAGES
232 $this->interpolateImages = false; // if image-rendering=='auto', this defines value for image-rendering
233 // if true, image interpolation shall be performed by a conforming reader
234 $this->img_dpi = 96; // Default dpi to output images if size not defined
235 // See also above "dpi"
236
237 // TEXT SPACING & JUSTIFICATION
238
239 $this->useKerning = false; // Specify whether kerning should be used when CSS font-kerning="auto" used for HTML;
240 // Also whether kerning should be used in any direct writing e.g. $mpdf->Text();
241 $this->justifyB4br = false; // In justified text, <BR> does not cause the preceding text to be justified in browsers
242 // Change to true to force justification (as in MS Word)
243
244 $this->tabSpaces = 8; // Number of spaces to replace for a TAB in <pre> sections
245 // Notepad uses 6, HTML specification recommends 8
246 $this->jSWord = 0.4; // Proportion (/1) of space (when justifying margins) to allocate to Word vs. Character
247 $this->jSmaxChar = 2; // Maximum spacing to allocate to character spacing. (0 = no maximum)
248
249 $this->jSmaxCharLast = 1; // Maximum character spacing allowed (carried over) when finishing a last line
250 $this->jSmaxWordLast = 2; // Maximum word spacing allowed (carried over) when finishing a last line
251
252 // LINE SPACING & TEXT BASELINE
253 $this->useFixedNormalLineHeight = false; // Use the fixed factor ($this->normalLineheight) when line-height:normal
254 // Compatible with mPDF versions < 6
255
256 $this->useFixedTextBaseline = false; // Use a fixed ratio ($this->baselineC) to set the text baseline
257 // Compatible with mPDF versions < 6
258
259 $this->normalLineheight = 1.33; // Default Value used for line-height when CSS specified as 'normal' (default)
260
261 $this->adjustFontDescLineheight = 1.14; // Correction factor applied to lineheight values derived from 'win', 'mac', 'winTypo'
262 // Small Caps
263 $this->smCapsScale = 0.75; // Factor of 1 to scale capital letters
264 $this->smCapsStretch = 110; // % to stretch small caps horizontally (i.e. 100 = no stretch)
265 // Line-breaking
266 // The alternative to these next 2 is the use of U+200B Zero-width space
267 // These are only effective if using OTL for the fonts
268 $this->useDictionaryLBR = true; // Use the dictionaries to determine line-breaking in Lao, Khmer and Thai
269 $this->useTibetanLBR = true; // Use the inbuilt algorithm to determine line-breaking in Tibetan
270
271 // CJK Line-breaking
272 $this->allowCJKorphans = true; // FALSE=always wrap to next line; TRUE=squeeze or overflow
273 $this->allowCJKoverflow = false; // FALSE=squeeze; TRUE=overflow (only some characters, and disabled in tables)
274 $this->CJKforceend = false; // Forces overflowng punctuation to hang outside right margin mPDF 5.6.40
275
276 // HYPHENATION (using word dictionaries)
277 $this->SHYlang = "en"; // Should be one of: 'en','de','es','fi','fr','it','nl','pl','ru','sv'
278 $this->SHYleftmin = 2;
279 $this->SHYrightmin = 2;
280 $this->SHYcharmin = 2;
281 $this->SHYcharmax = 10;
282
283 // COLUMNS
284 $this->keepColumns = false; // Set to go to the second column only when the first is full of text etc.
285 $this->max_colH_correction = 1.15; // Maximum ratio to adjust column height when justifying - too large a value can give ugly results
286 $this->ColGap = 5;
287
288
289 // LISTS
290 // mPDF 6
291 $this->list_auto_mode = 'browser'; // 'mpdf' or 'browser' - Specify whether to use mPDF custom method of automatic
292 // indentation of lists, or standard browser-compatible
293 // custom mPDF method is ignored if list-style-position: inside, or image used for marker (or custom U+)
294 $this->list_indent_default = '40px'; // List Indentation when set to 'auto' if using standard browser-compatible method
295 $this->list_indent_default_mpdf = '0em'; // List Indentation when set to 'auto' if using mPDF custom method
296 $this->list_indent_first_level = 0; // 1/0 yes/no to indent first level of list, if using mPDF custom method
297
298 $this->list_number_suffix = '.'; // Content to follow a numbered list marker e.g. '.' gives 1. or IV.; ')' gives 1) or a)
299
300 // To specify a bullet size and offset proportional to the list item's font size:
301 //$this->list_marker_offset = '0.45em'; // Offset (CSS length) of list marker bullets (disc/circle/square)
302 //$this->list_symbol_size = '0.31em'; // Size (CSS) of list marker bullets (disc/circle/square)
303 // Browsers use a fixed bullet size and offset
304 $this->list_marker_offset = '5.5pt'; // Offset (CSS length) of list marker bullets (disc/circle/square)
305 $this->list_symbol_size = '3.6pt'; // Size (CSS) of list marker bullets (disc/circle/square)
306
307 // ACTIVE FORMS
308 $this->useActiveForms = false;
309
310 // WATERMARKS
311 $this->watermarkImgBehind = false;
312 $this->showWatermarkText = 0;
313 $this->showWatermarkImage = 0;
314 $this->watermarkText = '';
315 $this->watermarkImage = '';
316 $this->watermark_font = '';
317 $this->watermarkTextAlpha = 0.2;
318 $this->watermarkImageAlpha = 0.2;
319 $this->watermarkImgAlphaBlend = 'Normal';
320 // Accepts any PDF spec. value: Normal, Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn,
321 // HardLight, SoftLight, Difference, Exclusion
322 // "Multiply" works well for watermark image on top
323
324 // BORDERS
325 $this->autoPadding = false; // Automatically increases padding in block elements when border-radius set - if required
326
327
328 //////////////////////////////////////////////
329
330 // Default values if no style sheet offered (cf. http://www.w3.org/TR/CSS21/sample.html)
331 $this->defaultCSS = array(
332 'BODY' => array(
333 'FONT-FAMILY' => 'serif',
334 'FONT-SIZE' => '11pt',
335 'TEXT-INDENT' => '0pt',
336 'LINE-HEIGHT' => 'normal',
337 'MARGIN-COLLAPSE' => 'collapse', /* Custom property to collapse top/bottom margins at top/bottom of page - ignored in tables/lists */
338 'HYPHENS' => 'manual', /* mPDF 5.6.08 */
339 'FONT-KERNING' => 'auto', /* mPDF 6 */
340 ),
341 'P' => array(
342 'MARGIN' => '1.12em 0',
343 ),
344 'H1' => array(
345 'FONT-SIZE' => '2em',
346 'FONT-WEIGHT' => 'bold',
347 'MARGIN' => '0.67em 0',
348 'PAGE-BREAK-AFTER' => 'avoid',
349 ),
350 'H2' => array(
351 'FONT-SIZE' => '1.5em',
352 'FONT-WEIGHT' => 'bold',
353 'MARGIN' => '0.75em 0',
354 'PAGE-BREAK-AFTER' => 'avoid',
355 ),
356 'H3' => array(
357 'FONT-SIZE' => '1.17em',
358 'FONT-WEIGHT' => 'bold',
359 'MARGIN' => '0.83em 0',
360 'PAGE-BREAK-AFTER' => 'avoid',
361 ),
362 'H4' => array(
363 'FONT-WEIGHT' => 'bold',
364 'MARGIN' => '1.12em 0',
365 'PAGE-BREAK-AFTER' => 'avoid',
366 ),
367 'H5' => array(
368 'FONT-SIZE' => '0.83em',
369 'FONT-WEIGHT' => 'bold',
370 'MARGIN' => '1.5em 0',
371 'PAGE-BREAK-AFTER' => 'avoid',
372 ),
373 'H6' => array(
374 'FONT-SIZE' => '0.75em',
375 'FONT-WEIGHT' => 'bold',
376 'MARGIN' => '1.67em 0',
377 'PAGE-BREAK-AFTER' => 'avoid',
378 ),
379 'HR' => array(
380 'COLOR' => '#888888',
381 'TEXT-ALIGN' => 'center',
382 'WIDTH' => '100%',
383 'HEIGHT' => '0.2mm',
384 'MARGIN-TOP' => '0.83em',
385 'MARGIN-BOTTOM' => '0.83em',
386 ),
387 'PRE' => array(
388 'MARGIN' => '0.83em 0',
389 'FONT-FAMILY' => 'monospace',
390 ),
391 'S' => array(
392 'TEXT-DECORATION' => 'line-through',
393 ),
394 'STRIKE' => array(
395 'TEXT-DECORATION' => 'line-through',
396 ),
397 'DEL' => array(
398 'TEXT-DECORATION' => 'line-through',
399 ),
400 'SUB' => array(
401 'VERTICAL-ALIGN' => 'sub',
402 'FONT-SIZE' => '55%', /* Recommended 0.83em */
403 ),
404 'SUP' => array(
405 'VERTICAL-ALIGN' => 'super',
406 'FONT-SIZE' => '55%', /* Recommended 0.83em */
407 ),
408 'U' => array(
409 'TEXT-DECORATION' => 'underline',
410 ),
411 'INS' => array(
412 'TEXT-DECORATION' => 'underline',
413 ),
414 'B' => array(
415 'FONT-WEIGHT' => 'bold',
416 ),
417 'STRONG' => array(
418 'FONT-WEIGHT' => 'bold',
419 ),
420 'I' => array(
421 'FONT-STYLE' => 'italic',
422 ),
423 'CITE' => array(
424 'FONT-STYLE' => 'italic',
425 ),
426 'Q' => array(
427 'FONT-STYLE' => 'italic',
428 ),
429 'EM' => array(
430 'FONT-STYLE' => 'italic',
431 ),
432 'VAR' => array(
433 'FONT-STYLE' => 'italic',
434 ),
435 'SAMP' => array(
436 'FONT-FAMILY' => 'monospace',
437 ),
438 'CODE' => array(
439 'FONT-FAMILY' => 'monospace',
440 ),
441 'KBD' => array(
442 'FONT-FAMILY' => 'monospace',
443 ),
444 'TT' => array(
445 'FONT-FAMILY' => 'monospace',
446 ),
447 'SMALL' => array(
448 'FONT-SIZE' => '83%',
449 ),
450 'BIG' => array(
451 'FONT-SIZE' => '117%',
452 ),
453 'ACRONYM' => array(
454 'FONT-SIZE' => '77%',
455 'FONT-WEIGHT' => 'bold',
456 ),
457 'ADDRESS' => array(
458 'FONT-STYLE' => 'italic',
459 ),
460 'BLOCKQUOTE' => array(
461 'MARGIN-LEFT' => '40px',
462 'MARGIN-RIGHT' => '40px',
463 'MARGIN-TOP' => '1.12em',
464 'MARGIN-BOTTOM' => '1.12em',
465 ),
466 'A' => array(
467 'COLOR' => '#0000FF',
468 'TEXT-DECORATION' => 'underline',
469 ),
470 'UL' => array(
471 'PADDING' => '0 auto', /* mPDF 6 */
472 'MARGIN-TOP' => '0.83em', /* mPDF 6 */
473 'MARGIN-BOTTOM' => '0.83em', /* mPDF 6 */
474 ),
475 'OL' => array(
476 'PADDING' => '0 auto', /* mPDF 6 */
477 'MARGIN-TOP' => '0.83em', /* mPDF 6 */
478 'MARGIN-BOTTOM' => '0.83em', /* mPDF 6 */
479 ),
480 'DL' => array(
481 'MARGIN' => '1.67em 0',
482 ),
483 'DT' => array(
484 ),
485 'DD' => array(
486 'PADDING-LEFT' => '40px',
487 ),
488 'TABLE' => array(
489 'MARGIN' => '0',
490 'BORDER-COLLAPSE' => 'separate',
491 'BORDER-SPACING' => '2px',
492 'EMPTY-CELLS' => 'show',
493 'LINE-HEIGHT' => '1.2',
494 'VERTICAL-ALIGN' => 'middle',
495 'HYPHENS' => 'manual', /* mPDF 6 */
496 'FONT-KERNING' => 'auto', /* mPDF 6 */
497 ),
498 'THEAD' => array(
499 ),
500 'TFOOT' => array(
501 ),
502 'TH' => array(
503 'FONT-WEIGHT' => 'bold',
504 'TEXT-ALIGN' => 'center',
505 'PADDING-LEFT' => '0.1em',
506 'PADDING-RIGHT' => '0.1em',
507 'PADDING-TOP' => '0.1em',
508 'PADDING-BOTTOM' => '0.1em',
509 ),
510 'TD' => array(
511 'PADDING-LEFT' => '0.1em',
512 'PADDING-RIGHT' => '0.1em',
513 'PADDING-TOP' => '0.1em',
514 'PADDING-BOTTOM' => '0.1em',
515 ),
516 'CAPTION' => array(
517 'TEXT-ALIGN' => 'center',
518 ),
519 'IMG' => array(
520 'MARGIN' => '0',
521 'VERTICAL-ALIGN' => 'baseline',
522 'IMAGE-RENDERING' => 'auto',
523 ),
524 'INPUT' => array(
525 'FONT-FAMILY' => 'sans-serif',
526 'VERTICAL-ALIGN' => 'middle',
527 'FONT-SIZE' => '0.9em',
528 ),
529 'SELECT' => array(
530 'FONT-FAMILY' => 'sans-serif',
531 'FONT-SIZE' => '0.9em',
532 'VERTICAL-ALIGN' => 'middle',
533 ),
534 'TEXTAREA' => array(
535 'FONT-FAMILY' => 'monospace',
536 'FONT-SIZE' => '0.9em',
537 'VERTICAL-ALIGN' => 'text-bottom',
538 ),
539 'MARK' => array(/* mPDF 5.5.09 */
540 'BACKGROUND-COLOR' => 'yellow',
541 ),
542 );
543
544
545 //////////////////////////////////////////////////
546 // VALUES ONLY LIKELY TO BE CHANGED BY DEVELOPERS
547 //////////////////////////////////////////////////
548 $this->pdf_version = '1.4';
549
550 // Hyphenation
551 $this->SHYlanguages = array('en', 'de', 'es', 'fi', 'fr', 'it', 'nl', 'pl', 'ru', 'sv'); // existing defined patterns
552
553 $this->default_lineheight_correction = 1.2; // Value 1 sets lineheight=fontsize height;
554 // Value used if line-height not set by CSS (usually is)
555
556 $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);
557
558 // CHARACTER PATTERN MATCHES TO DETECT LANGUAGES
559 // pattern used to detect RTL characters -> force RTL
560 $this->pregRTLchars = "\x{0590}-\x{06FF}\x{0700}-\x{085F}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}"; // 085F to include Mandaic
561 // Chars which distinguish CJK but not between different
562 $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}";
563
564 // For CJK Line-breaking - References:
565 // http://en.wikipedia.org/wiki/Line_breaking_rules_in_East_Asian_languages
566 // http://msdn.microsoft.com/en-us/goglobal/bb688158.aspx - listed using charsets
567 // Word wrapping in other langauges - http://msdn.microsoft.com/en-us/goglobal/bb688158.aspx
568 // Word wrapping in Japanese/Korean - http://en.wikipedia.org/wiki/Kinsoku_shori
569 // Unicode character types: http://unicode.org/reports/tr14/
570 // http://xml.ascc.net/en/utf-8/faq/zhl10n-faq-xsl.html#qb1
571 // ECMA-376 4th edition Part 1
572 // http://www.ecma-international.org/publications/standards/Ecma-376.htm
573
574 //Leading characters - Not allowed at end of line
575 $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}";
576
577 // Following characters - Not allowed at start
578 $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}";
579
580 // Characters which are allowed to overflow the right margin (from CSS3 http://www.w3.org/TR/2012/WD-css3-text-20120814/#hanging-punctuation)
581 $this->CJKoverflow = "\.,\x{ff61}\x{ff64}\x{3001}\x{3002}\x{fe50}-\x{fe52}\x{ff0c}\x{ff0e}";
582
583 // mPDF 6
584 // Used for preventing letter-spacing in cursive scripts
585 // NB The following scripts in Unicode 6 are considered to be cursive scripts,
586 // and do not allow expansion opportunities between their letters:
587 // Arabic, Syriac, Mandaic, Mongolian, N'Ko, Phags Pa
588 $this->pregCURSchars = "\x{0590}-\x{083E}\x{0900}-\x{0DFF}\x{FB00}-\x{FDFD}\x{FE70}-\x{FEFF}";
589
590
591 $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';
592 $this->allowedCSStags .= '|ARTICLE|ASIDE|FIGURE|FIGCAPTION|FOOTER|HEADER|HGROUP|NAV|SECTION|MAIN|MARK|DETAILS|SUMMARY|METER|PROGRESS|TIME';
593 $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';
594 $this->allowedCSStags .= '|SELECT|INPUT|TEXTAREA|CAPTION|FIELDSET|LEGEND';
595 $this->allowedCSStags .= '|TEXTCIRCLE|DOTTAB|BDO|BDI';
596
597 $this->outerblocktags = array('DIV', 'FORM', 'CENTER', 'DL', 'FIELDSET', 'ARTICLE', 'ASIDE', 'FIGURE', 'FIGCAPTION', 'FOOTER', 'HEADER', 'HGROUP', 'MAIN', 'NAV', 'SECTION', 'DETAILS', 'SUMMARY', 'UL', 'OL', 'LI');
598 $this->innerblocktags = array('P', 'BLOCKQUOTE', 'ADDRESS', 'PRE', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6', 'DT', 'DD', 'CAPTION');
599