prep for move to heroku w/ composer info
5
.gitignore
vendored
@@ -2,4 +2,7 @@
|
|||||||
Thumbs.db
|
Thumbs.db
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
config.php
|
config.php
|
||||||
|
|
||||||
|
vendor/
|
||||||
|
.env
|
||||||
|
6
app.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"name": "Spoons",
|
||||||
|
"description": "Online manager for offline spooning @ iD Princeton",
|
||||||
|
"repository": "https://github.com/jakejarvis/spoons",
|
||||||
|
"addons": []
|
||||||
|
}
|
8
composer.json
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"require" : {
|
||||||
|
"ext-mbstring": "*"
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"heroku/heroku-buildpack-php": "*"
|
||||||
|
}
|
||||||
|
}
|
64
composer.lock
generated
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
{
|
||||||
|
"_readme": [
|
||||||
|
"This file locks the dependencies of your project to a known state",
|
||||||
|
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||||
|
"This file is @generated automatically"
|
||||||
|
],
|
||||||
|
"content-hash": "94e6acf7b6f45b2d3d0d53ff184a6193",
|
||||||
|
"packages": [],
|
||||||
|
"packages-dev": [
|
||||||
|
{
|
||||||
|
"name": "heroku/heroku-buildpack-php",
|
||||||
|
"version": "v121",
|
||||||
|
"source": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/heroku/heroku-buildpack-php.git",
|
||||||
|
"reference": "727aa850a02a7af94c9225237464be8e8c8ff6db"
|
||||||
|
},
|
||||||
|
"dist": {
|
||||||
|
"type": "zip",
|
||||||
|
"url": "https://api.github.com/repos/heroku/heroku-buildpack-php/zipball/727aa850a02a7af94c9225237464be8e8c8ff6db",
|
||||||
|
"reference": "727aa850a02a7af94c9225237464be8e8c8ff6db",
|
||||||
|
"shasum": ""
|
||||||
|
},
|
||||||
|
"bin": [
|
||||||
|
"bin/heroku-hhvm-apache2",
|
||||||
|
"bin/heroku-hhvm-nginx",
|
||||||
|
"bin/heroku-php-apache2",
|
||||||
|
"bin/heroku-php-nginx"
|
||||||
|
],
|
||||||
|
"type": "library",
|
||||||
|
"notification-url": "https://packagist.org/downloads/",
|
||||||
|
"license": [
|
||||||
|
"MIT"
|
||||||
|
],
|
||||||
|
"authors": [
|
||||||
|
{
|
||||||
|
"name": "David Zuelke",
|
||||||
|
"email": "dz@heroku.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"description": "Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP/HHVM and Apache2/Nginx as on Heroku",
|
||||||
|
"homepage": "https://github.com/heroku/heroku-buildpack-php",
|
||||||
|
"keywords": [
|
||||||
|
"apache",
|
||||||
|
"apache2",
|
||||||
|
"foreman",
|
||||||
|
"heroku",
|
||||||
|
"hhvm",
|
||||||
|
"nginx",
|
||||||
|
"php"
|
||||||
|
],
|
||||||
|
"time": "2017-03-27T23:33:27+00:00"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"aliases": [],
|
||||||
|
"minimum-stability": "stable",
|
||||||
|
"stability-flags": [],
|
||||||
|
"prefer-stable": false,
|
||||||
|
"prefer-lowest": false,
|
||||||
|
"platform": {
|
||||||
|
"ext-mbstring": "*"
|
||||||
|
},
|
||||||
|
"platform-dev": []
|
||||||
|
}
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 742 B After Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 8.6 KiB After Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 187 KiB |
@@ -1,379 +1,379 @@
|
|||||||
===========================
|
===========================
|
||||||
mPDF 5.4
|
mPDF 5.4
|
||||||
14/02/2012
|
14/02/2012
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
|
|
||||||
Files changed
|
Files changed
|
||||||
-------------
|
-------------
|
||||||
mpdf.php
|
mpdf.php
|
||||||
config.php
|
config.php
|
||||||
compress.php
|
compress.php
|
||||||
classes/ttfontsuni.php
|
classes/ttfontsuni.php
|
||||||
classes/barcode.php
|
classes/barcode.php
|
||||||
classes/indic.php
|
classes/indic.php
|
||||||
classes/svg.php
|
classes/svg.php
|
||||||
examples/show_code.php ----- SECURITY RISK**
|
examples/show_code.php ----- SECURITY RISK**
|
||||||
examples/example49_changelog.php
|
examples/example49_changelog.php
|
||||||
examples/example57_new_mPDF_v5-3_active_forms_b (replace example57_new_mPDF_v5-3_active_forms)
|
examples/example57_new_mPDF_v5-3_active_forms_b (replace example57_new_mPDF_v5-3_active_forms)
|
||||||
includes/out.php
|
includes/out.php
|
||||||
mpdfi/fpdi_pdf_parser.php
|
mpdfi/fpdi_pdf_parser.php
|
||||||
|
|
||||||
Files added
|
Files added
|
||||||
-----------
|
-----------
|
||||||
classes/bmp.php
|
classes/bmp.php
|
||||||
classes/directw.php
|
classes/directw.php
|
||||||
classes/form.php
|
classes/form.php
|
||||||
classes/grad.php
|
classes/grad.php
|
||||||
classes/tocontents.php
|
classes/tocontents.php
|
||||||
classes/wmf.php
|
classes/wmf.php
|
||||||
examples/example58_new_mPDF_v5-4_features
|
examples/example58_new_mPDF_v5-4_features
|
||||||
|
|
||||||
config.php changes
|
config.php changes
|
||||||
------------------
|
------------------
|
||||||
Edited: $this->allowedCSStags, $this->innerblocktags, $this->defaultCSS; (CAPTION added in each case)
|
Edited: $this->allowedCSStags, $this->innerblocktags, $this->defaultCSS; (CAPTION added in each case)
|
||||||
Moved: Numerous $form_.. variables are now in /classes/form.php
|
Moved: Numerous $form_.. variables are now in /classes/form.php
|
||||||
|
|
||||||
New config variables
|
New config variables
|
||||||
--------------------
|
--------------------
|
||||||
$this->bookmarkStyles = array();
|
$this->bookmarkStyles = array();
|
||||||
$this->cacheTables = true;
|
$this->cacheTables = true;
|
||||||
|
|
||||||
New methods
|
New methods
|
||||||
-----------
|
-----------
|
||||||
function CircularText()
|
function CircularText()
|
||||||
function SetVisibility()
|
function SetVisibility()
|
||||||
|
|
||||||
New/Extended CSS
|
New/Extended CSS
|
||||||
----------------
|
----------------
|
||||||
box-shadow (block elements - does NOT support "inset")
|
box-shadow (block elements - does NOT support "inset")
|
||||||
text-shadow (all text elements - does NOT support "blur")
|
text-shadow (all text elements - does NOT support "blur")
|
||||||
visibility: visible|hidden|printonly|screenonly (block-level elements and images IMG only)
|
visibility: visible|hidden|printonly|screenonly (block-level elements and images IMG only)
|
||||||
text-transform: capitalize|uppercase|lowercase (extended to support TD/TH)
|
text-transform: capitalize|uppercase|lowercase (extended to support TD/TH)
|
||||||
tr|td|th:nth-child(odd|even|2n+1)
|
tr|td|th:nth-child(odd|even|2n+1)
|
||||||
color, strikethrough, underline and background-color (extended to support rotated TD/TH)
|
color, strikethrough, underline and background-color (extended to support rotated TD/TH)
|
||||||
underline and strike-through (extended to support TD/TH)
|
underline and strike-through (extended to support TD/TH)
|
||||||
underline (line colour) (extended to work correctly in watermark)
|
underline (line colour) (extended to work correctly in watermark)
|
||||||
page-break-after: left|right|always (block elements and tables)
|
page-break-after: left|right|always (block elements and tables)
|
||||||
NB respects $mpdf->restoreBlockPagebreaks = true; i.e. will make pagebreak act like formfeed
|
NB respects $mpdf->restoreBlockPagebreaks = true; i.e. will make pagebreak act like formfeed
|
||||||
background[-color]: extended to support rgba|cmyka|cmyk|hsla|hsl|spot
|
background[-color]: extended to support rgba|cmyka|cmyk|hsla|hsl|spot
|
||||||
border(extended to support inline elements)
|
border(extended to support inline elements)
|
||||||
|
|
||||||
|
|
||||||
New HTML
|
New HTML
|
||||||
--------
|
--------
|
||||||
<caption>
|
<caption>
|
||||||
<textcircle />
|
<textcircle />
|
||||||
|
|
||||||
|
|
||||||
New features / Improvements
|
New features / Improvements
|
||||||
---------------------------
|
---------------------------
|
||||||
Tables - Zebra Stripes
|
Tables - Zebra Stripes
|
||||||
Tables: overlapping rowspans (partially) supported
|
Tables: overlapping rowspans (partially) supported
|
||||||
Tables - Disk caching
|
Tables - Disk caching
|
||||||
Using progress bars (or $showStats) now reports 'real' memory usage i.e. get_memory_usage(true)
|
Using progress bars (or $showStats) now reports 'real' memory usage i.e. get_memory_usage(true)
|
||||||
Support for query string in the URLs for external stylesheets e.g. @import url("style.css?ltcyy7");
|
Support for query string in the URLs for external stylesheets e.g. @import url("style.css?ltcyy7");
|
||||||
Table caption partially supported
|
Table caption partially supported
|
||||||
CircularText
|
CircularText
|
||||||
BookMark styling
|
BookMark styling
|
||||||
Spread tables i.e. can split table (columns) across several pages width.
|
Spread tables i.e. can split table (columns) across several pages width.
|
||||||
Can use chelvetica, ctimes and ccourier to specify core fonts in a non-core font document
|
Can use chelvetica, ctimes and ccourier to specify core fonts in a non-core font document
|
||||||
Spread tables i.e. can split table (columns) across several pages width.
|
Spread tables i.e. can split table (columns) across several pages width.
|
||||||
{colsum} in <tfoot> cell will insert a column total per page.
|
{colsum} in <tfoot> cell will insert a column total per page.
|
||||||
SVG embedded as island in HTML supported
|
SVG embedded as island in HTML supported
|
||||||
Active Forms
|
Active Forms
|
||||||
textarea and input (text types) now accept javascript as:
|
textarea and input (text types) now accept javascript as:
|
||||||
onKeystroke, onValidate, onCalculate and onFormat
|
onKeystroke, onValidate, onCalculate and onFormat
|
||||||
onChange is depracated but works as onCalculate (for textarea and input)
|
onChange is depracated but works as onCalculate (for textarea and input)
|
||||||
(PS Select still accepts onChange cf. 5.3.37)
|
(PS Select still accepts onChange cf. 5.3.37)
|
||||||
Ledger and Tabloid added as page formats recognised. NB Ledger is same as tabloid but landscape. In mPDF, both give the same size (portrait)
|
Ledger and Tabloid added as page formats recognised. NB Ledger is same as tabloid but landscape. In mPDF, both give the same size (portrait)
|
||||||
so need to add -L e.g. Ledger-L for landscape.
|
so need to add -L e.g. Ledger-L for landscape.
|
||||||
|
|
||||||
|
|
||||||
Internal script changes
|
Internal script changes
|
||||||
-----------------------
|
-----------------------
|
||||||
Changed this->k to _MPDFK throughout all scripts
|
Changed this->k to _MPDFK throughout all scripts
|
||||||
Changes to color (packed binary data in string rather than array) to reduce memory usage esp in tables
|
Changes to color (packed binary data in string rather than array) to reduce memory usage esp in tables
|
||||||
Internal variables Removed
|
Internal variables Removed
|
||||||
$usetableheader;
|
$usetableheader;
|
||||||
$tableheadernrows;
|
$tableheadernrows;
|
||||||
$tablefooternrows;
|
$tablefooternrows;
|
||||||
vars $ChangePage, $p_bottom_border, $img_margin_top(+) $issetcolor + other similar removed
|
vars $ChangePage, $p_bottom_border, $img_margin_top(+) $issetcolor + other similar removed
|
||||||
|
|
||||||
Removed a whole load of // comments
|
Removed a whole load of // comments
|
||||||
Updates to remove some more Warning Notices (not all marked in text)
|
Updates to remove some more Warning Notices (not all marked in text)
|
||||||
Border set on TR - changed so set on each cell, rather than retrospectively at end of TR
|
Border set on TR - changed so set on each cell, rather than retrospectively at end of TR
|
||||||
All references to table['text'] removed as not needed - uses ['textbuffer'] instead
|
All references to table['text'] removed as not needed - uses ['textbuffer'] instead
|
||||||
OpenTag(TD) changes to reduce memory usage with tables
|
OpenTag(TD) changes to reduce memory usage with tables
|
||||||
Includes different method to set a default timezone
|
Includes different method to set a default timezone
|
||||||
fn _smallCaps does not need (undefined) $space
|
fn _smallCaps does not need (undefined) $space
|
||||||
this->chrs and this->ords replaced by chr() and ord()
|
this->chrs and this->ords replaced by chr() and ord()
|
||||||
Headers in out.php updated to match those used in Output()
|
Headers in out.php updated to match those used in Output()
|
||||||
Change to SetFont() to improve performance time
|
Change to SetFont() to improve performance time
|
||||||
Change to GetStringWidth() to improve performance time
|
Change to GetStringWidth() to improve performance time
|
||||||
Corrected copying of Glyphs 0,1,2, to all subset fonts (non-SMP/SIP), and only setting 32->127 in subset
|
Corrected copying of Glyphs 0,1,2, to all subset fonts (non-SMP/SIP), and only setting 32->127 in subset
|
||||||
Subset fonts (non-SMP/SIP) have additionally Unicode CMap tables (0,0,4 and 0,3,4) as well as Microsoft (3,1,4)
|
Subset fonts (non-SMP/SIP) have additionally Unicode CMap tables (0,0,4 and 0,3,4) as well as Microsoft (3,1,4)
|
||||||
Subset fonts (SMP/SIP) have CMap tables (1,0,6 and 3,0,4) - rather than 1,0,6 and 3,0,6
|
Subset fonts (SMP/SIP) have CMap tables (1,0,6 and 3,0,4) - rather than 1,0,6 and 3,0,6
|
||||||
Subset fonts (SMP/SIP) have 'name' table changed to give 1,0 and 3,0. As it is a symbol font (not Unicode encoded) :
|
Subset fonts (SMP/SIP) have 'name' table changed to give 1,0 and 3,0. As it is a symbol font (not Unicode encoded) :
|
||||||
needs to have a name entry in 3,0 (e.g. symbol) - original font will have 3,1 (i.e. Unicode)
|
needs to have a name entry in 3,0 (e.g. symbol) - original font will have 3,1 (i.e. Unicode)
|
||||||
Automatically checks for HTML code length > 100000 characters and gives error warning if
|
Automatically checks for HTML code length > 100000 characters and gives error warning if
|
||||||
PHP < 5.2.0 (as not configurable) or increases pcre.backtrack_limit if PHP < 5.3.7
|
PHP < 5.2.0 (as not configurable) or increases pcre.backtrack_limit if PHP < 5.3.7
|
||||||
|
|
||||||
Removed/Depracated
|
Removed/Depracated
|
||||||
------------------
|
------------------
|
||||||
function UseTableHeader($opt=true) fn removed / depracated
|
function UseTableHeader($opt=true) fn removed / depracated
|
||||||
function UsePRE($opt=true) removed
|
function UsePRE($opt=true) removed
|
||||||
$attr['REPEAT_HEADER'] == true CSS removed / depracated
|
$attr['REPEAT_HEADER'] == true CSS removed / depracated
|
||||||
$this->usepre=true; removed / depracated as never needed - always respects PRE whitespace
|
$this->usepre=true; removed / depracated as never needed - always respects PRE whitespace
|
||||||
|
|
||||||
ToC: NB Values can no longer be set directly e.g. as in example
|
ToC: NB Values can no longer be set directly e.g. as in example
|
||||||
$mpdf->TOCheader = array(); // array as for setting header/footer
|
$mpdf->TOCheader = array(); // array as for setting header/footer
|
||||||
$mpdf->TOCfooter = array(); // array as for setting header/footer
|
$mpdf->TOCfooter = array(); // array as for setting header/footer
|
||||||
$mpdf->TOCpreHTML = '<h2>Contents - Portrait</h2>'; // HTML text to appear before table of contents
|
$mpdf->TOCpreHTML = '<h2>Contents - Portrait</h2>'; // HTML text to appear before table of contents
|
||||||
$mpdf->TOCpostHTML = ''; // HTML text to appear after table of contents
|
$mpdf->TOCpostHTML = ''; // HTML text to appear after table of contents
|
||||||
$mpdf->TOCbookmarkText = 'Content list'; // Text as it will appear in the Bookmarks (leave blank for none)
|
$mpdf->TOCbookmarkText = 'Content list'; // Text as it will appear in the Bookmarks (leave blank for none)
|
||||||
Need to use TOCpagebreak either direct (or array version) or as HTML
|
Need to use TOCpagebreak either direct (or array version) or as HTML
|
||||||
OR if absolutley necessary, could use:
|
OR if absolutley necessary, could use:
|
||||||
$mpdf->tocontents->TOCheader = array(); // array as for setting header/footer
|
$mpdf->tocontents->TOCheader = array(); // array as for setting header/footer
|
||||||
$mpdf->tocontents->TOCfooter = array(); // array as for setting header/footer
|
$mpdf->tocontents->TOCfooter = array(); // array as for setting header/footer
|
||||||
$mpdf->tocontents->TOCpreHTML = '<h2>Contents - Portrait</h2>'; // HTML text to appear before table of contents
|
$mpdf->tocontents->TOCpreHTML = '<h2>Contents - Portrait</h2>'; // HTML text to appear before table of contents
|
||||||
$mpdf->tocontents->TOCpostHTML = ''; // HTML text to appear after table of contents
|
$mpdf->tocontents->TOCpostHTML = ''; // HTML text to appear after table of contents
|
||||||
$mpdf->tocontents->TOCbookmarkText = 'Content list'; // Text as it will appear in the Bookmarks (leave blank for none)
|
$mpdf->tocontents->TOCbookmarkText = 'Content list'; // Text as it will appear in the Bookmarks (leave blank for none)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Further Details
|
Further Details
|
||||||
===============
|
===============
|
||||||
|
|
||||||
CSS border on inline elements
|
CSS border on inline elements
|
||||||
-----------------------------
|
-----------------------------
|
||||||
Support for CSS border (and variants) on inline elements e.g. <span style="border-bottom: 1px dashed #000000;">
|
Support for CSS border (and variants) on inline elements e.g. <span style="border-bottom: 1px dashed #000000;">
|
||||||
Border styles solid|dotted|dashed|double only are supported. Border radius not supported.
|
Border styles solid|dotted|dashed|double only are supported. Border radius not supported.
|
||||||
Nested inline elements will have repeat left|right borders on the nested content (unlike browsers)
|
Nested inline elements will have repeat left|right borders on the nested content (unlike browsers)
|
||||||
|
|
||||||
Tables - Zebra Stripes
|
Tables - Zebra Stripes
|
||||||
----------------------
|
----------------------
|
||||||
TABLE - striped rows cf. http://dev.opera.com/articles/view/zebra-striping-tables-with-css3/
|
TABLE - striped rows cf. http://dev.opera.com/articles/view/zebra-striping-tables-with-css3/
|
||||||
tr:nth-child(odd) { background-color: #99ff99; }
|
tr:nth-child(odd) { background-color: #99ff99; }
|
||||||
thead tr:nth-child(3n+2) { background-color: #FFBBFF; }
|
thead tr:nth-child(3n+2) { background-color: #FFBBFF; }
|
||||||
td:nth-child(2n+1) { background-color: #BBBBFF; }
|
td:nth-child(2n+1) { background-color: #BBBBFF; }
|
||||||
table.zebraTable td:nth-child(2n+1) { background-color: #BBBBFF; }
|
table.zebraTable td:nth-child(2n+1) { background-color: #BBBBFF; }
|
||||||
table.zebraTable th:nth-child(2n+1) { background-color: #BBBBFF; }
|
table.zebraTable th:nth-child(2n+1) { background-color: #BBBBFF; }
|
||||||
|
|
||||||
NB mPDF does NOT correctly apply specificity to all CSS
|
NB mPDF does NOT correctly apply specificity to all CSS
|
||||||
table.zebra tbody tr:nth-child(2n+1) td { background-color: #FFFFBB; }
|
table.zebra tbody tr:nth-child(2n+1) td { background-color: #FFFFBB; }
|
||||||
table.zebra tbody td:nth-child(odd) { background-color: #BBBBFF; }
|
table.zebra tbody td:nth-child(odd) { background-color: #BBBBFF; }
|
||||||
|
|
||||||
should make every odd row yellow, and every odd coloumn blue, but with the row/yellow overriding the column/blue.
|
should make every odd row yellow, and every odd coloumn blue, but with the row/yellow overriding the column/blue.
|
||||||
In mPDF the td:nth-child(odd) trumps the plain td, so the column colour wins out. You can force the effect you want by using
|
In mPDF the td:nth-child(odd) trumps the plain td, so the column colour wins out. You can force the effect you want by using
|
||||||
table.zebra tbody tr:nth-child(2n+1) td:nth-child(1n+0) { background-color: #FFFFBB; }
|
table.zebra tbody tr:nth-child(2n+1) td:nth-child(1n+0) { background-color: #FFFFBB; }
|
||||||
|
|
||||||
(The :nth-child(1n+0) selector just selects every td cell.)
|
(The :nth-child(1n+0) selector just selects every td cell.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Tables - Disk caching
|
Tables - Disk caching
|
||||||
---------------------
|
---------------------
|
||||||
TABLES: using disk caching
|
TABLES: using disk caching
|
||||||
// Using disk to cache table data can reduce memory usage dramatically, but at a cost of increased
|
// Using disk to cache table data can reduce memory usage dramatically, but at a cost of increased
|
||||||
// executon time and disk access (read and write)
|
// executon time and disk access (read and write)
|
||||||
$this->cacheTables = true;
|
$this->cacheTables = true;
|
||||||
NB $this->packTableData will be overridden to => true; // required for cacheTables
|
NB $this->packTableData will be overridden to => true; // required for cacheTables
|
||||||
$this->simpleTables will be overridden to => false; // Cannot co-exist with cacheTables
|
$this->simpleTables will be overridden to => false; // Cannot co-exist with cacheTables
|
||||||
|
|
||||||
|
|
||||||
Table caption
|
Table caption
|
||||||
-------------
|
-------------
|
||||||
Must come immediately after <table...>
|
Must come immediately after <table...>
|
||||||
CSS caption-side and HTML align attribute of top|bottom supported (not attribute left|right)
|
CSS caption-side and HTML align attribute of top|bottom supported (not attribute left|right)
|
||||||
Handled as a separate block element brought outside the table, so:
|
Handled as a separate block element brought outside the table, so:
|
||||||
CSS will not cascade correctly on the table
|
CSS will not cascade correctly on the table
|
||||||
width of caption block is that of page or of the block element containing the table
|
width of caption block is that of page or of the block element containing the table
|
||||||
so alignment will be to the page-width not the table width
|
so alignment will be to the page-width not the table width
|
||||||
if table page-break-after: always, the caption will follow the pagebreak.
|
if table page-break-after: always, the caption will follow the pagebreak.
|
||||||
This does work:
|
This does work:
|
||||||
<style>
|
<style>
|
||||||
.tablecaption { caption-side: bottom; text-align: left; font-weight: bold; color: green; }
|
.tablecaption { caption-side: bottom; text-align: left; font-weight: bold; color: green; }
|
||||||
</style>
|
</style>
|
||||||
...
|
...
|
||||||
<table>
|
<table>
|
||||||
<caption class="tablecaption">Caption title here</caption>
|
<caption class="tablecaption">Caption title here</caption>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
CSS visibility: printonly, screenonly
|
CSS visibility: printonly, screenonly
|
||||||
-------------------------------------
|
-------------------------------------
|
||||||
Roughly based on CSS
|
Roughly based on CSS
|
||||||
|
|
||||||
Works on Block elements P, DIV etc, or Image
|
Works on Block elements P, DIV etc, or Image
|
||||||
Cannot nest / layer.
|
Cannot nest / layer.
|
||||||
Inner blocks/image with set visibility are ignored if already set on enclosing block element.
|
Inner blocks/image with set visibility are ignored if already set on enclosing block element.
|
||||||
(Block element) does not work inside table (image does)
|
(Block element) does not work inside table (image does)
|
||||||
So 'visible' does nothing but is set as default
|
So 'visible' does nothing but is set as default
|
||||||
(NB Changes output to PDF version 1.5)
|
(NB Changes output to PDF version 1.5)
|
||||||
Incompatible with PDFA / PDFX
|
Incompatible with PDFA / PDFX
|
||||||
|
|
||||||
'visibility'
|
'visibility'
|
||||||
Value: visible | hidden | (collapse | inherit)
|
Value: visible | hidden | (collapse | inherit)
|
||||||
Initial: visible
|
Initial: visible
|
||||||
Applies to: all elements
|
Applies to: all elements
|
||||||
Inherited: yes
|
Inherited: yes
|
||||||
|
|
||||||
The 'visibility' property specifies whether the boxes generated by an element are rendered.
|
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).
|
Invisible boxes still affect layout (set the 'display' property to 'none' to suppress box generation altogether).
|
||||||
Values have the following meanings:
|
Values have the following meanings:
|
||||||
|
|
||||||
visible
|
visible
|
||||||
The generated box is visible.
|
The generated box is visible.
|
||||||
hidden
|
hidden
|
||||||
The generated box is invisible (fully transparent, nothing is drawn), but still affects layout.
|
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'.
|
Furthermore, descendants of the element will be visible if they have 'visibility: visible'.
|
||||||
collapse | inherit
|
collapse | inherit
|
||||||
NOT supported in mPDF
|
NOT supported in mPDF
|
||||||
|
|
||||||
CUSTOM:
|
CUSTOM:
|
||||||
printonly | screenonly
|
printonly | screenonly
|
||||||
|
|
||||||
|
|
||||||
Added VISIBILITY function
|
Added VISIBILITY function
|
||||||
$mpdf->SetVisibility('screenonly'); or 'printonly' 'visible' or 'hidden'
|
$mpdf->SetVisibility('screenonly'); or 'printonly' 'visible' or 'hidden'
|
||||||
(NB Changes output to PDF version 1.5)
|
(NB Changes output to PDF version 1.5)
|
||||||
Incompatible with PDFA / PDFX
|
Incompatible with PDFA / PDFX
|
||||||
|
|
||||||
CircularText
|
CircularText
|
||||||
------------
|
------------
|
||||||
function CircularText($x, $y, $r, $text, $align='top', $kerning=120, $fontwidth=100) {
|
function CircularText($x, $y, $r, $text, $align='top', $kerning=120, $fontwidth=100) {
|
||||||
x: abscissa of center
|
x: abscissa of center
|
||||||
y: ordinate of center
|
y: ordinate of center
|
||||||
r: radius of circle
|
r: radius of circle
|
||||||
text: text to be printed
|
text: text to be printed
|
||||||
align: text alignment: top or bottom. Default value: top
|
align: text alignment: top or bottom. Default value: top
|
||||||
kerning: spacing between letters in percentage. Default value: 120. Zero is not allowed.
|
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
|
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)
|
- now uses Kerning between letters if useKerning == true (set manually see example)
|
||||||
|
|
||||||
BookMark styling
|
BookMark styling
|
||||||
----------------
|
----------------
|
||||||
New configurable variable to control appearance of Bookmarks e.g.
|
New configurable variable to control appearance of Bookmarks e.g.
|
||||||
$this->bookmarkStyles = array(
|
$this->bookmarkStyles = array(
|
||||||
0 => array('color'=> array(0,64,128), 'style'=>'B'),
|
0 => array('color'=> array(0,64,128), 'style'=>'B'),
|
||||||
1 => array('color'=> array(128,0,0), 'style'=>''),
|
1 => array('color'=> array(128,0,0), 'style'=>''),
|
||||||
2 => array('color'=> array(0,128,0), 'style'=>'I'),
|
2 => array('color'=> array(0,128,0), 'style'=>'I'),
|
||||||
);
|
);
|
||||||
|
|
||||||
Column sums
|
Column sums
|
||||||
-----------
|
-----------
|
||||||
(Also changed some preg_replace to str_replace to improve performance)
|
(Also changed some preg_replace to str_replace to improve performance)
|
||||||
To use: just add {colsum} to any cells of the table footer <tfoot>
|
To use: just add {colsum} to any cells of the table footer <tfoot>
|
||||||
Add a number to specify a fixed number of decimal points e.g. <td>£{colsum2}</td> will give you £123.40
|
Add a number to specify a fixed number of decimal points e.g. <td>£{colsum2}</td> will give you £123.40
|
||||||
The width of the column will be calculated using the actual string {colsum} as a placeholder.
|
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_____}
|
If you need the column to be wider, use underscores "_" to pad it e.g. {colsum2_____}
|
||||||
|
|
||||||
|
|
||||||
Spread tables
|
Spread tables
|
||||||
-------------
|
-------------
|
||||||
i.e. can split table (columns) across several pages width.
|
i.e. can split table (columns) across several pages width.
|
||||||
CSS <table style="overflow: visible">
|
CSS <table style="overflow: visible">
|
||||||
Cannot use with:
|
Cannot use with:
|
||||||
$this->kwt - ignored
|
$this->kwt - ignored
|
||||||
$this->table_rotate - ignored
|
$this->table_rotate - ignored
|
||||||
$this->table_keep_together - ignored
|
$this->table_keep_together - ignored
|
||||||
$this->ColActive - cancels spread tables
|
$this->ColActive - cancels spread tables
|
||||||
|
|
||||||
Messes up with:
|
Messes up with:
|
||||||
$mpdf->forcePortraitHeaders = true;
|
$mpdf->forcePortraitHeaders = true;
|
||||||
$mpdf->forcePortraitMargins = true;
|
$mpdf->forcePortraitMargins = true;
|
||||||
Problems with CJK, and RTL
|
Problems with CJK, and RTL
|
||||||
|
|
||||||
Will do no resizing of fonts at all.
|
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
|
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.
|
If table row too high for page will die with error message.
|
||||||
Will override some specs for width if this creates conflicts
|
Will override some specs for width if this creates conflicts
|
||||||
Recommended to specify absolute value of width on each column.
|
Recommended to specify absolute value of width on each column.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Bug fixes
|
Bug fixes
|
||||||
=========
|
=========
|
||||||
Dottab - if text after dottab is hyperlinked <a></a> then dots are underlined
|
Dottab - if text after dottab is hyperlinked <a></a> then dots are underlined
|
||||||
|
|
||||||
page-break-before now respects $mpdf->restoreBlockPagebreaks = true; i.e. will make pagebreak act like formfeed
|
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)
|
Annotation() function called directly with colorarray(r,g,b)
|
||||||
|
|
||||||
Added urldecode to _getImage to cope with ../name%20of%20image.jpg
|
Added urldecode to _getImage to cope with ../name%20of%20image.jpg
|
||||||
Added urldecode AND htmlspecials_decode to href in <a> link e.g. https://www.google.com/search?hl=en&q=mpdf&filename=name%20of%20file
|
Added urldecode AND htmlspecials_decode to href in <a> 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
|
[barcode.php] Allow in C39 codes - will be changed to spaces
|
||||||
|
|
||||||
<table> inside a <div position:fixed, left:300px;> not calculating table width correctly
|
<table> inside a <div position:fixed, left:300px;> not calculating table width correctly
|
||||||
- leading to either upside down table or error width less than 1 character
|
- leading to either upside down table or error width less than 1 character
|
||||||
|
|
||||||
Depracated magic_quotes_runtime() in compress.php
|
Depracated magic_quotes_runtime() in compress.php
|
||||||
|
|
||||||
DIRECTW included twice in compress.php
|
DIRECTW included twice in compress.php
|
||||||
FORMS mark up for compress.php corrected
|
FORMS mark up for compress.php corrected
|
||||||
|
|
||||||
double backslashes not preserved inside <pre> or <textarea>
|
double backslashes not preserved inside <pre> or <textarea>
|
||||||
|
|
||||||
font-weight and font-style not recognised in <pageheader>
|
font-weight and font-style not recognised in <pageheader>
|
||||||
|
|
||||||
Progress bars causing corrupt PDF file (out.php) changed fopen from "r" mode to "rb" (binary)
|
Progress bars causing corrupt PDF file (out.php) changed fopen from "r" mode to "rb" (binary)
|
||||||
Target around image - <a href="#internaltarget"><img ... /></a> - not working
|
Target around image - <a href="#internaltarget"><img ... /></a> - not working
|
||||||
|
|
||||||
SmallCaps in <thead> error
|
SmallCaps in <thead> error
|
||||||
|
|
||||||
Fonts with "name" table in format 1 not recognised correctly
|
Fonts with "name" table in format 1 not recognised correctly
|
||||||
Rotated table which does not fit on remaining page, forces a new page even if already at top of page
|
Rotated table which does not fit on remaining page, forces a new page even if already at top of page
|
||||||
|
|
||||||
Locale causing problems - all instances of sprintf() using %.3f changed to %.3F so not locale aware
|
Locale causing problems - all instances of sprintf() using %.3f changed to %.3F so not locale aware
|
||||||
|
|
||||||
CSS border radius not implemented on fixed/absolute positioned block element
|
CSS border radius not implemented on fixed/absolute positioned block element
|
||||||
|
|
||||||
Background color in rotated table extending way beyond bottom of table
|
Background color in rotated table extending way beyond bottom of table
|
||||||
|
|
||||||
Nested table containing <thead> or <tfoot> was confused with <thead> or <tfoot> of parent table
|
Nested table containing <thead> or <tfoot> was confused with <thead> or <tfoot> of parent table
|
||||||
|
|
||||||
Correct handling of spaces, < or & in textarea
|
Correct handling of spaces, < or & in textarea
|
||||||
|
|
||||||
<option> and <input ..> attributes value/title decoded with fn lesser_entity_decode instead of htmlspecialchars_decode to include '
|
<option> and <input ..> attributes value/title decoded with fn lesser_entity_decode instead of htmlspecialchars_decode to include '
|
||||||
|
|
||||||
line width not restored to correct value after "line-through" text in Cell()
|
line width not restored to correct value after "line-through" text in Cell()
|
||||||
|
|
||||||
Kannada - incorrect positioning of Reph
|
Kannada - incorrect positioning of Reph
|
||||||
|
|
||||||
Forms - In <input> or <option> (select) not correctly handling HTML named entities e.g. < in value or title
|
Forms - In <input> or <option> (select) not correctly handling HTML named entities e.g. < in value or title
|
||||||
Active forms - as Value or Title incorrectly showing as Euro - PDFDocEncoding fixed
|
Active forms - as Value or Title incorrectly showing as Euro - PDFDocEncoding fixed
|
||||||
|
|
||||||
Unicode data in embedded fonts not encrypted when doc encrypted
|
Unicode data in embedded fonts not encrypted when doc encrypted
|
||||||
|
|
||||||
Nested block elements which are empty including innermost one, top margin of innermost block was ignored
|
Nested block elements which are empty including innermost one, top margin of innermost block was ignored
|
||||||
|
|
||||||
font-size: xx% inside a block was setting on block's parent font-size
|
font-size: xx% inside a block was setting on block's parent font-size
|
||||||
|
|
||||||
Active forms - radio buttons (removed name from Widget - leave on Radio group)
|
Active forms - radio buttons (removed name from Widget - leave on Radio group)
|
||||||
causing problems accessing field for radio buttons
|
causing problems accessing field for radio buttons
|
||||||
|
|
||||||
When using simple tables and border-collapse, if table border set, but cell borders not set, should display table border (fixed)
|
When using simple tables and border-collapse, if table border set, but cell borders not set, should display table border (fixed)
|
||||||
position:fixed block - if neither top nor bottom nor height specified, was positioned incorrectly (y)
|
position:fixed block - if neither top nor bottom nor height specified, was positioned incorrectly (y)
|
||||||
Leave - if top, bottom, margin-top, margiin-bottom and height are all left unspecified (or auto), will centre vertically
|
Leave - if top, bottom, margin-top, margiin-bottom and height are all left unspecified (or auto), will centre vertically
|
||||||
on the page (specific to mPDF - not consistent with CSS2.1)
|
on the page (specific to mPDF - not consistent with CSS2.1)
|
||||||
But if any one of them are specified (including e.g. margin-top=0), follows CSS spec, so top is the current "static" position
|
But if any one of them are specified (including e.g. margin-top=0), follows CSS spec, so top is the current "static" position
|
||||||
|
|
||||||
background-image-opacity=0 not working on BODY or BLOCK
|
background-image-opacity=0 not working on BODY or BLOCK
|
||||||
|
|
||||||
Lists - if LI continues after a nested List, would add as a new LI item (should continue as part of earlier LI item)
|
Lists - if LI continues after a nested List, would add as a new LI item (should continue as part of earlier LI item)
|
||||||
|
|
||||||
fn WriteCell() converts to 'windows-1252' when required
|
fn WriteCell() converts to 'windows-1252' when required
|
||||||
if multiple calls to mPDF used, cannot redefine function cmp()
|
if multiple calls to mPDF used, cannot redefine function cmp()
|
||||||
internal link targets <a name="xx" /> in ToC not moved when using: page-break-inside:avoid
|
internal link targets <a name="xx" /> in ToC not moved when using: page-break-inside:avoid
|
||||||
internal link targets <a name="xx" /> not moved when using: columns, page-break-inside:avoid, keep-with-table or table rotate
|
internal link targets <a name="xx" /> not moved when using: columns, page-break-inside:avoid, keep-with-table or table rotate
|
||||||
|
|
||||||
Active Forms - onChange not working for SELECT (cf. 5.3.25) Example 57 only worked by chance as JS was carried over from Select to Text field
|
Active Forms - onChange not working for SELECT (cf. 5.3.25) Example 57 only worked by chance as JS was carried over from Select to Text field
|
||||||
Bug is fixed, but example file needed updating to onCalculate for the display field.
|
Bug is fixed, but example file needed updating to onCalculate for the display field.
|
||||||
|
|
||||||
Table cell: if height set as %, currently sets it as % of page-width; instead this now ignores it.
|
Table cell: if height set as %, currently sets it as % of page-width; instead this now ignores it.
|
||||||
|
|
||||||
Bengali letter Khanda Ta (U+09CE) character not recognised; was added in Unicode v4.1 and prior to this, (U+09A4 U+09CD U+200D)
|
Bengali letter Khanda Ta (U+09CE) character not recognised; was added in Unicode v4.1 and prior to this, (U+09A4 U+09CD U+200D)
|
||||||
so mPDF converts to this string and seems to work.
|
so mPDF converts to this string and seems to work.
|
||||||
|
|
||||||
OCR characters wrong size in barcodes if using different ocr font
|
OCR characters wrong size in barcodes if using different ocr font
|
@@ -1,92 +1,92 @@
|
|||||||
|
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* Software: FPDF *
|
* Software: FPDF *
|
||||||
* Version: 1.53 *
|
* Version: 1.53 *
|
||||||
* Date: 2004-12-31 *
|
* Date: 2004-12-31 *
|
||||||
* Author: Olivier PLATHEY *
|
* Author: Olivier PLATHEY *
|
||||||
* License: Freeware *
|
* License: Freeware *
|
||||||
* *
|
* *
|
||||||
* You may use and modify this software as you wish. *
|
* You may use and modify this software as you wish. *
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
/*******************************************************************************
|
/*******************************************************************************
|
||||||
* HTML2FPDF is a php script to read a HTML text and generate a PDF file. *
|
* HTML2FPDF is a php script to read a HTML text and generate a PDF file. *
|
||||||
* Copyright (C) 2004-2005 Renato Coelho *
|
* Copyright (C) 2004-2005 Renato Coelho *
|
||||||
* *
|
* *
|
||||||
* html2fpdf.php, htmltoolkit.php *
|
* html2fpdf.php, htmltoolkit.php *
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
CREDITS From HTML2FPDF:
|
CREDITS From HTML2FPDF:
|
||||||
|
|
||||||
-Olivier Plathey for the fpdf.php class [http://www.fpdf.org]
|
-Olivier Plathey for the fpdf.php class [http://www.fpdf.org]
|
||||||
-Damon Kohler for the Flowing Block script [mailto:damonkohler@yahoo.com]
|
-Damon Kohler for the Flowing Block script [mailto:damonkohler@yahoo.com]
|
||||||
-Clément Lavoillotte for HTML-oriented FPDF idea
|
-Clément Lavoillotte for HTML-oriented FPDF idea
|
||||||
-Yamasoft for the gif.php class [http://www.yamasoft.com/]
|
-Yamasoft for the gif.php class [http://www.yamasoft.com/]
|
||||||
-Jérôme Fenal for the _parsegif() function
|
-Jérôme Fenal for the _parsegif() function
|
||||||
-"VIETCOM" for the PDFTable code [http://www.freepgs.com/vietcom/tool/pdftable/] [mailto:vncommando@yahoo.com]
|
-"VIETCOM" for the PDFTable code [http://www.freepgs.com/vietcom/tool/pdftable/] [mailto:vncommando@yahoo.com]
|
||||||
-Yukihiro O. for the SetDash() function [mailto:yukihiro_o@infoseek.jp]
|
-Yukihiro O. for the SetDash() function [mailto:yukihiro_o@infoseek.jp]
|
||||||
-Ron Korving for the WordWrap() function
|
-Ron Korving for the WordWrap() function
|
||||||
-Michel Poulain for the DisplayPreferences() function
|
-Michel Poulain for the DisplayPreferences() function
|
||||||
-Patrick Benny for the MultiCellBlt() function idea [no longer in use]
|
-Patrick Benny for the MultiCellBlt() function idea [no longer in use]
|
||||||
-Seb for the _SetTextRendering() and SetTextOutline() functions [mailto:captainseb@wanadoo.fr]
|
-Seb for the _SetTextRendering() and SetTextOutline() functions [mailto:captainseb@wanadoo.fr]
|
||||||
-MorphSoft for the colornames list idea
|
-MorphSoft for the colornames list idea
|
||||||
-W3SCHOOLS for HTML-related reference info [http://www.w3schools.com/]
|
-W3SCHOOLS for HTML-related reference info [http://www.w3schools.com/]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Software: FPDF_Protection *
|
* Software: FPDF_Protection *
|
||||||
* Version: 1.02 *
|
* Version: 1.02 *
|
||||||
* Date: 2005/05/08 *
|
* Date: 2005/05/08 *
|
||||||
* Author: Klemen VODOPIVEC *
|
* Author: Klemen VODOPIVEC *
|
||||||
* License: Freeware *
|
* License: Freeware *
|
||||||
* *
|
* *
|
||||||
* You may use and modify this software as you wish as stated in original *
|
* You may use and modify this software as you wish as stated in original *
|
||||||
* FPDF package. *
|
* FPDF package. *
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
// FPDI - Version 1.2
|
// FPDI - Version 1.2
|
||||||
//
|
//
|
||||||
// Copyright 2004-2007 Setasign - Jan Slabon
|
// Copyright 2004-2007 Setasign - Jan Slabon
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
// you may not use this file except in compliance with the License.
|
// you may not use this file except in compliance with the License.
|
||||||
// You may obtain a copy of the License at
|
// You may obtain a copy of the License at
|
||||||
//
|
//
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
//
|
//
|
||||||
// Unless required by applicable law or agreed to in writing, software
|
// Unless required by applicable law or agreed to in writing, software
|
||||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
// See the License for the specific language governing permissions and
|
// See the License for the specific language governing permissions and
|
||||||
// limitations under the License.
|
// limitations under the License.
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* @copyright Khaled Al-Shamaa 2008
|
* @copyright Khaled Al-Shamaa 2008
|
||||||
* @link http://www.ar-php.org
|
* @link http://www.ar-php.org
|
||||||
* @author Khaled Al-Shamaa <khaled@ar-php.org>
|
* @author Khaled Al-Shamaa <khaled@ar-php.org>
|
||||||
* @desc Set of PHP5 / UTF-8 Classes developed to enhance Arabic web
|
* @desc Set of PHP5 / UTF-8 Classes developed to enhance Arabic web
|
||||||
* applications by providing set of tools includes stem-based searching,
|
* applications by providing set of tools includes stem-based searching,
|
||||||
* translitiration, soundex, Hijri calendar, charset detection and
|
* translitiration, soundex, Hijri calendar, charset detection and
|
||||||
* converter, spell numbers, keyboard language, Muslim prayer time,
|
* converter, spell numbers, keyboard language, Muslim prayer time,
|
||||||
* auto-summarization, and more...
|
* auto-summarization, and more...
|
||||||
* @package Arabic
|
* @package Arabic
|
||||||
*
|
*
|
||||||
* @version 1.8 released in Feb 15, 2009
|
* @version 1.8 released in Feb 15, 2009
|
||||||
*
|
*
|
||||||
* @license LGPL
|
* @license LGPL
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
modify it under the terms of the GNU Lesser General Public
|
modify it under the terms of the GNU Lesser General Public
|
||||||
License as published by the Free Software Foundation;
|
License as published by the Free Software Foundation;
|
||||||
This library is distributed in the hope that it will be useful,
|
This library is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
Lesser General Public License for more details.
|
Lesser General Public License for more details.
|
||||||
[http://www.opensource.org/licenses/lgpl-license.php]
|
[http://www.opensource.org/licenses/lgpl-license.php]
|
||||||
|
|
@@ -1,164 +1,164 @@
|
|||||||
|
|
||||||
=================
|
=================
|
||||||
Open Source Fonts
|
Open Source Fonts
|
||||||
=================
|
=================
|
||||||
mPDF should be able to read most TrueType Unicode font files with a .ttf extension
|
mPDF should be able to read most TrueType Unicode font files with a .ttf extension
|
||||||
Truetype fonts with .ttf or .otf extension and .ttc TrueType collections should also work OK.
|
Truetype fonts with .ttf or .otf extension and .ttc TrueType collections should also work OK.
|
||||||
|
|
||||||
You will probably therefore have access to any number of fonts, but here are some useful sources for
|
You will probably therefore have access to any number of fonts, but here are some useful sources for
|
||||||
open-source or free-use fonts. Many of these were included with earlier versions of mPDF:
|
open-source or free-use fonts. Many of these were included with earlier versions of mPDF:
|
||||||
|
|
||||||
General collections
|
General collections
|
||||||
-------------------
|
-------------------
|
||||||
- DejaVu font collection from: http://dejavu-fonts.org/wiki/Main_Page (included in the release)
|
- DejaVu font collection from: http://dejavu-fonts.org/wiki/Main_Page (included in the release)
|
||||||
- GNU FreeFont from: http://www.gnu.org/software/freefont/
|
- GNU FreeFont from: http://www.gnu.org/software/freefont/
|
||||||
- Linux Libertine from: http://www.linuxlibertine.org (use the .ttf files - not the .otf)
|
- Linux Libertine from: http://www.linuxlibertine.org (use the .ttf files - not the .otf)
|
||||||
- Liberation Fonts from: https://fedorahosted.org/liberation-fonts/ or directly https://fedorahosted.org/releases/l/i/liberation-fonts/
|
- Liberation Fonts from: https://fedorahosted.org/liberation-fonts/ or directly https://fedorahosted.org/releases/l/i/liberation-fonts/
|
||||||
|
|
||||||
Thai fonts
|
Thai fonts
|
||||||
----------
|
----------
|
||||||
- Collection of Thai fonts from: ftp://linux.thai.net/pub/thailinux/software/thai-ttf/
|
- Collection of Thai fonts from: ftp://linux.thai.net/pub/thailinux/software/thai-ttf/
|
||||||
|
|
||||||
|
|
||||||
OCR-B
|
OCR-B
|
||||||
-----
|
-----
|
||||||
OCRB (ocrb10) font: http://ansuz.sooke.bc.ca/software/ocrb.php
|
OCRB (ocrb10) font: http://ansuz.sooke.bc.ca/software/ocrb.php
|
||||||
Useful for barcodes (included in the release)
|
Useful for barcodes (included in the release)
|
||||||
|
|
||||||
Pan-Unicode fonts (fonts containing most characters defined in Unicode)
|
Pan-Unicode fonts (fonts containing most characters defined in Unicode)
|
||||||
-----------------------------------------------------------------------
|
-----------------------------------------------------------------------
|
||||||
- BitStream Cyberbit from: http://aol-4.vo.llnwd.net/pub/communicator/extras/fonts/windows/
|
- BitStream Cyberbit from: http://aol-4.vo.llnwd.net/pub/communicator/extras/fonts/windows/
|
||||||
Cyberbit.ZIP (or just Google it)
|
Cyberbit.ZIP (or just Google it)
|
||||||
(NB if run with $debug_fonts gives warning of invalid table checksum - just turn it off!)
|
(NB if run with $debug_fonts gives warning of invalid table checksum - just turn it off!)
|
||||||
- Code2000 (NB shareware) from: http://www.code2000.net/code2000_page.htm
|
- Code2000 (NB shareware) from: http://www.code2000.net/code2000_page.htm
|
||||||
- Quivira from: http://www.quivira-font.com/ (combining diacritics are not placed correctly, but has a very full set of glyphs)
|
- Quivira from: http://www.quivira-font.com/ (combining diacritics are not placed correctly, but has a very full set of glyphs)
|
||||||
|
|
||||||
|
|
||||||
CJK (Chinese-Japanese-Korean)
|
CJK (Chinese-Japanese-Korean)
|
||||||
-----------------------------
|
-----------------------------
|
||||||
HanNomA and B from: http://vietunicode.sourceforge.net/fonts/fonts_hannom.html
|
HanNomA and B from: http://vietunicode.sourceforge.net/fonts/fonts_hannom.html
|
||||||
unBatang_0613 from: http://people.ktug.or.kr/~nomos/mine/UnBatang_0613.ttf
|
unBatang_0613 from: http://people.ktug.or.kr/~nomos/mine/UnBatang_0613.ttf
|
||||||
Sun-ExtA and Sun-ExtB from: http://www.alanwood.net/unicode/fonts-east-asian.html
|
Sun-ExtA and Sun-ExtB from: http://www.alanwood.net/unicode/fonts-east-asian.html
|
||||||
(http://www.alanwood.net/downloads/index.html)
|
(http://www.alanwood.net/downloads/index.html)
|
||||||
Fonts which contain both Unicode BMP and SIP (Supplementary Ideographic Plane)
|
Fonts which contain both Unicode BMP and SIP (Supplementary Ideographic Plane)
|
||||||
characters in one file e.g. "AR PL UMing" and "AR PL UKai"
|
characters in one file e.g. "AR PL UMing" and "AR PL UKai"
|
||||||
from: http://www.freedesktop.org
|
from: http://www.freedesktop.org
|
||||||
http://www.freedesktop.org/wiki/Software/CJKUnifonts/Download
|
http://www.freedesktop.org/wiki/Software/CJKUnifonts/Download
|
||||||
[MS Windows fonts such as MS Mincho and MingLiU also work]
|
[MS Windows fonts such as MS Mincho and MingLiU also work]
|
||||||
Japanese IPA fonts: http://ossipedia.ipa.go.jp/ipafont/index.html
|
Japanese IPA fonts: http://ossipedia.ipa.go.jp/ipafont/index.html
|
||||||
|
|
||||||
Arabic/Eastern fonts
|
Arabic/Eastern fonts
|
||||||
--------------------
|
--------------------
|
||||||
- XW Zar fonts can be downloaded from: http://www.redlers.com/downloadfont.html
|
- XW Zar fonts can be downloaded from: http://www.redlers.com/downloadfont.html
|
||||||
(2 of these fonts are included in the release)
|
(2 of these fonts are included in the release)
|
||||||
(original site in Farsi: http://wiki.irmug.org/index.php/XWZar)
|
(original site in Farsi: http://wiki.irmug.org/index.php/XWZar)
|
||||||
- See below for more details and font names of the fonts used in mPDF 4.x
|
- See below for more details and font names of the fonts used in mPDF 4.x
|
||||||
|
|
||||||
|
|
||||||
Other sources
|
Other sources
|
||||||
-------------
|
-------------
|
||||||
http://www.unifont.org/fontguide/
|
http://www.unifont.org/fontguide/
|
||||||
http://www.alanwood.net/unicode/fonts.html
|
http://www.alanwood.net/unicode/fonts.html
|
||||||
http://cooltext.com (e.g. http://cooltext.com/Fonts-Unicode+Arabic)
|
http://cooltext.com (e.g. http://cooltext.com/Fonts-Unicode+Arabic)
|
||||||
ApparatusSIL, DoulosSIL, Padauk from SIL: http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&cat_id=FontDownloads
|
ApparatusSIL, DoulosSIL, Padauk from SIL: http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&cat_id=FontDownloads
|
||||||
DaiBanna (Tai Le)
|
DaiBanna (Tai Le)
|
||||||
|
|
||||||
Mediaeval & Ancient Scripts
|
Mediaeval & Ancient Scripts
|
||||||
---------------------------
|
---------------------------
|
||||||
Junicode: http://junicode.sourceforge.net/
|
Junicode: http://junicode.sourceforge.net/
|
||||||
Cardo: http://scholarsfonts.net/cardofnt.html
|
Cardo: http://scholarsfonts.net/cardofnt.html
|
||||||
|
|
||||||
Syriac fonts
|
Syriac fonts
|
||||||
------------
|
------------
|
||||||
http://www.bethmardutho.org/meltho/
|
http://www.bethmardutho.org/meltho/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
============
|
============
|
||||||
ARABIC FONTS
|
ARABIC FONTS
|
||||||
============
|
============
|
||||||
You can use any appropriate Unicode-encoded .ttf or .ttc font file for arabic text, but
|
You can use any appropriate Unicode-encoded .ttf or .ttc font file for arabic text, but
|
||||||
the font file must include the Arabic Presentation Forms-B (U+FE70–U+FEFF).
|
the font file must include the Arabic Presentation Forms-B (U+FE70–U+FEFF).
|
||||||
2 of the XW Zar fonts are included in the release.
|
2 of the XW Zar fonts are included in the release.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
===========
|
===========
|
||||||
INDIC FONTS
|
INDIC FONTS
|
||||||
===========
|
===========
|
||||||
Indic scripts e.g. Hindi, Bengali etc. use conjuct forms which have no Unicode assignment. You
|
Indic scripts e.g. Hindi, Bengali etc. use conjuct forms which have no Unicode assignment. You
|
||||||
cannot therefore use any standard .ttf font files with mPDF.
|
cannot therefore use any standard .ttf font files with mPDF.
|
||||||
|
|
||||||
A set of fonts has been adapted to use specifically with mPDF. They are based on a set of fonts from:
|
A set of fonts has been adapted to use specifically with mPDF. They are based on a set of fonts from:
|
||||||
|
|
||||||
http://www.cdacmumbai.in/projects/indix/e_introduction.shtml
|
http://www.cdacmumbai.in/projects/indix/e_introduction.shtml
|
||||||
|
|
||||||
NB These fonts are released under GNU GPL Version 2 license
|
NB These fonts are released under GNU GPL Version 2 license
|
||||||
|
|
||||||
You need these adapted fonts (ind_bn_1_001.ttf etc.) to work with mPDF, as the glyphs have been
|
You need these adapted fonts (ind_bn_1_001.ttf etc.) to work with mPDF, as the glyphs have been
|
||||||
assigned to Unicode values in the Private Use area (U+E000 ->). These are included in the
|
assigned to Unicode values in the Private Use area (U+E000 ->). These are included in the
|
||||||
mPDF download.
|
mPDF download.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Users of mPDF v4.x
|
Users of mPDF v4.x
|
||||||
------------------
|
------------------
|
||||||
The original indic font files do not contain a full set of even basic ASCII
|
The original indic font files do not contain a full set of even basic ASCII
|
||||||
characters. The fonts supplied have been "fixed" to include those extra
|
characters. The fonts supplied have been "fixed" to include those extra
|
||||||
characters. This now works whether the font is subset or not.
|
characters. This now works whether the font is subset or not.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
=========
|
=========
|
||||||
CJK Fonts
|
CJK Fonts
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
|
||||||
Supplemental Ideographic Plane
|
Supplemental Ideographic Plane
|
||||||
==============================
|
==============================
|
||||||
SIP = Supplemental Ideographic Plane ( = Plane 2) = U+20000 - U+2FFFF (131072 - 196607)
|
SIP = Supplemental Ideographic Plane ( = Plane 2) = U+20000 - U+2FFFF (131072 - 196607)
|
||||||
These characters are required for the HKSCS Hong Kong Supplementary Character Set. Fonts with
|
These characters are required for the HKSCS Hong Kong Supplementary Character Set. Fonts with
|
||||||
SIP characters are commonly divided into a second file e.g. MingLiU and MingLiU-ExtB
|
SIP characters are commonly divided into a second file e.g. MingLiU and MingLiU-ExtB
|
||||||
|
|
||||||
mPDF requires 2 fonts and they should be cross-referenced in config_fonts.php e.g.
|
mPDF requires 2 fonts and they should be cross-referenced in config_fonts.php e.g.
|
||||||
"sun-exta" => array(
|
"sun-exta" => array(
|
||||||
'R' => "Sun-ExtA.ttf",
|
'R' => "Sun-ExtA.ttf",
|
||||||
'sip-ext' => 'sun-extb',
|
'sip-ext' => 'sun-extb',
|
||||||
),
|
),
|
||||||
"sun-extb" => array(
|
"sun-extb" => array(
|
||||||
'R' => "Sun-ExtB.ttf",
|
'R' => "Sun-ExtB.ttf",
|
||||||
),
|
),
|
||||||
|
|
||||||
--OR--
|
--OR--
|
||||||
(NB these ones also define the font number within the TTC Collection as TTCfontID)
|
(NB these ones also define the font number within the TTC Collection as TTCfontID)
|
||||||
'mingliu' => array (
|
'mingliu' => array (
|
||||||
'R' => 'mingliu.ttc',
|
'R' => 'mingliu.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 1,
|
'R' => 1,
|
||||||
),
|
),
|
||||||
'sip-ext' => 'mingliu-extb',
|
'sip-ext' => 'mingliu-extb',
|
||||||
),
|
),
|
||||||
'mingliu-extb' => array (
|
'mingliu-extb' => array (
|
||||||
'R' => 'mingliub.ttc',
|
'R' => 'mingliub.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 1,
|
'R' => 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'mingliu_hkscs' => array (
|
'mingliu_hkscs' => array (
|
||||||
'R' => 'mingliu.ttc',
|
'R' => 'mingliu.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 3,
|
'R' => 3,
|
||||||
),
|
),
|
||||||
'sip-ext' => 'mingliu_hkscs-extb',
|
'sip-ext' => 'mingliu_hkscs-extb',
|
||||||
),
|
),
|
||||||
'mingliu_hkscs-extb' => array (
|
'mingliu_hkscs-extb' => array (
|
||||||
'R' => 'mingliub.ttc',
|
'R' => 'mingliub.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 3,
|
'R' => 3,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@@ -1,340 +1,340 @@
|
|||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
Preamble
|
Preamble
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
The licenses for most software are designed to take away your
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
freedom to share and change it. By contrast, the GNU General Public
|
||||||
License is intended to guarantee your freedom to share and change free
|
License is intended to guarantee your freedom to share and change free
|
||||||
software--to make sure the software is free for all its users. This
|
software--to make sure the software is free for all its users. This
|
||||||
General Public License applies to most of the Free Software
|
General Public License applies to most of the Free Software
|
||||||
Foundation's software and to any other program whose authors commit to
|
Foundation's software and to any other program whose authors commit to
|
||||||
using it. (Some other Free Software Foundation software is covered by
|
using it. (Some other Free Software Foundation software is covered by
|
||||||
the GNU Library General Public License instead.) You can apply it to
|
the GNU Library General Public License instead.) You can apply it to
|
||||||
your programs, too.
|
your programs, too.
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom, not
|
When we speak of free software, we are referring to freedom, not
|
||||||
price. Our General Public Licenses are designed to make sure that you
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
have the freedom to distribute copies of free software (and charge for
|
have the freedom to distribute copies of free software (and charge for
|
||||||
this service if you wish), that you receive source code or can get it
|
this service if you wish), that you receive source code or can get it
|
||||||
if you want it, that you can change the software or use pieces of it
|
if you want it, that you can change the software or use pieces of it
|
||||||
in new free programs; and that you know you can do these things.
|
in new free programs; and that you know you can do these things.
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
To protect your rights, we need to make restrictions that forbid
|
||||||
anyone to deny you these rights or to ask you to surrender the rights.
|
anyone to deny you these rights or to ask you to surrender the rights.
|
||||||
These restrictions translate to certain responsibilities for you if you
|
These restrictions translate to certain responsibilities for you if you
|
||||||
distribute copies of the software, or if you modify it.
|
distribute copies of the software, or if you modify it.
|
||||||
|
|
||||||
For example, if you distribute copies of such a program, whether
|
For example, if you distribute copies of such a program, whether
|
||||||
gratis or for a fee, you must give the recipients all the rights that
|
gratis or for a fee, you must give the recipients all the rights that
|
||||||
you have. You must make sure that they, too, receive or can get the
|
you have. You must make sure that they, too, receive or can get the
|
||||||
source code. And you must show them these terms so they know their
|
source code. And you must show them these terms so they know their
|
||||||
rights.
|
rights.
|
||||||
|
|
||||||
We protect your rights with two steps: (1) copyright the software, and
|
We protect your rights with two steps: (1) copyright the software, and
|
||||||
(2) offer you this license which gives you legal permission to copy,
|
(2) offer you this license which gives you legal permission to copy,
|
||||||
distribute and/or modify the software.
|
distribute and/or modify the software.
|
||||||
|
|
||||||
Also, for each author's protection and ours, we want to make certain
|
Also, for each author's protection and ours, we want to make certain
|
||||||
that everyone understands that there is no warranty for this free
|
that everyone understands that there is no warranty for this free
|
||||||
software. If the software is modified by someone else and passed on, we
|
software. If the software is modified by someone else and passed on, we
|
||||||
want its recipients to know that what they have is not the original, so
|
want its recipients to know that what they have is not the original, so
|
||||||
that any problems introduced by others will not reflect on the original
|
that any problems introduced by others will not reflect on the original
|
||||||
authors' reputations.
|
authors' reputations.
|
||||||
|
|
||||||
Finally, any free program is threatened constantly by software
|
Finally, any free program is threatened constantly by software
|
||||||
patents. We wish to avoid the danger that redistributors of a free
|
patents. We wish to avoid the danger that redistributors of a free
|
||||||
program will individually obtain patent licenses, in effect making the
|
program will individually obtain patent licenses, in effect making the
|
||||||
program proprietary. To prevent this, we have made it clear that any
|
program proprietary. To prevent this, we have made it clear that any
|
||||||
patent must be licensed for everyone's free use or not licensed at all.
|
patent must be licensed for everyone's free use or not licensed at all.
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
The precise terms and conditions for copying, distribution and
|
||||||
modification follow.
|
modification follow.
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||||
|
|
||||||
0. This License applies to any program or other work which contains
|
0. This License applies to any program or other work which contains
|
||||||
a notice placed by the copyright holder saying it may be distributed
|
a notice placed by the copyright holder saying it may be distributed
|
||||||
under the terms of this General Public License. The "Program", below,
|
under the terms of this General Public License. The "Program", below,
|
||||||
refers to any such program or work, and a "work based on the Program"
|
refers to any such program or work, and a "work based on the Program"
|
||||||
means either the Program or any derivative work under copyright law:
|
means either the Program or any derivative work under copyright law:
|
||||||
that is to say, a work containing the Program or a portion of it,
|
that is to say, a work containing the Program or a portion of it,
|
||||||
either verbatim or with modifications and/or translated into another
|
either verbatim or with modifications and/or translated into another
|
||||||
language. (Hereinafter, translation is included without limitation in
|
language. (Hereinafter, translation is included without limitation in
|
||||||
the term "modification".) Each licensee is addressed as "you".
|
the term "modification".) Each licensee is addressed as "you".
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
Activities other than copying, distribution and modification are not
|
||||||
covered by this License; they are outside its scope. The act of
|
covered by this License; they are outside its scope. The act of
|
||||||
running the Program is not restricted, and the output from the Program
|
running the Program is not restricted, and the output from the Program
|
||||||
is covered only if its contents constitute a work based on the
|
is covered only if its contents constitute a work based on the
|
||||||
Program (independent of having been made by running the Program).
|
Program (independent of having been made by running the Program).
|
||||||
Whether that is true depends on what the Program does.
|
Whether that is true depends on what the Program does.
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Program's
|
1. You may copy and distribute verbatim copies of the Program's
|
||||||
source code as you receive it, in any medium, provided that you
|
source code as you receive it, in any medium, provided that you
|
||||||
conspicuously and appropriately publish on each copy an appropriate
|
conspicuously and appropriately publish on each copy an appropriate
|
||||||
copyright notice and disclaimer of warranty; keep intact all the
|
copyright notice and disclaimer of warranty; keep intact all the
|
||||||
notices that refer to this License and to the absence of any warranty;
|
notices that refer to this License and to the absence of any warranty;
|
||||||
and give any other recipients of the Program a copy of this License
|
and give any other recipients of the Program a copy of this License
|
||||||
along with the Program.
|
along with the Program.
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy, and
|
You may charge a fee for the physical act of transferring a copy, and
|
||||||
you may at your option offer warranty protection in exchange for a fee.
|
you may at your option offer warranty protection in exchange for a fee.
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Program or any portion
|
2. You may modify your copy or copies of the Program or any portion
|
||||||
of it, thus forming a work based on the Program, and copy and
|
of it, thus forming a work based on the Program, and copy and
|
||||||
distribute such modifications or work under the terms of Section 1
|
distribute such modifications or work under the terms of Section 1
|
||||||
above, provided that you also meet all of these conditions:
|
above, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
a) You must cause the modified files to carry prominent notices
|
a) You must cause the modified files to carry prominent notices
|
||||||
stating that you changed the files and the date of any change.
|
stating that you changed the files and the date of any change.
|
||||||
|
|
||||||
b) You must cause any work that you distribute or publish, that in
|
b) You must cause any work that you distribute or publish, that in
|
||||||
whole or in part contains or is derived from the Program or any
|
whole or in part contains or is derived from the Program or any
|
||||||
part thereof, to be licensed as a whole at no charge to all third
|
part thereof, to be licensed as a whole at no charge to all third
|
||||||
parties under the terms of this License.
|
parties under the terms of this License.
|
||||||
|
|
||||||
c) If the modified program normally reads commands interactively
|
c) If the modified program normally reads commands interactively
|
||||||
when run, you must cause it, when started running for such
|
when run, you must cause it, when started running for such
|
||||||
interactive use in the most ordinary way, to print or display an
|
interactive use in the most ordinary way, to print or display an
|
||||||
announcement including an appropriate copyright notice and a
|
announcement including an appropriate copyright notice and a
|
||||||
notice that there is no warranty (or else, saying that you provide
|
notice that there is no warranty (or else, saying that you provide
|
||||||
a warranty) and that users may redistribute the program under
|
a warranty) and that users may redistribute the program under
|
||||||
these conditions, and telling the user how to view a copy of this
|
these conditions, and telling the user how to view a copy of this
|
||||||
License. (Exception: if the Program itself is interactive but
|
License. (Exception: if the Program itself is interactive but
|
||||||
does not normally print such an announcement, your work based on
|
does not normally print such an announcement, your work based on
|
||||||
the Program is not required to print an announcement.)
|
the Program is not required to print an announcement.)
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
These requirements apply to the modified work as a whole. If
|
||||||
identifiable sections of that work are not derived from the Program,
|
identifiable sections of that work are not derived from the Program,
|
||||||
and can be reasonably considered independent and separate works in
|
and can be reasonably considered independent and separate works in
|
||||||
themselves, then this License, and its terms, do not apply to those
|
themselves, then this License, and its terms, do not apply to those
|
||||||
sections when you distribute them as separate works. But when you
|
sections when you distribute them as separate works. But when you
|
||||||
distribute the same sections as part of a whole which is a work based
|
distribute the same sections as part of a whole which is a work based
|
||||||
on the Program, the distribution of the whole must be on the terms of
|
on the Program, the distribution of the whole must be on the terms of
|
||||||
this License, whose permissions for other licensees extend to the
|
this License, whose permissions for other licensees extend to the
|
||||||
entire whole, and thus to each and every part regardless of who wrote it.
|
entire whole, and thus to each and every part regardless of who wrote it.
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
Thus, it is not the intent of this section to claim rights or contest
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
your rights to work written entirely by you; rather, the intent is to
|
||||||
exercise the right to control the distribution of derivative or
|
exercise the right to control the distribution of derivative or
|
||||||
collective works based on the Program.
|
collective works based on the Program.
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Program
|
In addition, mere aggregation of another work not based on the Program
|
||||||
with the Program (or with a work based on the Program) on a volume of
|
with the Program (or with a work based on the Program) on a volume of
|
||||||
a storage or distribution medium does not bring the other work under
|
a storage or distribution medium does not bring the other work under
|
||||||
the scope of this License.
|
the scope of this License.
|
||||||
|
|
||||||
3. You may copy and distribute the Program (or a work based on it,
|
3. You may copy and distribute the Program (or a work based on it,
|
||||||
under Section 2) in object code or executable form under the terms of
|
under Section 2) in object code or executable form under the terms of
|
||||||
Sections 1 and 2 above provided that you also do one of the following:
|
Sections 1 and 2 above provided that you also do one of the following:
|
||||||
|
|
||||||
a) Accompany it with the complete corresponding machine-readable
|
a) Accompany it with the complete corresponding machine-readable
|
||||||
source code, which must be distributed under the terms of Sections
|
source code, which must be distributed under the terms of Sections
|
||||||
1 and 2 above on a medium customarily used for software interchange; or,
|
1 and 2 above on a medium customarily used for software interchange; or,
|
||||||
|
|
||||||
b) Accompany it with a written offer, valid for at least three
|
b) Accompany it with a written offer, valid for at least three
|
||||||
years, to give any third party, for a charge no more than your
|
years, to give any third party, for a charge no more than your
|
||||||
cost of physically performing source distribution, a complete
|
cost of physically performing source distribution, a complete
|
||||||
machine-readable copy of the corresponding source code, to be
|
machine-readable copy of the corresponding source code, to be
|
||||||
distributed under the terms of Sections 1 and 2 above on a medium
|
distributed under the terms of Sections 1 and 2 above on a medium
|
||||||
customarily used for software interchange; or,
|
customarily used for software interchange; or,
|
||||||
|
|
||||||
c) Accompany it with the information you received as to the offer
|
c) Accompany it with the information you received as to the offer
|
||||||
to distribute corresponding source code. (This alternative is
|
to distribute corresponding source code. (This alternative is
|
||||||
allowed only for noncommercial distribution and only if you
|
allowed only for noncommercial distribution and only if you
|
||||||
received the program in object code or executable form with such
|
received the program in object code or executable form with such
|
||||||
an offer, in accord with Subsection b above.)
|
an offer, in accord with Subsection b above.)
|
||||||
|
|
||||||
The source code for a work means the preferred form of the work for
|
The source code for a work means the preferred form of the work for
|
||||||
making modifications to it. For an executable work, complete source
|
making modifications to it. For an executable work, complete source
|
||||||
code means all the source code for all modules it contains, plus any
|
code means all the source code for all modules it contains, plus any
|
||||||
associated interface definition files, plus the scripts used to
|
associated interface definition files, plus the scripts used to
|
||||||
control compilation and installation of the executable. However, as a
|
control compilation and installation of the executable. However, as a
|
||||||
special exception, the source code distributed need not include
|
special exception, the source code distributed need not include
|
||||||
anything that is normally distributed (in either source or binary
|
anything that is normally distributed (in either source or binary
|
||||||
form) with the major components (compiler, kernel, and so on) of the
|
form) with the major components (compiler, kernel, and so on) of the
|
||||||
operating system on which the executable runs, unless that component
|
operating system on which the executable runs, unless that component
|
||||||
itself accompanies the executable.
|
itself accompanies the executable.
|
||||||
|
|
||||||
If distribution of executable or object code is made by offering
|
If distribution of executable or object code is made by offering
|
||||||
access to copy from a designated place, then offering equivalent
|
access to copy from a designated place, then offering equivalent
|
||||||
access to copy the source code from the same place counts as
|
access to copy the source code from the same place counts as
|
||||||
distribution of the source code, even though third parties are not
|
distribution of the source code, even though third parties are not
|
||||||
compelled to copy the source along with the object code.
|
compelled to copy the source along with the object code.
|
||||||
|
|
||||||
4. You may not copy, modify, sublicense, or distribute the Program
|
4. You may not copy, modify, sublicense, or distribute the Program
|
||||||
except as expressly provided under this License. Any attempt
|
except as expressly provided under this License. Any attempt
|
||||||
otherwise to copy, modify, sublicense or distribute the Program is
|
otherwise to copy, modify, sublicense or distribute the Program is
|
||||||
void, and will automatically terminate your rights under this License.
|
void, and will automatically terminate your rights under this License.
|
||||||
However, parties who have received copies, or rights, from you under
|
However, parties who have received copies, or rights, from you under
|
||||||
this License will not have their licenses terminated so long as such
|
this License will not have their licenses terminated so long as such
|
||||||
parties remain in full compliance.
|
parties remain in full compliance.
|
||||||
|
|
||||||
5. You are not required to accept this License, since you have not
|
5. You are not required to accept this License, since you have not
|
||||||
signed it. However, nothing else grants you permission to modify or
|
signed it. However, nothing else grants you permission to modify or
|
||||||
distribute the Program or its derivative works. These actions are
|
distribute the Program or its derivative works. These actions are
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
prohibited by law if you do not accept this License. Therefore, by
|
||||||
modifying or distributing the Program (or any work based on the
|
modifying or distributing the Program (or any work based on the
|
||||||
Program), you indicate your acceptance of this License to do so, and
|
Program), you indicate your acceptance of this License to do so, and
|
||||||
all its terms and conditions for copying, distributing or modifying
|
all its terms and conditions for copying, distributing or modifying
|
||||||
the Program or works based on it.
|
the Program or works based on it.
|
||||||
|
|
||||||
6. Each time you redistribute the Program (or any work based on the
|
6. Each time you redistribute the Program (or any work based on the
|
||||||
Program), the recipient automatically receives a license from the
|
Program), the recipient automatically receives a license from the
|
||||||
original licensor to copy, distribute or modify the Program subject to
|
original licensor to copy, distribute or modify the Program subject to
|
||||||
these terms and conditions. You may not impose any further
|
these terms and conditions. You may not impose any further
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
restrictions on the recipients' exercise of the rights granted herein.
|
||||||
You are not responsible for enforcing compliance by third parties to
|
You are not responsible for enforcing compliance by third parties to
|
||||||
this License.
|
this License.
|
||||||
|
|
||||||
7. If, as a consequence of a court judgment or allegation of patent
|
7. If, as a consequence of a court judgment or allegation of patent
|
||||||
infringement or for any other reason (not limited to patent issues),
|
infringement or for any other reason (not limited to patent issues),
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
conditions are imposed on you (whether by court order, agreement or
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
excuse you from the conditions of this License. If you cannot
|
excuse you from the conditions of this License. If you cannot
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
distribute so as to satisfy simultaneously your obligations under this
|
||||||
License and any other pertinent obligations, then as a consequence you
|
License and any other pertinent obligations, then as a consequence you
|
||||||
may not distribute the Program at all. For example, if a patent
|
may not distribute the Program at all. For example, if a patent
|
||||||
license would not permit royalty-free redistribution of the Program by
|
license would not permit royalty-free redistribution of the Program by
|
||||||
all those who receive copies directly or indirectly through you, then
|
all those who receive copies directly or indirectly through you, then
|
||||||
the only way you could satisfy both it and this License would be to
|
the only way you could satisfy both it and this License would be to
|
||||||
refrain entirely from distribution of the Program.
|
refrain entirely from distribution of the Program.
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under
|
If any portion of this section is held invalid or unenforceable under
|
||||||
any particular circumstance, the balance of the section is intended to
|
any particular circumstance, the balance of the section is intended to
|
||||||
apply and the section as a whole is intended to apply in other
|
apply and the section as a whole is intended to apply in other
|
||||||
circumstances.
|
circumstances.
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
It is not the purpose of this section to induce you to infringe any
|
||||||
patents or other property right claims or to contest validity of any
|
patents or other property right claims or to contest validity of any
|
||||||
such claims; this section has the sole purpose of protecting the
|
such claims; this section has the sole purpose of protecting the
|
||||||
integrity of the free software distribution system, which is
|
integrity of the free software distribution system, which is
|
||||||
implemented by public license practices. Many people have made
|
implemented by public license practices. Many people have made
|
||||||
generous contributions to the wide range of software distributed
|
generous contributions to the wide range of software distributed
|
||||||
through that system in reliance on consistent application of that
|
through that system in reliance on consistent application of that
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
system; it is up to the author/donor to decide if he or she is willing
|
||||||
to distribute software through any other system and a licensee cannot
|
to distribute software through any other system and a licensee cannot
|
||||||
impose that choice.
|
impose that choice.
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
This section is intended to make thoroughly clear what is believed to
|
||||||
be a consequence of the rest of this License.
|
be a consequence of the rest of this License.
|
||||||
|
|
||||||
8. If the distribution and/or use of the Program is restricted in
|
8. If the distribution and/or use of the Program is restricted in
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
certain countries either by patents or by copyrighted interfaces, the
|
||||||
original copyright holder who places the Program under this License
|
original copyright holder who places the Program under this License
|
||||||
may add an explicit geographical distribution limitation excluding
|
may add an explicit geographical distribution limitation excluding
|
||||||
those countries, so that distribution is permitted only in or among
|
those countries, so that distribution is permitted only in or among
|
||||||
countries not thus excluded. In such case, this License incorporates
|
countries not thus excluded. In such case, this License incorporates
|
||||||
the limitation as if written in the body of this License.
|
the limitation as if written in the body of this License.
|
||||||
|
|
||||||
9. The Free Software Foundation may publish revised and/or new versions
|
9. The Free Software Foundation may publish revised and/or new versions
|
||||||
of the General Public License from time to time. Such new versions will
|
of the General Public License from time to time. Such new versions will
|
||||||
be similar in spirit to the present version, but may differ in detail to
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
address new problems or concerns.
|
address new problems or concerns.
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Program
|
Each version is given a distinguishing version number. If the Program
|
||||||
specifies a version number of this License which applies to it and "any
|
specifies a version number of this License which applies to it and "any
|
||||||
later version", you have the option of following the terms and conditions
|
later version", you have the option of following the terms and conditions
|
||||||
either of that version or of any later version published by the Free
|
either of that version or of any later version published by the Free
|
||||||
Software Foundation. If the Program does not specify a version number of
|
Software Foundation. If the Program does not specify a version number of
|
||||||
this License, you may choose any version ever published by the Free Software
|
this License, you may choose any version ever published by the Free Software
|
||||||
Foundation.
|
Foundation.
|
||||||
|
|
||||||
10. If you wish to incorporate parts of the Program into other free
|
10. If you wish to incorporate parts of the Program into other free
|
||||||
programs whose distribution conditions are different, write to the author
|
programs whose distribution conditions are different, write to the author
|
||||||
to ask for permission. For software which is copyrighted by the Free
|
to ask for permission. For software which is copyrighted by the Free
|
||||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||||
make exceptions for this. Our decision will be guided by the two goals
|
make exceptions for this. Our decision will be guided by the two goals
|
||||||
of preserving the free status of all derivatives of our free software and
|
of preserving the free status of all derivatives of our free software and
|
||||||
of promoting the sharing and reuse of software generally.
|
of promoting the sharing and reuse of software generally.
|
||||||
|
|
||||||
NO WARRANTY
|
NO WARRANTY
|
||||||
|
|
||||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||||
REPAIR OR CORRECTION.
|
REPAIR OR CORRECTION.
|
||||||
|
|
||||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||||
POSSIBILITY OF SUCH DAMAGES.
|
POSSIBILITY OF SUCH DAMAGES.
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
How to Apply These Terms to Your New Programs
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
If you develop a new program, and you want it to be of the greatest
|
If you develop a new program, and you want it to be of the greatest
|
||||||
possible use to the public, the best way to achieve this is to make it
|
possible use to the public, the best way to achieve this is to make it
|
||||||
free software which everyone can redistribute and change under these terms.
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
To do so, attach the following notices to the program. It is safest
|
To do so, attach the following notices to the program. It is safest
|
||||||
to attach them to the start of each source file to most effectively
|
to attach them to the start of each source file to most effectively
|
||||||
convey the exclusion of warranty; and each file should have at least
|
convey the exclusion of warranty; and each file should have at least
|
||||||
the "copyright" line and a pointer to where the full notice is found.
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
<one line to give the program's name and a brief idea of what it does.>
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
Copyright (C) <year> <name of author>
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify
|
This program is free software; you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation; either version 2 of the License, or
|
the Free Software Foundation; either version 2 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
If the program is interactive, make it output a short notice like this
|
If the program is interactive, make it output a short notice like this
|
||||||
when it starts in an interactive mode:
|
when it starts in an interactive mode:
|
||||||
|
|
||||||
Gnomovision version 69, Copyright (C) year name of author
|
Gnomovision version 69, Copyright (C) year name of author
|
||||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
This is free software, and you are welcome to redistribute it
|
This is free software, and you are welcome to redistribute it
|
||||||
under certain conditions; type `show c' for details.
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
parts of the General Public License. Of course, the commands you use may
|
parts of the General Public License. Of course, the commands you use may
|
||||||
be called something other than `show w' and `show c'; they could even be
|
be called something other than `show w' and `show c'; they could even be
|
||||||
mouse-clicks or menu items--whatever suits your program.
|
mouse-clicks or menu items--whatever suits your program.
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
You should also get your employer (if you work as a programmer) or your
|
||||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||||
necessary. Here is a sample; alter the names:
|
necessary. Here is a sample; alter the names:
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1989
|
<signature of Ty Coon>, 1 April 1989
|
||||||
Ty Coon, President of Vice
|
Ty Coon, President of Vice
|
||||||
|
|
||||||
This General Public License does not permit incorporating your program into
|
This General Public License does not permit incorporating your program into
|
||||||
proprietary programs. If your program is a subroutine library, you may
|
proprietary programs. If your program is a subroutine library, you may
|
||||||
consider it more useful to permit linking proprietary applications with the
|
consider it more useful to permit linking proprietary applications with the
|
||||||
library. If this is what you want to do, use the GNU Library General
|
library. If this is what you want to do, use the GNU Library General
|
||||||
Public License instead of this License.
|
Public License instead of this License.
|
@@ -1,148 +1,148 @@
|
|||||||
Installation
|
Installation
|
||||||
============
|
============
|
||||||
* Download the .zip file and unzip it
|
* Download the .zip file and unzip it
|
||||||
* Create a folder e.g. /mpdf on your server
|
* Create a folder e.g. /mpdf on your server
|
||||||
* Upload all of the files to the server, maintaining the folders as they are
|
* Upload all of the files to the server, maintaining the folders as they are
|
||||||
* Ensure that you have write permissions set (CHMOD 6xx or 7xx) for the following folders:
|
* Ensure that you have write permissions set (CHMOD 6xx or 7xx) for the following folders:
|
||||||
/ttfontdata/ - used to cache font data; improves performance a lot
|
/ttfontdata/ - used to cache font data; improves performance a lot
|
||||||
/tmp/ - used for some images and ProgressBar
|
/tmp/ - used for some images and ProgressBar
|
||||||
/graph_cache/ - if you are using JpGraph in conjunction with mPDF
|
/graph_cache/ - if you are using JpGraph in conjunction with mPDF
|
||||||
|
|
||||||
To test the installation, point your browser to the basic example file : [path_to_mpdf_folder]/mpdf/examples/example_basic.php
|
To test the installation, point your browser to the basic example file : [path_to_mpdf_folder]/mpdf/examples/example_basic.php
|
||||||
|
|
||||||
If you wish to define a different folder for temporary files rather than /tmp/ see the note on 'Folder for temporary files' in
|
If you wish to define a different folder for temporary files rather than /tmp/ see the note on 'Folder for temporary files' in
|
||||||
the section on Installation & Setup in the manual (http://mpdf1.com/manual/).
|
the section on Installation & Setup in the manual (http://mpdf1.com/manual/).
|
||||||
|
|
||||||
If you have problems, please read the section on troubleshooting in the manual.
|
If you have problems, please read the section on troubleshooting in the manual.
|
||||||
|
|
||||||
|
|
||||||
Fonts
|
Fonts
|
||||||
=====
|
=====
|
||||||
I will refer to font names in 2 ways:
|
I will refer to font names in 2 ways:
|
||||||
"CSS font-family name" - mPDF is designed primarily to read HTML and CSS. This is the name used in CSS e.g.
|
"CSS font-family name" - mPDF is designed primarily to read HTML and CSS. This is the name used in CSS e.g.
|
||||||
<p style="font-family: 'Trebuchet MS';">
|
<p style="font-family: 'Trebuchet MS';">
|
||||||
|
|
||||||
"mPDF font-family name" - the name used internally to process fonts. This could be anything you like,
|
"mPDF font-family name" - the name used internally to process fonts. This could be anything you like,
|
||||||
but by default mPDF will convert CSS font-family names by removing any spaces and changing
|
but by default mPDF will convert CSS font-family names by removing any spaces and changing
|
||||||
to lowercase. Reading the name above, mPDF will look for a "mPDF font-family name" of
|
to lowercase. Reading the name above, mPDF will look for a "mPDF font-family name" of
|
||||||
'trebuchetms'.
|
'trebuchetms'.
|
||||||
|
|
||||||
The configurable values referred to below are set in the config_fonts.php file
|
The configurable values referred to below are set in the config_fonts.php file
|
||||||
|
|
||||||
When parsing HTML/CSS, mPDF will read the CSS font-family name (e.g. 'Trebuchet MS') and convert
|
When parsing HTML/CSS, mPDF will read the CSS font-family name (e.g. 'Trebuchet MS') and convert
|
||||||
by removing any spaces and changing to lowercase, to look for a mPDF font-family name (trebuchetms).
|
by removing any spaces and changing to lowercase, to look for a mPDF font-family name (trebuchetms).
|
||||||
|
|
||||||
Next it will look for a translation (if set) e.g.:
|
Next it will look for a translation (if set) e.g.:
|
||||||
$this->fonttrans = array(
|
$this->fonttrans = array(
|
||||||
'trebuchetms' => 'trebuchet'
|
'trebuchetms' => 'trebuchet'
|
||||||
)
|
)
|
||||||
|
|
||||||
Now the mPDF font-family name to be used is 'trebuchet'
|
Now the mPDF font-family name to be used is 'trebuchet'
|
||||||
|
|
||||||
If you wish to make this font available, you need to specify the Truetype .ttf font files for each variant.
|
If you wish to make this font available, you need to specify the Truetype .ttf font files for each variant.
|
||||||
These should be defined in the array:
|
These should be defined in the array:
|
||||||
$this->fontdata = array(
|
$this->fontdata = array(
|
||||||
"trebuchet" => array(
|
"trebuchet" => array(
|
||||||
'R' => "trebuc.ttf",
|
'R' => "trebuc.ttf",
|
||||||
'B' => "trebucbd.ttf",
|
'B' => "trebucbd.ttf",
|
||||||
'I' => "trebucit.ttf",
|
'I' => "trebucit.ttf",
|
||||||
'BI' => "trebucbi.ttf",
|
'BI' => "trebucbi.ttf",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
This is the array which determines whether a font is available to mPDF. Each font-family must have a
|
This is the array which determines whether a font is available to mPDF. Each font-family must have a
|
||||||
Regular ['R'] file defined - the others (bold, italic, bold-italic) are optional.
|
Regular ['R'] file defined - the others (bold, italic, bold-italic) are optional.
|
||||||
|
|
||||||
mPDF will try to load the font-file. If you have defined _MPDF_SYSTEM_TTFONTS at the top of the
|
mPDF will try to load the font-file. If you have defined _MPDF_SYSTEM_TTFONTS at the top of the
|
||||||
config_fonts.php file, it will first look for the font-file there. This is useful if you are running
|
config_fonts.php file, it will first look for the font-file there. This is useful if you are running
|
||||||
mPDF on a computer which already has a folder with TTF fonts in (e.g. on Windows)
|
mPDF on a computer which already has a folder with TTF fonts in (e.g. on Windows)
|
||||||
|
|
||||||
If the font-file is not there, or _MPDF_SYSTEM_TTFONTS is not defined, mPDF will look in the folder
|
If the font-file is not there, or _MPDF_SYSTEM_TTFONTS is not defined, mPDF will look in the folder
|
||||||
/[your_path_to_mpdf]/ttfonts/
|
/[your_path_to_mpdf]/ttfonts/
|
||||||
|
|
||||||
Note that the font-file names are case-sensitive and can contain capitals.
|
Note that the font-file names are case-sensitive and can contain capitals.
|
||||||
|
|
||||||
If the folder /ttfontdata/ is writeable (CHMOD 644 or 755), mPDF will save files there which it can
|
If the folder /ttfontdata/ is writeable (CHMOD 644 or 755), mPDF will save files there which it can
|
||||||
re-use next time it accesses a particular font. This will significantly improve processing time
|
re-use next time it accesses a particular font. This will significantly improve processing time
|
||||||
and is strongly recommended.
|
and is strongly recommended.
|
||||||
|
|
||||||
mPDF should be able to read most TrueType Unicode font files with a .ttf extension
|
mPDF should be able to read most TrueType Unicode font files with a .ttf extension
|
||||||
Truetype fonts with .ttf extension that are OpenType also work OK.
|
Truetype fonts with .ttf extension that are OpenType also work OK.
|
||||||
TrueType collections (.ttc) will also work if they contain TrueType Unicode fonts.
|
TrueType collections (.ttc) will also work if they contain TrueType Unicode fonts.
|
||||||
|
|
||||||
|
|
||||||
Character substitution
|
Character substitution
|
||||||
----------------------
|
----------------------
|
||||||
Most people will have access to a Pan-Unicode font with most Unicode characters in it such as
|
Most people will have access to a Pan-Unicode font with most Unicode characters in it such as
|
||||||
Arial Unicode MS. Set $this->backupSubsFont = array('arialunicodems'); at the top of the config_fonts.php file
|
Arial Unicode MS. Set $this->backupSubsFont = array('arialunicodems'); at the top of the config_fonts.php file
|
||||||
to use this font when substituting any characters not found in the specific font being used.
|
to use this font when substituting any characters not found in the specific font being used.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
You can set $mpdf->useSubstitutions = true; at runtime
|
You can set $mpdf->useSubstitutions = true; at runtime
|
||||||
or $this->useSubstitutions = true; in the config.php file
|
or $this->useSubstitutions = true; in the config.php file
|
||||||
|
|
||||||
<p style="font-family: 'Comic Sans MS'">This text contains a Thai character ม which does not exist
|
<p style="font-family: 'Comic Sans MS'">This text contains a Thai character ม which does not exist
|
||||||
in the Comic Sans MS font file</p>
|
in the Comic Sans MS font file</p>
|
||||||
|
|
||||||
When useSubstitutions is true, mPDF will try to find substitutions for any missing characters:
|
When useSubstitutions is true, mPDF will try to find substitutions for any missing characters:
|
||||||
1) firstly looks if the character is available in the inbuilt Symbols or ZapfDingbats fonts;
|
1) firstly looks if the character is available in the inbuilt Symbols or ZapfDingbats fonts;
|
||||||
2) [If defined] looks in each of the the font(s) set by $this->backupSubsFont array
|
2) [If defined] looks in each of the the font(s) set by $this->backupSubsFont array
|
||||||
|
|
||||||
NB There is an increase in processing time when using substitutions, and even more so if
|
NB There is an increase in processing time when using substitutions, and even more so if
|
||||||
a backupSubsFont is defined.
|
a backupSubsFont is defined.
|
||||||
|
|
||||||
Controlling mPDF mode
|
Controlling mPDF mode
|
||||||
=====================
|
=====================
|
||||||
The first parameter of new mPDF('') works as follows:
|
The first parameter of new mPDF('') works as follows:
|
||||||
new mPDF('c') - forces mPDF to only use the built-in [c]ore Adobe fonts (Helvetica, Times etc)
|
new mPDF('c') - forces mPDF to only use the built-in [c]ore Adobe fonts (Helvetica, Times etc)
|
||||||
|
|
||||||
new mPDF('') - default - font subsetting behaviour is determined by the configurable variables
|
new mPDF('') - default - font subsetting behaviour is determined by the configurable variables
|
||||||
$this->maxTTFFilesize and $this->percentSubset (see below)
|
$this->maxTTFFilesize and $this->percentSubset (see below)
|
||||||
Default values are set so that: 1) very large font files are always subset
|
Default values are set so that: 1) very large font files are always subset
|
||||||
2) Fonts are embedded as subsets if < 30% of the characters are used
|
2) Fonts are embedded as subsets if < 30% of the characters are used
|
||||||
|
|
||||||
new mPDF('..-x') - used together with a language or language/country code, this will cause
|
new mPDF('..-x') - used together with a language or language/country code, this will cause
|
||||||
mPDF to use only in-built core fonts (Helvetica, Times) if the language specified is appropiate;
|
mPDF to use only in-built core fonts (Helvetica, Times) if the language specified is appropiate;
|
||||||
otherwise it will force subsetting (equivalent to using "")
|
otherwise it will force subsetting (equivalent to using "")
|
||||||
e.g. new mPDF('de-x') or new mPDF('pt-BR-x') will use in-built core fonts
|
e.g. new mPDF('de-x') or new mPDF('pt-BR-x') will use in-built core fonts
|
||||||
and new mPDF('ru-x') will use subsets of any available TrueType fonts
|
and new mPDF('ru-x') will use subsets of any available TrueType fonts
|
||||||
The languages that use core fonts are defined in config_cp.php (using the value $coreSuitable).
|
The languages that use core fonts are defined in config_cp.php (using the value $coreSuitable).
|
||||||
|
|
||||||
new mPDF('..+aCJK') new mPDF('+aCJK')
|
new mPDF('..+aCJK') new mPDF('+aCJK')
|
||||||
new mPDF('..-aCJK') new mPDF('-aCJK')
|
new mPDF('..-aCJK') new mPDF('-aCJK')
|
||||||
- used optionally together with a language or language/country code, +aCJK will force mPDF
|
- used optionally together with a language or language/country code, +aCJK will force mPDF
|
||||||
to use the Adobe non-embedded CJK fonts when a passage is marked with e.g. "lang: ja"
|
to use the Adobe non-embedded CJK fonts when a passage is marked with e.g. "lang: ja"
|
||||||
This can be used at runtime to override the value set for $mpdf->useAdobeCJK in config.php
|
This can be used at runtime to override the value set for $mpdf->useAdobeCJK in config.php
|
||||||
Use in conjunction with settings in config_cp.php
|
Use in conjunction with settings in config_cp.php
|
||||||
|
|
||||||
For backwards compatibility, new mPDF('-s') and new mPDF('s') will force subsetting by
|
For backwards compatibility, new mPDF('-s') and new mPDF('s') will force subsetting by
|
||||||
setting $this->percentSubset=100 (see below)
|
setting $this->percentSubset=100 (see below)
|
||||||
new mPDF('utf-8-s') and new mPDF('ar-s') are also recognised
|
new mPDF('utf-8-s') and new mPDF('ar-s') are also recognised
|
||||||
|
|
||||||
Language/Country (ll-cc)
|
Language/Country (ll-cc)
|
||||||
------------------------
|
------------------------
|
||||||
You can use a language code ('en') or language/country code ('en-GB') to control which
|
You can use a language code ('en') or language/country code ('en-GB') to control which
|
||||||
mode/fonts are used. The behaviour is set up in config_cp.php file.
|
mode/fonts are used. The behaviour is set up in config_cp.php file.
|
||||||
The default settings show some of the things you can do:
|
The default settings show some of the things you can do:
|
||||||
new mPDF('de') - as German is a Western European langauge, it is suitable to use the Adobe core fonts.
|
new mPDF('de') - as German is a Western European langauge, it is suitable to use the Adobe core fonts.
|
||||||
Using 'de' alone will do nothing, but if you use ('de-x'), this will use core fonts.
|
Using 'de' alone will do nothing, but if you use ('de-x'), this will use core fonts.
|
||||||
new mPDF('th') - many fonts do not contain the characters necessary for Thai script. The value $unifonts
|
new mPDF('th') - many fonts do not contain the characters necessary for Thai script. The value $unifonts
|
||||||
defines a restricted list of fonts available for mPDF to use.
|
defines a restricted list of fonts available for mPDF to use.
|
||||||
|
|
||||||
NB <html dir="rtl"> or <body dir="rtl"> are supported.
|
NB <html dir="rtl"> or <body dir="rtl"> are supported.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Configuration variables changed
|
Configuration variables changed
|
||||||
===============================
|
===============================
|
||||||
Configuration variables are documented in the on-line manual (http://mpdf1.com/manual/).
|
Configuration variables are documented in the on-line manual (http://mpdf1.com/manual/).
|
||||||
|
|
||||||
|
|
||||||
Font folders
|
Font folders
|
||||||
============
|
============
|
||||||
If you wish to define your own font file folders (perhaps to share),
|
If you wish to define your own font file folders (perhaps to share),
|
||||||
you can define the 2 constants in your script before including the mpdf.php script e.g.:
|
you can define the 2 constants in your script before including the mpdf.php script e.g.:
|
||||||
|
|
||||||
define('_MPDF_TTFONTPATH','your_path/ttfonts/');
|
define('_MPDF_TTFONTPATH','your_path/ttfonts/');
|
||||||
define('_MPDF_TTFONTDATAPATH','your_path/ttfontdata/'); // should be writeable
|
define('_MPDF_TTFONTDATAPATH','your_path/ttfontdata/'); // should be writeable
|
||||||
|
|
@@ -1,248 +1,248 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class bmp {
|
class bmp {
|
||||||
|
|
||||||
var $mpdf = null;
|
var $mpdf = null;
|
||||||
|
|
||||||
function bmp(&$mpdf) {
|
function bmp(&$mpdf) {
|
||||||
$this->mpdf = $mpdf;
|
$this->mpdf = $mpdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _getBMPimage($data, $file) {
|
function _getBMPimage($data, $file) {
|
||||||
$info = array();
|
$info = array();
|
||||||
// Adapted from script by Valentin Schmidt
|
// Adapted from script by Valentin Schmidt
|
||||||
// http://staff.dasdeck.de/valentin/fpdf/fpdf_bmp/
|
// http://staff.dasdeck.de/valentin/fpdf/fpdf_bmp/
|
||||||
$bfOffBits=$this->_fourbytes2int_le(substr($data,10,4));
|
$bfOffBits=$this->_fourbytes2int_le(substr($data,10,4));
|
||||||
$width=$this->_fourbytes2int_le(substr($data,18,4));
|
$width=$this->_fourbytes2int_le(substr($data,18,4));
|
||||||
$height=$this->_fourbytes2int_le(substr($data,22,4));
|
$height=$this->_fourbytes2int_le(substr($data,22,4));
|
||||||
$flip = ($height<0);
|
$flip = ($height<0);
|
||||||
if ($flip) $height =-$height;
|
if ($flip) $height =-$height;
|
||||||
$biBitCount=$this->_twobytes2int_le(substr($data,28,2));
|
$biBitCount=$this->_twobytes2int_le(substr($data,28,2));
|
||||||
$biCompression=$this->_fourbytes2int_le(substr($data,30,4));
|
$biCompression=$this->_fourbytes2int_le(substr($data,30,4));
|
||||||
$info = array('w'=>$width, 'h'=>$height);
|
$info = array('w'=>$width, 'h'=>$height);
|
||||||
if ($biBitCount<16){
|
if ($biBitCount<16){
|
||||||
$info['cs'] = 'Indexed';
|
$info['cs'] = 'Indexed';
|
||||||
$info['bpc'] = $biBitCount;
|
$info['bpc'] = $biBitCount;
|
||||||
$palStr = substr($data,54,($bfOffBits-54));
|
$palStr = substr($data,54,($bfOffBits-54));
|
||||||
$pal = '';
|
$pal = '';
|
||||||
$cnt = strlen($palStr)/4;
|
$cnt = strlen($palStr)/4;
|
||||||
for ($i=0;$i<$cnt;$i++){
|
for ($i=0;$i<$cnt;$i++){
|
||||||
$n = 4*$i;
|
$n = 4*$i;
|
||||||
$pal .= $palStr[$n+2].$palStr[$n+1].$palStr[$n];
|
$pal .= $palStr[$n+2].$palStr[$n+1].$palStr[$n];
|
||||||
}
|
}
|
||||||
$info['pal'] = $pal;
|
$info['pal'] = $pal;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$info['cs'] = 'DeviceRGB';
|
$info['cs'] = 'DeviceRGB';
|
||||||
$info['bpc'] = 8;
|
$info['bpc'] = 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->mpdf->restrictColorSpace==1 || $this->mpdf->PDFX || $this->mpdf->restrictColorSpace==3) {
|
if ($this->mpdf->restrictColorSpace==1 || $this->mpdf->PDFX || $this->mpdf->restrictColorSpace==3) {
|
||||||
if (($this->mpdf->PDFA && !$this->mpdf->PDFAauto) || ($this->mpdf->PDFX && !$this->mpdf->PDFXauto)) { $this->mpdf->PDFAXwarnings[] = "Image cannot be converted to suitable colour space for PDFA or PDFX file - ".$file." - (Image replaced by 'no-image'.)"; }
|
if (($this->mpdf->PDFA && !$this->mpdf->PDFAauto) || ($this->mpdf->PDFX && !$this->mpdf->PDFXauto)) { $this->mpdf->PDFAXwarnings[] = "Image cannot be converted to suitable colour space for PDFA or PDFX file - ".$file." - (Image replaced by 'no-image'.)"; }
|
||||||
return array('error' => "BMP Image cannot be converted to suitable colour space - ".$file." - (Image replaced by 'no-image'.)");
|
return array('error' => "BMP Image cannot be converted to suitable colour space - ".$file." - (Image replaced by 'no-image'.)");
|
||||||
}
|
}
|
||||||
|
|
||||||
$biXPelsPerMeter=$this->_fourbytes2int_le(substr($data,38,4)); // horizontal pixels per meter, usually set to zero
|
$biXPelsPerMeter=$this->_fourbytes2int_le(substr($data,38,4)); // horizontal pixels per meter, usually set to zero
|
||||||
//$biYPelsPerMeter=$this->_fourbytes2int_le(substr($data,42,4)); // vertical pixels per meter, usually set to zero
|
//$biYPelsPerMeter=$this->_fourbytes2int_le(substr($data,42,4)); // vertical pixels per meter, usually set to zero
|
||||||
$biXPelsPerMeter=round($biXPelsPerMeter/1000 *25.4);
|
$biXPelsPerMeter=round($biXPelsPerMeter/1000 *25.4);
|
||||||
//$biYPelsPerMeter=round($biYPelsPerMeter/1000 *25.4);
|
//$biYPelsPerMeter=round($biYPelsPerMeter/1000 *25.4);
|
||||||
$info['set-dpi'] = $biXPelsPerMeter;
|
$info['set-dpi'] = $biXPelsPerMeter;
|
||||||
|
|
||||||
switch ($biCompression){
|
switch ($biCompression){
|
||||||
case 0:
|
case 0:
|
||||||
$str = substr($data,$bfOffBits);
|
$str = substr($data,$bfOffBits);
|
||||||
break;
|
break;
|
||||||
case 1: # BI_RLE8
|
case 1: # BI_RLE8
|
||||||
$str = $this->rle8_decode(substr($data,$bfOffBits), $width);
|
$str = $this->rle8_decode(substr($data,$bfOffBits), $width);
|
||||||
break;
|
break;
|
||||||
case 2: # BI_RLE4
|
case 2: # BI_RLE4
|
||||||
$str = $this->rle4_decode(substr($data,$bfOffBits), $width);
|
$str = $this->rle4_decode(substr($data,$bfOffBits), $width);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$bmpdata = '';
|
$bmpdata = '';
|
||||||
$padCnt = (4-ceil(($width/(8/$biBitCount)))%4)%4;
|
$padCnt = (4-ceil(($width/(8/$biBitCount)))%4)%4;
|
||||||
switch ($biBitCount){
|
switch ($biBitCount){
|
||||||
case 1:
|
case 1:
|
||||||
case 4:
|
case 4:
|
||||||
case 8:
|
case 8:
|
||||||
$w = floor($width/(8/$biBitCount)) + ($width%(8/$biBitCount)?1:0);
|
$w = floor($width/(8/$biBitCount)) + ($width%(8/$biBitCount)?1:0);
|
||||||
$w_row = $w + $padCnt;
|
$w_row = $w + $padCnt;
|
||||||
if ($flip){
|
if ($flip){
|
||||||
for ($y=0;$y<$height;$y++){
|
for ($y=0;$y<$height;$y++){
|
||||||
$y0 = $y*$w_row;
|
$y0 = $y*$w_row;
|
||||||
for ($x=0;$x<$w;$x++)
|
for ($x=0;$x<$w;$x++)
|
||||||
$bmpdata .= $str[$y0+$x];
|
$bmpdata .= $str[$y0+$x];
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
for ($y=$height-1;$y>=0;$y--){
|
for ($y=$height-1;$y>=0;$y--){
|
||||||
$y0 = $y*$w_row;
|
$y0 = $y*$w_row;
|
||||||
for ($x=0;$x<$w;$x++)
|
for ($x=0;$x<$w;$x++)
|
||||||
$bmpdata .= $str[$y0+$x];
|
$bmpdata .= $str[$y0+$x];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 16:
|
case 16:
|
||||||
$w_row = $width*2 + $padCnt;
|
$w_row = $width*2 + $padCnt;
|
||||||
if ($flip){
|
if ($flip){
|
||||||
for ($y=0;$y<$height;$y++){
|
for ($y=0;$y<$height;$y++){
|
||||||
$y0 = $y*$w_row;
|
$y0 = $y*$w_row;
|
||||||
for ($x=0;$x<$width;$x++){
|
for ($x=0;$x<$width;$x++){
|
||||||
$n = (ord( $str[$y0 + 2*$x + 1])*256 + ord( $str[$y0 + 2*$x]));
|
$n = (ord( $str[$y0 + 2*$x + 1])*256 + ord( $str[$y0 + 2*$x]));
|
||||||
$b = ($n & 31)<<3; $g = ($n & 992)>>2; $r = ($n & 31744)>>7128;
|
$b = ($n & 31)<<3; $g = ($n & 992)>>2; $r = ($n & 31744)>>7128;
|
||||||
$bmpdata .= chr($r) . chr($g) . chr($b);
|
$bmpdata .= chr($r) . chr($g) . chr($b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
for ($y=$height-1;$y>=0;$y--){
|
for ($y=$height-1;$y>=0;$y--){
|
||||||
$y0 = $y*$w_row;
|
$y0 = $y*$w_row;
|
||||||
for ($x=0;$x<$width;$x++){
|
for ($x=0;$x<$width;$x++){
|
||||||
$n = (ord( $str[$y0 + 2*$x + 1])*256 + ord( $str[$y0 + 2*$x]));
|
$n = (ord( $str[$y0 + 2*$x + 1])*256 + ord( $str[$y0 + 2*$x]));
|
||||||
$b = ($n & 31)<<3; $g = ($n & 992)>>2; $r = ($n & 31744)>>7;
|
$b = ($n & 31)<<3; $g = ($n & 992)>>2; $r = ($n & 31744)>>7;
|
||||||
$bmpdata .= chr($r) . chr($g) . chr($b);
|
$bmpdata .= chr($r) . chr($g) . chr($b);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 24:
|
case 24:
|
||||||
case 32:
|
case 32:
|
||||||
$byteCnt = $biBitCount/8;
|
$byteCnt = $biBitCount/8;
|
||||||
$w_row = $width*$byteCnt + $padCnt;
|
$w_row = $width*$byteCnt + $padCnt;
|
||||||
|
|
||||||
if ($flip){
|
if ($flip){
|
||||||
for ($y=0;$y<$height;$y++){
|
for ($y=0;$y<$height;$y++){
|
||||||
$y0 = $y*$w_row;
|
$y0 = $y*$w_row;
|
||||||
for ($x=0;$x<$width;$x++){
|
for ($x=0;$x<$width;$x++){
|
||||||
$i = $y0 + $x*$byteCnt ; # + 1
|
$i = $y0 + $x*$byteCnt ; # + 1
|
||||||
$bmpdata .= $str[$i+2].$str[$i+1].$str[$i];
|
$bmpdata .= $str[$i+2].$str[$i+1].$str[$i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
for ($y=$height-1;$y>=0;$y--){
|
for ($y=$height-1;$y>=0;$y--){
|
||||||
$y0 = $y*$w_row;
|
$y0 = $y*$w_row;
|
||||||
for ($x=0;$x<$width;$x++){
|
for ($x=0;$x<$width;$x++){
|
||||||
$i = $y0 + $x*$byteCnt ; # + 1
|
$i = $y0 + $x*$byteCnt ; # + 1
|
||||||
$bmpdata .= $str[$i+2].$str[$i+1].$str[$i];
|
$bmpdata .= $str[$i+2].$str[$i+1].$str[$i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return array('error' => 'Error parsing BMP image - Unsupported image biBitCount');
|
return array('error' => 'Error parsing BMP image - Unsupported image biBitCount');
|
||||||
}
|
}
|
||||||
if ($this->mpdf->compress) {
|
if ($this->mpdf->compress) {
|
||||||
$bmpdata=gzcompress($bmpdata);
|
$bmpdata=gzcompress($bmpdata);
|
||||||
$info['f']='FlateDecode';
|
$info['f']='FlateDecode';
|
||||||
}
|
}
|
||||||
$info['data']=$bmpdata;
|
$info['data']=$bmpdata;
|
||||||
$info['type']='bmp';
|
$info['type']='bmp';
|
||||||
return $info;
|
return $info;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _fourbytes2int_le($s) {
|
function _fourbytes2int_le($s) {
|
||||||
//Read a 4-byte integer from string
|
//Read a 4-byte integer from string
|
||||||
return (ord($s[3])<<24) + (ord($s[2])<<16) + (ord($s[1])<<8) + ord($s[0]);
|
return (ord($s[3])<<24) + (ord($s[2])<<16) + (ord($s[1])<<8) + ord($s[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function _twobytes2int_le($s) {
|
function _twobytes2int_le($s) {
|
||||||
//Read a 2-byte integer from string
|
//Read a 2-byte integer from string
|
||||||
return (ord(substr($s, 1, 1))<<8) + ord(substr($s, 0, 1));
|
return (ord(substr($s, 1, 1))<<8) + ord(substr($s, 0, 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Decoder for RLE8 compression in windows bitmaps
|
# Decoder for RLE8 compression in windows bitmaps
|
||||||
# see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp
|
# see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp
|
||||||
function rle8_decode ($str, $width){
|
function rle8_decode ($str, $width){
|
||||||
$lineWidth = $width + (3 - ($width-1) % 4);
|
$lineWidth = $width + (3 - ($width-1) % 4);
|
||||||
$out = '';
|
$out = '';
|
||||||
$cnt = strlen($str);
|
$cnt = strlen($str);
|
||||||
for ($i=0;$i<$cnt;$i++){
|
for ($i=0;$i<$cnt;$i++){
|
||||||
$o = ord($str[$i]);
|
$o = ord($str[$i]);
|
||||||
switch ($o){
|
switch ($o){
|
||||||
case 0: # ESCAPE
|
case 0: # ESCAPE
|
||||||
$i++;
|
$i++;
|
||||||
switch (ord($str[$i])){
|
switch (ord($str[$i])){
|
||||||
case 0: # NEW LINE
|
case 0: # NEW LINE
|
||||||
$padCnt = $lineWidth - strlen($out)%$lineWidth;
|
$padCnt = $lineWidth - strlen($out)%$lineWidth;
|
||||||
if ($padCnt<$lineWidth) $out .= str_repeat(chr(0), $padCnt); # pad line
|
if ($padCnt<$lineWidth) $out .= str_repeat(chr(0), $padCnt); # pad line
|
||||||
break;
|
break;
|
||||||
case 1: # END OF FILE
|
case 1: # END OF FILE
|
||||||
$padCnt = $lineWidth - strlen($out)%$lineWidth;
|
$padCnt = $lineWidth - strlen($out)%$lineWidth;
|
||||||
if ($padCnt<$lineWidth) $out .= str_repeat(chr(0), $padCnt); # pad line
|
if ($padCnt<$lineWidth) $out .= str_repeat(chr(0), $padCnt); # pad line
|
||||||
break 3;
|
break 3;
|
||||||
case 2: # DELTA
|
case 2: # DELTA
|
||||||
$i += 2;
|
$i += 2;
|
||||||
break;
|
break;
|
||||||
default: # ABSOLUTE MODE
|
default: # ABSOLUTE MODE
|
||||||
$num = ord($str[$i]);
|
$num = ord($str[$i]);
|
||||||
for ($j=0;$j<$num;$j++)
|
for ($j=0;$j<$num;$j++)
|
||||||
$out .= $str[++$i];
|
$out .= $str[++$i];
|
||||||
if ($num % 2) $i++;
|
if ($num % 2) $i++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$out .= str_repeat($str[++$i], $o);
|
$out .= str_repeat($str[++$i], $o);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
# Decoder for RLE4 compression in windows bitmaps
|
# Decoder for RLE4 compression in windows bitmaps
|
||||||
# see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp
|
# see http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6x0u.asp
|
||||||
function rle4_decode ($str, $width){
|
function rle4_decode ($str, $width){
|
||||||
$w = floor($width/2) + ($width % 2);
|
$w = floor($width/2) + ($width % 2);
|
||||||
$lineWidth = $w + (3 - ( ($width-1) / 2) % 4);
|
$lineWidth = $w + (3 - ( ($width-1) / 2) % 4);
|
||||||
$pixels = array();
|
$pixels = array();
|
||||||
$cnt = strlen($str);
|
$cnt = strlen($str);
|
||||||
for ($i=0;$i<$cnt;$i++){
|
for ($i=0;$i<$cnt;$i++){
|
||||||
$o = ord($str[$i]);
|
$o = ord($str[$i]);
|
||||||
switch ($o){
|
switch ($o){
|
||||||
case 0: # ESCAPE
|
case 0: # ESCAPE
|
||||||
$i++;
|
$i++;
|
||||||
switch (ord($str[$i])){
|
switch (ord($str[$i])){
|
||||||
case 0: # NEW LINE
|
case 0: # NEW LINE
|
||||||
while (count($pixels)%$lineWidth!=0)
|
while (count($pixels)%$lineWidth!=0)
|
||||||
$pixels[]=0;
|
$pixels[]=0;
|
||||||
break;
|
break;
|
||||||
case 1: # END OF FILE
|
case 1: # END OF FILE
|
||||||
while (count($pixels)%$lineWidth!=0)
|
while (count($pixels)%$lineWidth!=0)
|
||||||
$pixels[]=0;
|
$pixels[]=0;
|
||||||
break 3;
|
break 3;
|
||||||
case 2: # DELTA
|
case 2: # DELTA
|
||||||
$i += 2;
|
$i += 2;
|
||||||
break;
|
break;
|
||||||
default: # ABSOLUTE MODE
|
default: # ABSOLUTE MODE
|
||||||
$num = ord($str[$i]);
|
$num = ord($str[$i]);
|
||||||
for ($j=0;$j<$num;$j++){
|
for ($j=0;$j<$num;$j++){
|
||||||
if ($j%2==0){
|
if ($j%2==0){
|
||||||
$c = ord($str[++$i]);
|
$c = ord($str[++$i]);
|
||||||
$pixels[] = ($c & 240)>>4;
|
$pixels[] = ($c & 240)>>4;
|
||||||
} else
|
} else
|
||||||
$pixels[] = $c & 15;
|
$pixels[] = $c & 15;
|
||||||
}
|
}
|
||||||
if ($num % 2) $i++;
|
if ($num % 2) $i++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$c = ord($str[++$i]);
|
$c = ord($str[++$i]);
|
||||||
for ($j=0;$j<$o;$j++)
|
for ($j=0;$j<$o;$j++)
|
||||||
$pixels[] = ($j%2==0 ? ($c & 240)>>4 : $c & 15);
|
$pixels[] = ($j%2==0 ? ($c & 240)>>4 : $c & 15);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$out = '';
|
$out = '';
|
||||||
if (count($pixels)%2) $pixels[]=0;
|
if (count($pixels)%2) $pixels[]=0;
|
||||||
$cnt = count($pixels)/2;
|
$cnt = count($pixels)/2;
|
||||||
for ($i=0;$i<$cnt;$i++)
|
for ($i=0;$i<$cnt;$i++)
|
||||||
$out .= chr(16*$pixels[2*$i] + $pixels[2*$i+1]);
|
$out .= chr(16*$pixels[2*$i] + $pixels[2*$i+1]);
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,371 +1,371 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class directw {
|
class directw {
|
||||||
|
|
||||||
var $mpdf = null;
|
var $mpdf = null;
|
||||||
|
|
||||||
function directw(&$mpdf) {
|
function directw(&$mpdf) {
|
||||||
$this->mpdf = $mpdf;
|
$this->mpdf = $mpdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function Write($h,$txt,$currentx=0,$link='',$directionality='ltr',$align='') {
|
function Write($h,$txt,$currentx=0,$link='',$directionality='ltr',$align='') {
|
||||||
if (!$align) {
|
if (!$align) {
|
||||||
if ($directionality=='rtl') { $align = 'R'; }
|
if ($directionality=='rtl') { $align = 'R'; }
|
||||||
else { $align = 'L'; }
|
else { $align = 'L'; }
|
||||||
}
|
}
|
||||||
if ($h == 0) { $this->mpdf->SetLineHeight(); $h = $this->mpdf->lineheight; }
|
if ($h == 0) { $this->mpdf->SetLineHeight(); $h = $this->mpdf->lineheight; }
|
||||||
//Output text in flowing mode
|
//Output text in flowing mode
|
||||||
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
||||||
|
|
||||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||||
$s=str_replace("\r",'',$txt);
|
$s=str_replace("\r",'',$txt);
|
||||||
if ($this->mpdf->usingCoreFont) { $nb=strlen($s); }
|
if ($this->mpdf->usingCoreFont) { $nb=strlen($s); }
|
||||||
else {
|
else {
|
||||||
$nb=mb_strlen($s, $this->mpdf->mb_enc );
|
$nb=mb_strlen($s, $this->mpdf->mb_enc );
|
||||||
// handle single space character
|
// handle single space character
|
||||||
if(($nb==1) && $s == " ") {
|
if(($nb==1) && $s == " ") {
|
||||||
$this->mpdf->x += $this->mpdf->GetStringWidth($s);
|
$this->mpdf->x += $this->mpdf->GetStringWidth($s);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$sep=-1;
|
$sep=-1;
|
||||||
$i=0;
|
$i=0;
|
||||||
$j=0;
|
$j=0;
|
||||||
$l=0;
|
$l=0;
|
||||||
$nl=1;
|
$nl=1;
|
||||||
if (!$this->mpdf->usingCoreFont) {
|
if (!$this->mpdf->usingCoreFont) {
|
||||||
if (preg_match("/([".$this->mpdf->pregRTLchars."])/u", $txt)) { $this->mpdf->biDirectional = true; } // *RTL*
|
if (preg_match("/([".$this->mpdf->pregRTLchars."])/u", $txt)) { $this->mpdf->biDirectional = true; } // *RTL*
|
||||||
$checkCursive=false;
|
$checkCursive=false;
|
||||||
if ($this->mpdf->biDirectional) { $checkCursive=true; } // *RTL*
|
if ($this->mpdf->biDirectional) { $checkCursive=true; } // *RTL*
|
||||||
else if (isset($this->mpdf->CurrentFont['indic']) && $this->mpdf->CurrentFont['indic']) { $checkCursive=true; } // *INDIC*
|
else if (isset($this->mpdf->CurrentFont['indic']) && $this->mpdf->CurrentFont['indic']) { $checkCursive=true; } // *INDIC*
|
||||||
while($i<$nb) {
|
while($i<$nb) {
|
||||||
//Get next character
|
//Get next character
|
||||||
$c = mb_substr($s,$i,1,$this->mpdf->mb_enc );
|
$c = mb_substr($s,$i,1,$this->mpdf->mb_enc );
|
||||||
if($c == "\n") {
|
if($c == "\n") {
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
$this->mpdf->ResetSpacing();
|
$this->mpdf->ResetSpacing();
|
||||||
//Explicit line break
|
//Explicit line break
|
||||||
$tmp = rtrim(mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc));
|
$tmp = rtrim(mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc));
|
||||||
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
||||||
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
||||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||||
$i++;
|
$i++;
|
||||||
$sep = -1;
|
$sep = -1;
|
||||||
$j = $i;
|
$j = $i;
|
||||||
$l = 0;
|
$l = 0;
|
||||||
if($nl == 1) {
|
if($nl == 1) {
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
||||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||||
}
|
}
|
||||||
$nl++;
|
$nl++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if($c == " ") { $sep= $i; }
|
if($c == " ") { $sep= $i; }
|
||||||
$l += $this->mpdf->GetCharWidthNonCore($c); // mPDF 5.3.04
|
$l += $this->mpdf->GetCharWidthNonCore($c); // mPDF 5.3.04
|
||||||
if($l > $wmax) {
|
if($l > $wmax) {
|
||||||
//Automatic line break (word wrapping)
|
//Automatic line break (word wrapping)
|
||||||
if($sep == -1) {
|
if($sep == -1) {
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
$this->mpdf->ResetSpacing();
|
$this->mpdf->ResetSpacing();
|
||||||
if($this->mpdf->x > $this->mpdf->lMargin) {
|
if($this->mpdf->x > $this->mpdf->lMargin) {
|
||||||
//Move to next line
|
//Move to next line
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
$this->mpdf->y+=$h;
|
$this->mpdf->y+=$h;
|
||||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||||
$i++;
|
$i++;
|
||||||
$nl++;
|
$nl++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if($i==$j) { $i++; }
|
if($i==$j) { $i++; }
|
||||||
$tmp = rtrim(mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc));
|
$tmp = rtrim(mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc));
|
||||||
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
||||||
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
||||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$tmp = rtrim(mb_substr($s,$j,$sep-$j,$this->mpdf->mb_enc));
|
$tmp = rtrim(mb_substr($s,$j,$sep-$j,$this->mpdf->mb_enc));
|
||||||
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
||||||
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
||||||
|
|
||||||
if($align=='J') {
|
if($align=='J') {
|
||||||
//////////////////////////////////////////
|
//////////////////////////////////////////
|
||||||
// JUSTIFY J using Unicode fonts (Word spacing doesn't work)
|
// JUSTIFY J using Unicode fonts (Word spacing doesn't work)
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
// Change NON_BREAKING SPACE to spaces so they are 'spaced' properly
|
// Change NON_BREAKING SPACE to spaces so they are 'spaced' properly
|
||||||
$tmp = str_replace(chr(194).chr(160),chr(32),$tmp );
|
$tmp = str_replace(chr(194).chr(160),chr(32),$tmp );
|
||||||
$len_ligne = $this->mpdf->GetStringWidth($tmp );
|
$len_ligne = $this->mpdf->GetStringWidth($tmp );
|
||||||
$nb_carac = mb_strlen( $tmp , $this->mpdf->mb_enc ) ;
|
$nb_carac = mb_strlen( $tmp , $this->mpdf->mb_enc ) ;
|
||||||
$nb_spaces = mb_substr_count( $tmp ,' ', $this->mpdf->mb_enc ) ;
|
$nb_spaces = mb_substr_count( $tmp ,' ', $this->mpdf->mb_enc ) ;
|
||||||
$inclCursive=false;
|
$inclCursive=false;
|
||||||
if ($checkCursive) {
|
if ($checkCursive) {
|
||||||
if (preg_match("/([".$this->mpdf->pregRTLchars."])/u", $tmp)) { $inclCursive = true; } // *RTL*
|
if (preg_match("/([".$this->mpdf->pregRTLchars."])/u", $tmp)) { $inclCursive = true; } // *RTL*
|
||||||
if (preg_match("/([".$this->mpdf->pregHIchars.$this->mpdf->pregBNchars.$this->mpdf->pregPAchars."])/u", $tmp)) { $inclCursive = true; } // *INDIC*
|
if (preg_match("/([".$this->mpdf->pregHIchars.$this->mpdf->pregBNchars.$this->mpdf->pregPAchars."])/u", $tmp)) { $inclCursive = true; } // *INDIC*
|
||||||
}
|
}
|
||||||
list($charspacing,$ws) = $this->mpdf->GetJspacing($nb_carac,$nb_spaces,((($w-2) - $len_ligne) * _MPDFK),$inclCursive);
|
list($charspacing,$ws) = $this->mpdf->GetJspacing($nb_carac,$nb_spaces,((($w-2) - $len_ligne) * _MPDFK),$inclCursive);
|
||||||
$this->mpdf->SetSpacing($charspacing,$ws);
|
$this->mpdf->SetSpacing($charspacing,$ws);
|
||||||
//////////////////////////////////////////
|
//////////////////////////////////////////
|
||||||
}
|
}
|
||||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||||
$i=$sep+1;
|
$i=$sep+1;
|
||||||
}
|
}
|
||||||
$sep = -1;
|
$sep = -1;
|
||||||
$j = $i;
|
$j = $i;
|
||||||
$l = 0;
|
$l = 0;
|
||||||
if($nl==1) {
|
if($nl==1) {
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||||
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
$wmax = ($w - ($this->mpdf->cMarginL+$this->mpdf->cMarginR));
|
||||||
}
|
}
|
||||||
$nl++;
|
$nl++;
|
||||||
}
|
}
|
||||||
else { $i++; }
|
else { $i++; }
|
||||||
}
|
}
|
||||||
//Last chunk
|
//Last chunk
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
$this->mpdf->ResetSpacing();
|
$this->mpdf->ResetSpacing();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
while($i<$nb) {
|
while($i<$nb) {
|
||||||
//Get next character
|
//Get next character
|
||||||
$c=$s[$i];
|
$c=$s[$i];
|
||||||
if($c == "\n") {
|
if($c == "\n") {
|
||||||
//Explicit line break
|
//Explicit line break
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
$this->mpdf->ResetSpacing();
|
$this->mpdf->ResetSpacing();
|
||||||
$this->mpdf->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, $link);
|
$this->mpdf->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, $link);
|
||||||
$i++;
|
$i++;
|
||||||
$sep = -1;
|
$sep = -1;
|
||||||
$j = $i;
|
$j = $i;
|
||||||
$l = 0;
|
$l = 0;
|
||||||
if($nl == 1) {
|
if($nl == 1) {
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
$w = $this->mpdf->w - $this->mpdf->rMargin - $this->mpdf->x;
|
||||||
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
||||||
}
|
}
|
||||||
$nl++;
|
$nl++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if($c == " ") { $sep= $i; }
|
if($c == " ") { $sep= $i; }
|
||||||
$l += $this->mpdf->GetCharWidthCore($c); // mPDF 5.3.04
|
$l += $this->mpdf->GetCharWidthCore($c); // mPDF 5.3.04
|
||||||
if($l > $wmax) {
|
if($l > $wmax) {
|
||||||
//Automatic line break (word wrapping)
|
//Automatic line break (word wrapping)
|
||||||
if($sep == -1) {
|
if($sep == -1) {
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
$this->mpdf->ResetSpacing();
|
$this->mpdf->ResetSpacing();
|
||||||
if($this->mpdf->x > $this->mpdf->lMargin) {
|
if($this->mpdf->x > $this->mpdf->lMargin) {
|
||||||
//Move to next line
|
//Move to next line
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
$this->mpdf->y+=$h;
|
$this->mpdf->y+=$h;
|
||||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||||
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
||||||
$i++;
|
$i++;
|
||||||
$nl++;
|
$nl++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if($i==$j) { $i++; }
|
if($i==$j) { $i++; }
|
||||||
$this->mpdf->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, $link);
|
$this->mpdf->Cell($w, $h, substr($s, $j, $i-$j), 0, 2, $align, $fill, $link);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$tmp = substr($s, $j, $sep-$j);
|
$tmp = substr($s, $j, $sep-$j);
|
||||||
if($align=='J') {
|
if($align=='J') {
|
||||||
//////////////////////////////////////////
|
//////////////////////////////////////////
|
||||||
// JUSTIFY J using Unicode fonts (Word spacing doesn't work)
|
// JUSTIFY J using Unicode fonts (Word spacing doesn't work)
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
// Change NON_BREAKING SPACE to spaces so they are 'spaced' properly
|
// Change NON_BREAKING SPACE to spaces so they are 'spaced' properly
|
||||||
$tmp = str_replace(chr(160),chr(32),$tmp );
|
$tmp = str_replace(chr(160),chr(32),$tmp );
|
||||||
$len_ligne = $this->mpdf->GetStringWidth($tmp );
|
$len_ligne = $this->mpdf->GetStringWidth($tmp );
|
||||||
$nb_carac = strlen( $tmp ) ;
|
$nb_carac = strlen( $tmp ) ;
|
||||||
$nb_spaces = substr_count( $tmp ,' ' ) ;
|
$nb_spaces = substr_count( $tmp ,' ' ) ;
|
||||||
list($charspacing,$ws) = $this->mpdf->GetJspacing($nb_carac,$nb_spaces,((($w-2) - $len_ligne) * _MPDFK),$false);
|
list($charspacing,$ws) = $this->mpdf->GetJspacing($nb_carac,$nb_spaces,((($w-2) - $len_ligne) * _MPDFK),$false);
|
||||||
$this->mpdf->SetSpacing($charspacing,$ws);
|
$this->mpdf->SetSpacing($charspacing,$ws);
|
||||||
//////////////////////////////////////////
|
//////////////////////////////////////////
|
||||||
}
|
}
|
||||||
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
$this->mpdf->Cell($w, $h, $tmp, 0, 2, $align, $fill, $link);
|
||||||
$i=$sep+1;
|
$i=$sep+1;
|
||||||
}
|
}
|
||||||
$sep = -1;
|
$sep = -1;
|
||||||
$j = $i;
|
$j = $i;
|
||||||
$l = 0;
|
$l = 0;
|
||||||
if($nl==1) {
|
if($nl==1) {
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
$w=$this->mpdf->w-$this->mpdf->rMargin-$this->mpdf->x;
|
||||||
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
$wmax=$w-($this->mpdf->cMarginL+$this->mpdf->cMarginR);
|
||||||
}
|
}
|
||||||
$nl++;
|
$nl++;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// WORD SPACING
|
// WORD SPACING
|
||||||
$this->mpdf->ResetSpacing();
|
$this->mpdf->ResetSpacing();
|
||||||
}
|
}
|
||||||
//Last chunk
|
//Last chunk
|
||||||
if($i!=$j) {
|
if($i!=$j) {
|
||||||
if ($currentx != 0) $this->mpdf->x=$currentx;
|
if ($currentx != 0) $this->mpdf->x=$currentx;
|
||||||
else $this->mpdf->x=$this->mpdf->lMargin;
|
else $this->mpdf->x=$this->mpdf->lMargin;
|
||||||
if ($this->mpdf->usingCoreFont) { $tmp = substr($s,$j,$i-$j); }
|
if ($this->mpdf->usingCoreFont) { $tmp = substr($s,$j,$i-$j); }
|
||||||
else {
|
else {
|
||||||
$tmp = mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc);
|
$tmp = mb_substr($s,$j,$i-$j,$this->mpdf->mb_enc);
|
||||||
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
if ($directionality == 'rtl' && $align == 'J') { $align = 'R'; } // *RTL*
|
||||||
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
$this->mpdf->magic_reverse_dir($tmp, true, $directionality); // *RTL*
|
||||||
}
|
}
|
||||||
$this->mpdf->Cell($w,$h,$tmp,0,0,$align,$fill,$link);
|
$this->mpdf->Cell($w,$h,$tmp,0,0,$align,$fill,$link);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function CircularText($x, $y, $r, $text, $align='top', $fontfamily='', $fontsizePt=0, $fontstyle='', $kerning=120, $fontwidth=100) {
|
function CircularText($x, $y, $r, $text, $align='top', $fontfamily='', $fontsizePt=0, $fontstyle='', $kerning=120, $fontwidth=100) {
|
||||||
if ($font || $fontstyle || $fontsizePt) $this->mpdf->SetFont($fontfamily,$fontstyle,$fontsizePt);
|
if ($font || $fontstyle || $fontsizePt) $this->mpdf->SetFont($fontfamily,$fontstyle,$fontsizePt);
|
||||||
$kerning/=100;
|
$kerning/=100;
|
||||||
$fontwidth/=100;
|
$fontwidth/=100;
|
||||||
if($kerning==0) $this->mpdf->Error('Please use values unequal to zero for kerning (CircularText)');
|
if($kerning==0) $this->mpdf->Error('Please use values unequal to zero for kerning (CircularText)');
|
||||||
if($fontwidth==0) $this->mpdf->Error('Please use values unequal to zero for font width (CircularText)');
|
if($fontwidth==0) $this->mpdf->Error('Please use values unequal to zero for font width (CircularText)');
|
||||||
$t=0;
|
$t=0;
|
||||||
$text=str_replace("\r",'',$text);
|
$text=str_replace("\r",'',$text);
|
||||||
if ($this->mpdf->usingCoreFont) {
|
if ($this->mpdf->usingCoreFont) {
|
||||||
$nb=strlen($text);
|
$nb=strlen($text);
|
||||||
for($i=0; $i<$nb; $i++){
|
for($i=0; $i<$nb; $i++){
|
||||||
$w[$i]=$this->mpdf->GetStringWidth($text[$i]);
|
$w[$i]=$this->mpdf->GetStringWidth($text[$i]);
|
||||||
$w[$i]*=$kerning*$fontwidth;
|
$w[$i]*=$kerning*$fontwidth;
|
||||||
$t+=$w[$i];
|
$t+=$w[$i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$nb=mb_strlen($text, $this->mpdf->mb_enc );
|
$nb=mb_strlen($text, $this->mpdf->mb_enc );
|
||||||
$lastchar = '';
|
$lastchar = '';
|
||||||
$unicode = $this->mpdf->UTF8StringToArray($text);
|
$unicode = $this->mpdf->UTF8StringToArray($text);
|
||||||
for($i=0; $i<$nb; $i++){
|
for($i=0; $i<$nb; $i++){
|
||||||
$c = mb_substr($text,$i,1,$this->mpdf->mb_enc );
|
$c = mb_substr($text,$i,1,$this->mpdf->mb_enc );
|
||||||
$w[$i]=$this->mpdf->GetStringWidth($c);
|
$w[$i]=$this->mpdf->GetStringWidth($c);
|
||||||
$w[$i]*=$kerning*$fontwidth;
|
$w[$i]*=$kerning*$fontwidth;
|
||||||
$char = $unicode[$i];
|
$char = $unicode[$i];
|
||||||
if ($this->mpdf->useKerning && $lastchar) {
|
if ($this->mpdf->useKerning && $lastchar) {
|
||||||
if (isset($this->mpdf->CurrentFont['kerninfo'][$lastchar][$char])) {
|
if (isset($this->mpdf->CurrentFont['kerninfo'][$lastchar][$char])) {
|
||||||
$tk = $this->mpdf->CurrentFont['kerninfo'][$lastchar][$char] * ($this->mpdf->FontSize/ 1000) * $kerning * $fontwidth;
|
$tk = $this->mpdf->CurrentFont['kerninfo'][$lastchar][$char] * ($this->mpdf->FontSize/ 1000) * $kerning * $fontwidth;
|
||||||
$w[$i] += $tk/2;
|
$w[$i] += $tk/2;
|
||||||
$w[$i-1] += $tk/2;
|
$w[$i-1] += $tk/2;
|
||||||
$t+=$tk;
|
$t+=$tk;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$lastchar = $char;
|
$lastchar = $char;
|
||||||
$t+=$w[$i];
|
$t+=$w[$i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//circumference
|
//circumference
|
||||||
$u=($r*2)*M_PI;
|
$u=($r*2)*M_PI;
|
||||||
//total width of string in degrees
|
//total width of string in degrees
|
||||||
$d=($t/$u)*360;
|
$d=($t/$u)*360;
|
||||||
|
|
||||||
$this->mpdf->StartTransform();
|
$this->mpdf->StartTransform();
|
||||||
// rotate matrix for the first letter to center the text
|
// rotate matrix for the first letter to center the text
|
||||||
// (half of total degrees)
|
// (half of total degrees)
|
||||||
if($align=='top'){
|
if($align=='top'){
|
||||||
$this->mpdf->transformRotate(-$d/2, $x, $y);
|
$this->mpdf->transformRotate(-$d/2, $x, $y);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$this->mpdf->transformRotate($d/2, $x, $y);
|
$this->mpdf->transformRotate($d/2, $x, $y);
|
||||||
}
|
}
|
||||||
//run through the string
|
//run through the string
|
||||||
for($i=0; $i<$nb; $i++){
|
for($i=0; $i<$nb; $i++){
|
||||||
if($align=='top'){
|
if($align=='top'){
|
||||||
//rotate matrix half of the width of current letter + half of the width of preceding letter
|
//rotate matrix half of the width of current letter + half of the width of preceding letter
|
||||||
if($i==0){
|
if($i==0){
|
||||||
$this->mpdf->transformRotate((($w[$i]/2)/$u)*360, $x, $y);
|
$this->mpdf->transformRotate((($w[$i]/2)/$u)*360, $x, $y);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$this->mpdf->transformRotate((($w[$i]/2+$w[$i-1]/2)/$u)*360, $x, $y);
|
$this->mpdf->transformRotate((($w[$i]/2+$w[$i-1]/2)/$u)*360, $x, $y);
|
||||||
}
|
}
|
||||||
if($fontwidth!=1){
|
if($fontwidth!=1){
|
||||||
$this->mpdf->StartTransform();
|
$this->mpdf->StartTransform();
|
||||||
$this->mpdf->transformScale($fontwidth*100, 100, $x, $y);
|
$this->mpdf->transformScale($fontwidth*100, 100, $x, $y);
|
||||||
}
|
}
|
||||||
$this->mpdf->SetXY($x-$w[$i]/2, $y-$r);
|
$this->mpdf->SetXY($x-$w[$i]/2, $y-$r);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
//rotate matrix half of the width of current letter + half of the width of preceding letter
|
//rotate matrix half of the width of current letter + half of the width of preceding letter
|
||||||
if($i==0){
|
if($i==0){
|
||||||
$this->mpdf->transformRotate(-(($w[$i]/2)/$u)*360, $x, $y);
|
$this->mpdf->transformRotate(-(($w[$i]/2)/$u)*360, $x, $y);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
$this->mpdf->transformRotate(-(($w[$i]/2+$w[$i-1]/2)/$u)*360, $x, $y);
|
$this->mpdf->transformRotate(-(($w[$i]/2+$w[$i-1]/2)/$u)*360, $x, $y);
|
||||||
}
|
}
|
||||||
if($fontwidth!=1){
|
if($fontwidth!=1){
|
||||||
$this->mpdf->StartTransform();
|
$this->mpdf->StartTransform();
|
||||||
$this->mpdf->transformScale($fontwidth*100, 100, $x, $y);
|
$this->mpdf->transformScale($fontwidth*100, 100, $x, $y);
|
||||||
}
|
}
|
||||||
$this->mpdf->SetXY($x-$w[$i]/2, $y+$r-($this->mpdf->FontSize));
|
$this->mpdf->SetXY($x-$w[$i]/2, $y+$r-($this->mpdf->FontSize));
|
||||||
}
|
}
|
||||||
if ($this->mpdf->usingCoreFont) { $c=$text[$i]; }
|
if ($this->mpdf->usingCoreFont) { $c=$text[$i]; }
|
||||||
else { $c = mb_substr($text,$i,1,$this->mpdf->mb_enc ); }
|
else { $c = mb_substr($text,$i,1,$this->mpdf->mb_enc ); }
|
||||||
$this->mpdf->Cell(($w[$i]),$this->mpdf->FontSize,$c,0,0,'C'); // mPDF 5.3.53
|
$this->mpdf->Cell(($w[$i]),$this->mpdf->FontSize,$c,0,0,'C'); // mPDF 5.3.53
|
||||||
if($fontwidth!=1){
|
if($fontwidth!=1){
|
||||||
$this->mpdf->StopTransform();
|
$this->mpdf->StopTransform();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->mpdf->StopTransform();
|
$this->mpdf->StopTransform();
|
||||||
}
|
}
|
||||||
|
|
||||||
function Shaded_box( $text,$font='',$fontstyle='B',$szfont='',$width='70%',$style='DF',$radius=2.5,$fill='#FFFFFF',$color='#000000',$pad=2 )
|
function Shaded_box( $text,$font='',$fontstyle='B',$szfont='',$width='70%',$style='DF',$radius=2.5,$fill='#FFFFFF',$color='#000000',$pad=2 )
|
||||||
{
|
{
|
||||||
// F (shading - no line),S (line, no shading),DF (both)
|
// F (shading - no line),S (line, no shading),DF (both)
|
||||||
if (!$font) { $font= $this->mpdf->default_font; }
|
if (!$font) { $font= $this->mpdf->default_font; }
|
||||||
if (!$szfont) { $szfont = ($this->mpdf->default_font_size * 1.8); }
|
if (!$szfont) { $szfont = ($this->mpdf->default_font_size * 1.8); }
|
||||||
|
|
||||||
$text = $this->mpdf->purify_utf8_text($text);
|
$text = $this->mpdf->purify_utf8_text($text);
|
||||||
if ($this->mpdf->text_input_as_HTML) {
|
if ($this->mpdf->text_input_as_HTML) {
|
||||||
$text = $this->mpdf->all_entities_to_utf8($text);
|
$text = $this->mpdf->all_entities_to_utf8($text);
|
||||||
}
|
}
|
||||||
if ($this->mpdf->usingCoreFont) { $text = mb_convert_encoding($text,$this->mpdf->mb_enc,'UTF-8'); }
|
if ($this->mpdf->usingCoreFont) { $text = mb_convert_encoding($text,$this->mpdf->mb_enc,'UTF-8'); }
|
||||||
// DIRECTIONALITY
|
// DIRECTIONALITY
|
||||||
$this->mpdf->magic_reverse_dir($text, true, $this->mpdf->directionality); // *RTL*
|
$this->mpdf->magic_reverse_dir($text, true, $this->mpdf->directionality); // *RTL*
|
||||||
// Font-specific ligature substitution for Indic fonts
|
// Font-specific ligature substitution for Indic fonts
|
||||||
if (isset($this->mpdf->CurrentFont['indic']) && $this->mpdf->CurrentFont['indic']) $this->mpdf->ConvertIndic($text); // *INDIC*
|
if (isset($this->mpdf->CurrentFont['indic']) && $this->mpdf->CurrentFont['indic']) $this->mpdf->ConvertIndic($text); // *INDIC*
|
||||||
$text = ' '.$text.' ';
|
$text = ' '.$text.' ';
|
||||||
if (!$width) { $width = $this->mpdf->pgwidth; } else { $width=$this->mpdf->ConvertSize($width,$this->mpdf->pgwidth); }
|
if (!$width) { $width = $this->mpdf->pgwidth; } else { $width=$this->mpdf->ConvertSize($width,$this->mpdf->pgwidth); }
|
||||||
$midpt = $this->mpdf->lMargin+($this->mpdf->pgwidth/2);
|
$midpt = $this->mpdf->lMargin+($this->mpdf->pgwidth/2);
|
||||||
$r1 = $midpt-($width/2); //($this->mpdf->w / 2) - 40;
|
$r1 = $midpt-($width/2); //($this->mpdf->w / 2) - 40;
|
||||||
$r2 = $r1 + $width; //$r1 + 80;
|
$r2 = $r1 + $width; //$r1 + 80;
|
||||||
$y1 = $this->mpdf->y;
|
$y1 = $this->mpdf->y;
|
||||||
|
|
||||||
|
|
||||||
$mid = ($r1 + $r2 ) / 2;
|
$mid = ($r1 + $r2 ) / 2;
|
||||||
$loop = 0;
|
$loop = 0;
|
||||||
|
|
||||||
while ( $loop == 0 )
|
while ( $loop == 0 )
|
||||||
{
|
{
|
||||||
$this->mpdf->SetFont( $font, $fontstyle, $szfont );
|
$this->mpdf->SetFont( $font, $fontstyle, $szfont );
|
||||||
$sz = $this->mpdf->GetStringWidth( $text );
|
$sz = $this->mpdf->GetStringWidth( $text );
|
||||||
if ( ($r1+$sz) > $r2 )
|
if ( ($r1+$sz) > $r2 )
|
||||||
$szfont --;
|
$szfont --;
|
||||||
else
|
else
|
||||||
$loop ++;
|
$loop ++;
|
||||||
}
|
}
|
||||||
|
|
||||||
$y2 = $this->mpdf->FontSize+($pad*2);
|
$y2 = $this->mpdf->FontSize+($pad*2);
|
||||||
|
|
||||||
$this->mpdf->SetLineWidth(0.1);
|
$this->mpdf->SetLineWidth(0.1);
|
||||||
$fc = $this->mpdf->ConvertColor($fill);
|
$fc = $this->mpdf->ConvertColor($fill);
|
||||||
$tc = $this->mpdf->ConvertColor($color);
|
$tc = $this->mpdf->ConvertColor($color);
|
||||||
$this->mpdf->SetFColor($fc);
|
$this->mpdf->SetFColor($fc);
|
||||||
$this->mpdf->SetTColor($tc);
|
$this->mpdf->SetTColor($tc);
|
||||||
$this->mpdf->RoundedRect($r1, $y1, ($r2 - $r1), $y2, $radius, $style);
|
$this->mpdf->RoundedRect($r1, $y1, ($r2 - $r1), $y2, $radius, $style);
|
||||||
$this->mpdf->SetX( $r1);
|
$this->mpdf->SetX( $r1);
|
||||||
$this->mpdf->Cell($r2-$r1, $y2, $text, 0, 1, "C" );
|
$this->mpdf->Cell($r2-$r1, $y2, $text, 0, 1, "C" );
|
||||||
$this->mpdf->SetY($y1+$y2+2); // +2 = mm margin below shaded box
|
$this->mpdf->SetY($y1+$y2+2); // +2 = mm margin below shaded box
|
||||||
$this->mpdf->Reset();
|
$this->mpdf->Reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,433 +1,433 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class indic {
|
class indic {
|
||||||
|
|
||||||
function indic() {
|
function indic() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function substituteIndic($earr, $lang, $font) {
|
function substituteIndic($earr, $lang, $font) {
|
||||||
global $voltdata;
|
global $voltdata;
|
||||||
|
|
||||||
if (!isset($voltdata[$font])) {
|
if (!isset($voltdata[$font])) {
|
||||||
include_once(_MPDF_PATH.'includes/'.$font.'.volt.php');
|
include_once(_MPDF_PATH.'includes/'.$font.'.volt.php');
|
||||||
$voltdata[$font] = $volt;
|
$voltdata[$font] = $volt;
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach($earr as $eid=>$char) {
|
foreach($earr as $eid=>$char) {
|
||||||
$earr[$eid] = sprintf("%04s", strtoupper(dechex($char)));
|
$earr[$eid] = sprintf("%04s", strtoupper(dechex($char)));
|
||||||
}
|
}
|
||||||
$vstr = "0020 ".implode(" ",$earr)." 0020";
|
$vstr = "0020 ".implode(" ",$earr)." 0020";
|
||||||
//============================
|
//============================
|
||||||
// Common Indic Punctuation marks
|
// Common Indic Punctuation marks
|
||||||
// If NOT devanagari
|
// If NOT devanagari
|
||||||
if ($lang!='hi') {
|
if ($lang!='hi') {
|
||||||
$vstr = str_replace('0964','007C', $vstr); // U+0964 replace with "|"
|
$vstr = str_replace('0964','007C', $vstr); // U+0964 replace with "|"
|
||||||
$vstr = str_replace('0965','007C 007C', $vstr); // U+0964 replace with "|"
|
$vstr = str_replace('0965','007C 007C', $vstr); // U+0964 replace with "|"
|
||||||
}
|
}
|
||||||
//============================
|
//============================
|
||||||
// Tamil numeral for Zero missing Added mPDF 4.2
|
// Tamil numeral for Zero missing Added mPDF 4.2
|
||||||
if ($lang=='ta') {
|
if ($lang=='ta') {
|
||||||
$vstr = str_replace('0BE6','0030', $vstr); // U+0BEB replace with "0"
|
$vstr = str_replace('0BE6','0030', $vstr); // U+0BEB replace with "0"
|
||||||
}
|
}
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
// Re-order vowels
|
// Re-order vowels
|
||||||
|
|
||||||
// DEVANAGARI vowel sign matraI[093F] before consonant
|
// DEVANAGARI vowel sign matraI[093F] before consonant
|
||||||
if ($lang=='hi') {
|
if ($lang=='hi') {
|
||||||
$prebasedvowels = "(093F)";
|
$prebasedvowels = "(093F)";
|
||||||
$nukta = "093C";
|
$nukta = "093C";
|
||||||
$halant = "094D";
|
$halant = "094D";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT == VIRAMA
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT == VIRAMA
|
||||||
}
|
}
|
||||||
|
|
||||||
// BENGALI vowels [09BF 09C7 09C8]
|
// BENGALI vowels [09BF 09C7 09C8]
|
||||||
else if ($lang=='bn') {
|
else if ($lang=='bn') {
|
||||||
|
|
||||||
// Khanda Ta 09CE not in font -> replace with 09A4|09CD
|
// Khanda Ta 09CE not in font -> replace with 09A4|09CD
|
||||||
$vstr = preg_replace('/09CE/','09A4 09CD 200D', $vstr); // mPDF 5.3.09
|
$vstr = preg_replace('/09CE/','09A4 09CD 200D', $vstr); // mPDF 5.3.09
|
||||||
|
|
||||||
// BENGALI double-part vowels [09CB 09C7 09BE][09CC 09C7 09D7]
|
// BENGALI double-part vowels [09CB 09C7 09BE][09CC 09C7 09D7]
|
||||||
$vstr = str_replace('09CB','09C7 09BE', $vstr); // convert to 2 parts
|
$vstr = str_replace('09CB','09C7 09BE', $vstr); // convert to 2 parts
|
||||||
$vstr = str_replace('09CC','09C7 09D7', $vstr); // 09C7 pre-based is then shifted below
|
$vstr = str_replace('09CC','09C7 09D7', $vstr); // 09C7 pre-based is then shifted below
|
||||||
$prebasedvowels = "(09BF|09C7|09C8)";
|
$prebasedvowels = "(09BF|09C7|09C8)";
|
||||||
$nukta = "09BC";
|
$nukta = "09BC";
|
||||||
$halant = "09CD";
|
$halant = "09CD";
|
||||||
// mPDF 5.0.044
|
// mPDF 5.0.044
|
||||||
$bnfullcons = "0995|0996|0997|0998|0999|099A|099B|099C|099D|099F|09A0|09A1|09A2|09A3|09A4|09A5|09A6|09A7|09A8|09AA|09AB|09AC|09AD|09AE|09AF|09B0|09B2|09B6|09B7|09B8|09B9|09DC|09DD|09DF";
|
$bnfullcons = "0995|0996|0997|0998|0999|099A|099B|099C|099D|099F|09A0|09A1|09A2|09A3|09A4|09A5|09A6|09A7|09A8|09AA|09AB|09AC|09AD|09AE|09AF|09B0|09B2|09B6|09B7|09B8|09B9|09DC|09DD|09DF";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
||||||
// mPDF 5.0.044
|
// mPDF 5.0.044
|
||||||
// .. and shifting left-based vowel further to the left in case 3 consonants together.
|
// .. and shifting left-based vowel further to the left in case 3 consonants together.
|
||||||
$vstr = preg_replace('/('.$bnfullcons.') '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr);
|
$vstr = preg_replace('/('.$bnfullcons.') '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr);
|
||||||
|
|
||||||
// mPDF 5.0.044
|
// mPDF 5.0.044
|
||||||
// If left-based vowel has now been shifted to left of RA/Halant (09B0/09CD)
|
// If left-based vowel has now been shifted to left of RA/Halant (09B0/09CD)
|
||||||
// Convert here to above-line form (E068) as it would get missed later
|
// Convert here to above-line form (E068) as it would get missed later
|
||||||
// e.g. 09B0 09CD 09AD 09C7 would be changed above =>
|
// e.g. 09B0 09CD 09AD 09C7 would be changed above =>
|
||||||
// e.g. 09C7 09B0 09CD 09AD. The 09B0 09CD should => E068
|
// e.g. 09C7 09B0 09CD 09AD. The 09B0 09CD should => E068
|
||||||
// ??? need to add 09BF as well (09BF|09C7|09C8)
|
// ??? need to add 09BF as well (09BF|09C7|09C8)
|
||||||
$vstr = preg_replace('/(09C7|09C8) 09B0 09CD/', '\\1 E068', $vstr);
|
$vstr = preg_replace('/(09C7|09C8) 09B0 09CD/', '\\1 E068', $vstr);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// GUJARATI pre-based vowel [0ABF]
|
// GUJARATI pre-based vowel [0ABF]
|
||||||
else if ($lang=='gu') {
|
else if ($lang=='gu') {
|
||||||
$prebasedvowels = "(0ABF)";
|
$prebasedvowels = "(0ABF)";
|
||||||
$nukta = "0ABC";
|
$nukta = "0ABC";
|
||||||
$halant = "0ACD";
|
$halant = "0ACD";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
||||||
}
|
}
|
||||||
|
|
||||||
// GURMUKHI/PUNJABI pre-based vowel [0ABF]
|
// GURMUKHI/PUNJABI pre-based vowel [0ABF]
|
||||||
else if ($lang=='pa') {
|
else if ($lang=='pa') {
|
||||||
$prebasedvowels = "(0A3F)";
|
$prebasedvowels = "(0A3F)";
|
||||||
$nukta = "0A3C";
|
$nukta = "0A3C";
|
||||||
$halant = "0A4D";
|
$halant = "0A4D";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.' '.$nukta.'/','\\2 \\1 '.$nukta, $vstr); // before NUKTA
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$prebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
||||||
}
|
}
|
||||||
|
|
||||||
// TAMIL pre-based vowel [0ABF]
|
// TAMIL pre-based vowel [0ABF]
|
||||||
else if ($lang=='ta') {
|
else if ($lang=='ta') {
|
||||||
// Shrii (Shree)
|
// Shrii (Shree)
|
||||||
$vstr = preg_replace('/0BB6 0BCD 0BB0 0BC0/','E04B', $vstr);
|
$vstr = preg_replace('/0BB6 0BCD 0BB0 0BC0/','E04B', $vstr);
|
||||||
|
|
||||||
// TAMIL double-part vowels [0BCA 0BC6 0BBE][0BCB 0BC7 0BBE][0BCC 0BC6 0BD7]
|
// TAMIL double-part vowels [0BCA 0BC6 0BBE][0BCB 0BC7 0BBE][0BCC 0BC6 0BD7]
|
||||||
$vstr = preg_replace('/0BCA/','0BC6 0BBE', $vstr); // convert to 2 parts
|
$vstr = preg_replace('/0BCA/','0BC6 0BBE', $vstr); // convert to 2 parts
|
||||||
$vstr = preg_replace('/0BCB/','0BC7 0BBE', $vstr); // pre-based is then shifted below
|
$vstr = preg_replace('/0BCB/','0BC7 0BBE', $vstr); // pre-based is then shifted below
|
||||||
$vstr = preg_replace('/0BCC/','0BC6 0BD7', $vstr);
|
$vstr = preg_replace('/0BCC/','0BC6 0BD7', $vstr);
|
||||||
$prebasedvowels = "(0BC6|0BC7|0BC8)";
|
$prebasedvowels = "(0BC6|0BC7|0BC8)";
|
||||||
// No nukta
|
// No nukta
|
||||||
$halant = "0BCD"; // Doesn't seem to move most in front of halanted consonants
|
$halant = "0BCD"; // Doesn't seem to move most in front of halanted consonants
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$prebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
// ? Only for special case KSS (already moved to left of 0BB7)
|
// ? Only for special case KSS (already moved to left of 0BB7)
|
||||||
$vstr = preg_replace('/0B95 '.$halant.' '.$prebasedvowels.' 0BB7/','\\1 0B95 '.$halant.' 0BB7', $vstr);
|
$vstr = preg_replace('/0B95 '.$halant.' '.$prebasedvowels.' 0BB7/','\\1 0B95 '.$halant.' 0BB7', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ORIYA
|
// ORIYA
|
||||||
else if ($lang=='or') {
|
else if ($lang=='or') {
|
||||||
// ORIYA double-part vowels []
|
// ORIYA double-part vowels []
|
||||||
$vstr = str_replace('0B48','0B47 0B56', $vstr); // 2-part Vowel
|
$vstr = str_replace('0B48','0B47 0B56', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0B4B','0B47 0B3E', $vstr); // 2-part Vowel
|
$vstr = str_replace('0B4B','0B47 0B3E', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0B4C','0B47 0B57', $vstr); // 2-part Vowel
|
$vstr = str_replace('0B4C','0B47 0B57', $vstr); // 2-part Vowel
|
||||||
$orprebasedvowels = "(0B47)";
|
$orprebasedvowels = "(0B47)";
|
||||||
// No nukta
|
// No nukta
|
||||||
$halant = "0B4D";
|
$halant = "0B4D";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$orprebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$orprebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$orprebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$orprebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$orprebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$orprebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
||||||
}
|
}
|
||||||
|
|
||||||
// MALAYALAM
|
// MALAYALAM
|
||||||
else if ($lang=='ml') {
|
else if ($lang=='ml') {
|
||||||
// Chillus - old forms - remove ZWNJ after
|
// Chillus - old forms - remove ZWNJ after
|
||||||
// This font Volt rules recognises e.g. "Na Halant(Virama)" as ChilluN
|
// This font Volt rules recognises e.g. "Na Halant(Virama)" as ChilluN
|
||||||
$vstr = preg_replace('/(0D23 0D4D|0D28 0D4D|0D30 0D4D|0D32 0D4D|0D33 0D4D) 200D/','\\1', $vstr);
|
$vstr = preg_replace('/(0D23 0D4D|0D28 0D4D|0D30 0D4D|0D32 0D4D|0D33 0D4D) 200D/','\\1', $vstr);
|
||||||
// See Chillus in Unicode [http://en.wikipedia.org/wiki/Malayalam_script]
|
// See Chillus in Unicode [http://en.wikipedia.org/wiki/Malayalam_script]
|
||||||
$vstr = str_replace('0D7A','0D23 0D4D', $vstr); // [mlymChilluNn]
|
$vstr = str_replace('0D7A','0D23 0D4D', $vstr); // [mlymChilluNn]
|
||||||
$vstr = str_replace('0D7B','0D28 0D4D', $vstr); // [mlymChilluN]
|
$vstr = str_replace('0D7B','0D28 0D4D', $vstr); // [mlymChilluN]
|
||||||
$vstr = str_replace('0D7C','0D30 0D4D', $vstr); // [mlymChilluR]
|
$vstr = str_replace('0D7C','0D30 0D4D', $vstr); // [mlymChilluR]
|
||||||
$vstr = str_replace('0D7D','0D32 0D4D', $vstr); // [mlymChilluL]
|
$vstr = str_replace('0D7D','0D32 0D4D', $vstr); // [mlymChilluL]
|
||||||
$vstr = str_replace('0D7E','0D33 0D4D', $vstr); // [mlymChilluLl]
|
$vstr = str_replace('0D7E','0D33 0D4D', $vstr); // [mlymChilluLl]
|
||||||
/*
|
/*
|
||||||
// Chillus - 0D7A-0D7E not in font directly, but as E005-E009
|
// Chillus - 0D7A-0D7E not in font directly, but as E005-E009
|
||||||
$vstr = preg_replace('/0D23 0D4D 200D/','0D7A', $vstr);
|
$vstr = preg_replace('/0D23 0D4D 200D/','0D7A', $vstr);
|
||||||
$vstr = preg_replace('/0D28 0D4D 200D/','0D7B', $vstr);
|
$vstr = preg_replace('/0D28 0D4D 200D/','0D7B', $vstr);
|
||||||
$vstr = preg_replace('/0D30 0D4D 200D/','0D7C', $vstr);
|
$vstr = preg_replace('/0D30 0D4D 200D/','0D7C', $vstr);
|
||||||
$vstr = preg_replace('/0D32 0D4D 200D/','0D7D', $vstr);
|
$vstr = preg_replace('/0D32 0D4D 200D/','0D7D', $vstr);
|
||||||
$vstr = preg_replace('/0D33 0D4D 200D/','0D7E', $vstr);
|
$vstr = preg_replace('/0D33 0D4D 200D/','0D7E', $vstr);
|
||||||
|
|
||||||
$vstr = preg_replace('/0D7F/','E004', $vstr); // [mlymChilluK]
|
$vstr = preg_replace('/0D7F/','E004', $vstr); // [mlymChilluK]
|
||||||
$vstr = preg_replace('/0D7A/','E005', $vstr); // [mlymChilluNn]
|
$vstr = preg_replace('/0D7A/','E005', $vstr); // [mlymChilluNn]
|
||||||
$vstr = preg_replace('/0D7B/','E006', $vstr); // [mlymChilluN]
|
$vstr = preg_replace('/0D7B/','E006', $vstr); // [mlymChilluN]
|
||||||
$vstr = preg_replace('/0D7C/','E007', $vstr); // [mlymChilluR]
|
$vstr = preg_replace('/0D7C/','E007', $vstr); // [mlymChilluR]
|
||||||
$vstr = preg_replace('/0D7D/','E008', $vstr); // [mlymChilluL]
|
$vstr = preg_replace('/0D7D/','E008', $vstr); // [mlymChilluL]
|
||||||
$vstr = preg_replace('/0D7E/','E009', $vstr); // [mlymChilluLl]
|
$vstr = preg_replace('/0D7E/','E009', $vstr); // [mlymChilluLl]
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// MALAYALAM double-part vowels []
|
// MALAYALAM double-part vowels []
|
||||||
$vstr = str_replace('0D4A','0D46 0D3E', $vstr); // 2-part Vowel
|
$vstr = str_replace('0D4A','0D46 0D3E', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0D4B','0D47 0D3E', $vstr); // 2-part Vowel
|
$vstr = str_replace('0D4B','0D47 0D3E', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0D4C','0D46 0D57', $vstr); // 2-part Vowel
|
$vstr = str_replace('0D4C','0D46 0D57', $vstr); // 2-part Vowel
|
||||||
$mlprebasedvowels = "(0D46|0D47|0D48)";
|
$mlprebasedvowels = "(0D46|0D47|0D48)";
|
||||||
// No nukta
|
// No nukta
|
||||||
$halant = "0D4D";
|
$halant = "0D4D";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$mlprebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$mlprebasedvowels.'/','\\2 \\1', $vstr); // vowel sign pre-based shift left
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$mlprebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$mlprebasedvowels.'/','\\2 \\1 '.$halant, $vstr); // before CHAR HALANT
|
||||||
}
|
}
|
||||||
|
|
||||||
// TELUGU
|
// TELUGU
|
||||||
else if ($lang=='te') {
|
else if ($lang=='te') {
|
||||||
// TELUGU double-part vowels [0C48 -> 0C46 0C56]
|
// TELUGU double-part vowels [0C48 -> 0C46 0C56]
|
||||||
$vstr = str_replace('0C48','0C46 0C56', $vstr); // 2-part Vowel
|
$vstr = str_replace('0C48','0C46 0C56', $vstr); // 2-part Vowel
|
||||||
$prebasedvowels = "(0C46)";
|
$prebasedvowels = "(0C46)";
|
||||||
$abvvowels = "(0C3E|0C3F|0C40|0C46|0C47|0C4A|0C4B|0C4C|0C55)";
|
$abvvowels = "(0C3E|0C3F|0C40|0C46|0C47|0C4A|0C4B|0C4C|0C55)";
|
||||||
// No nukta
|
// No nukta
|
||||||
$halant = "0C4D";
|
$halant = "0C4D";
|
||||||
$tefullforms = "0C15|0C17|0C18|0C1A|0C1B|0C1C|0C1D|0C20|0C21|0C22|0C24|0C25|0C26|0C27|0C28|0C2A|0C2B|0C2D|0C2E|0C2F|0C30|0C33|0C35|0C36|0C37|0C38|0C39|E028|E029|E02A|E02B|E078|E07A|E07B";
|
$tefullforms = "0C15|0C17|0C18|0C1A|0C1B|0C1C|0C1D|0C20|0C21|0C22|0C24|0C25|0C26|0C27|0C28|0C2A|0C2B|0C2D|0C2E|0C2F|0C30|0C33|0C35|0C36|0C37|0C38|0C39|E028|E029|E02A|E02B|E078|E07A|E07B";
|
||||||
$vstr = preg_replace('/('.$tefullforms .') '.$halant.' ('.$tefullforms .') '.$abvvowels .'/','\\1 \\3 '.$halant.' \\2', $vstr); // before HALANT
|
$vstr = preg_replace('/('.$tefullforms .') '.$halant.' ('.$tefullforms .') '.$abvvowels .'/','\\1 \\3 '.$halant.' \\2', $vstr); // before HALANT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// KANNADA
|
// KANNADA
|
||||||
else if ($lang=='kn') {
|
else if ($lang=='kn') {
|
||||||
// KANNADA double-part vowels [0CC8 -> 0CC6 0CD6]
|
// KANNADA double-part vowels [0CC8 -> 0CC6 0CD6]
|
||||||
$vstr = str_replace('0CC0','0CBF 0CD5', $vstr); // 2-part Vowel
|
$vstr = str_replace('0CC0','0CBF 0CD5', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0CC7','0CC6 0CD5', $vstr); // 2-part Vowel
|
$vstr = str_replace('0CC7','0CC6 0CD5', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0CC8','0CC6 0CD6', $vstr); // 2-part Vowel AI - no glyph for single
|
$vstr = str_replace('0CC8','0CC6 0CD6', $vstr); // 2-part Vowel AI - no glyph for single
|
||||||
$vstr = str_replace('0CCA','0CC6 0CC2', $vstr); // 2-part Vowel
|
$vstr = str_replace('0CCA','0CC6 0CC2', $vstr); // 2-part Vowel
|
||||||
$vstr = str_replace('0CCB','0CC6 0CC2 0CD5', $vstr); // 2-part Vowel
|
$vstr = str_replace('0CCB','0CC6 0CC2 0CD5', $vstr); // 2-part Vowel
|
||||||
$prebasedvowels = "(0CBF|0CC6)";
|
$prebasedvowels = "(0CBF|0CC6)";
|
||||||
$halant = "0CCD";
|
$halant = "0CCD";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
|
|
||||||
// SPECIALS
|
// SPECIALS
|
||||||
|
|
||||||
// DEVANAGARI Ra Halant Ra
|
// DEVANAGARI Ra Halant Ra
|
||||||
if ($lang=='hi') {
|
if ($lang=='hi') {
|
||||||
$vstr = str_replace('0930 094D 0930','E05D 0930', $vstr); // Ra Halant Ra => halfRa FullRa
|
$vstr = str_replace('0930 094D 0930','E05D 0930', $vstr); // Ra Halant Ra => halfRa FullRa
|
||||||
}
|
}
|
||||||
|
|
||||||
// GUJARATI
|
// GUJARATI
|
||||||
if ($lang=='gu') {
|
if ($lang=='gu') {
|
||||||
$vstr = str_replace('0AB0 0AC2','E02E', $vstr); // Ra VowelUu => SpecialForm RaUu
|
$vstr = str_replace('0AB0 0AC2','E02E', $vstr); // Ra VowelUu => SpecialForm RaUu
|
||||||
}
|
}
|
||||||
|
|
||||||
// TELUGU Ra Halant <Consonant> Halant => halfRa Halant<Consonant> Halant
|
// TELUGU Ra Halant <Consonant> Halant => halfRa Halant<Consonant> Halant
|
||||||
if ($lang=='te') {
|
if ($lang=='te') {
|
||||||
$vstr = preg_replace('/0C30 0C4D ([A-F0-9]{4}) 0C4D/','E021 0C4D \\1 0C4D', $vstr);
|
$vstr = preg_replace('/0C30 0C4D ([A-F0-9]{4}) 0C4D/','E021 0C4D \\1 0C4D', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// KANNADA
|
// KANNADA
|
||||||
// Reph at end of word becomes E0CC instead of E00B
|
// Reph at end of word becomes E0CC instead of E00B
|
||||||
if ($lang=='kn') {
|
if ($lang=='kn') {
|
||||||
$vstr = str_replace('0CB0 0CCD 0020','E0CC 0020', $vstr); // mPDF 5.3.87
|
$vstr = str_replace('0CB0 0CCD 0020','E0CC 0020', $vstr); // mPDF 5.3.87
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
// MAIN BIT FROM VOLT RULES
|
// MAIN BIT FROM VOLT RULES
|
||||||
foreach($voltdata[$font] AS $rid=>$reps) {
|
foreach($voltdata[$font] AS $rid=>$reps) {
|
||||||
//echo $rid . ': ' . $vstr.'<br />';
|
//echo $rid . ': ' . $vstr.'<br />';
|
||||||
$vstr = preg_replace('/'.$reps['match'].'/',$reps['replace'], $vstr);
|
$vstr = preg_replace('/'.$reps['match'].'/',$reps['replace'], $vstr);
|
||||||
}
|
}
|
||||||
//echo $vstr.'<br />'; exit;
|
//echo $vstr.'<br />'; exit;
|
||||||
|
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
|
|
||||||
// SPECIALS
|
// SPECIALS
|
||||||
|
|
||||||
// KANNADA
|
// KANNADA
|
||||||
// <Base> <BelowBase1> [<BelowBase2> ] MatraI -> <Base/MatraI ligature> <Belowbase1> etc
|
// <Base> <BelowBase1> [<BelowBase2> ] MatraI -> <Base/MatraI ligature> <Belowbase1> etc
|
||||||
if ($lang=='kn') {
|
if ($lang=='kn') {
|
||||||
$matraI = "0CBF";
|
$matraI = "0CBF";
|
||||||
$knbase = preg_split('/\|/', "0C95|0C96|0C97|0C98|0C9A|0C9B|0C9C|0C9D|0CA0|0CA1|0CA2|0CA3|0CA4|0CA5|0CA6|0CA7|0CA8|0CAA|0CAB|0CAC|0CAD|0CAE|0CAF|0CB0|0CB2|0CB3|0CB5|0CB6|0CB7|0CB8|0CB9|E0A3|E07D|E07E");
|
$knbase = preg_split('/\|/', "0C95|0C96|0C97|0C98|0C9A|0C9B|0C9C|0C9D|0CA0|0CA1|0CA2|0CA3|0CA4|0CA5|0CA6|0CA7|0CA8|0CAA|0CAB|0CAC|0CAD|0CAE|0CAF|0CB0|0CB2|0CB3|0CB5|0CB6|0CB7|0CB8|0CB9|E0A3|E07D|E07E");
|
||||||
$knmatraIligature = preg_split('/\|/', "E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A4|E0A1|E0A2");
|
$knmatraIligature = preg_split('/\|/', "E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A4|E0A1|E0A2");
|
||||||
$belowbase1 = "E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037|E038|E039|E03A|E03B|E03C|E03D|E03E|E03F|E040|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E081";
|
$belowbase1 = "E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037|E038|E039|E03A|E03B|E03C|E03D|E03E|E03F|E040|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E081";
|
||||||
$belowbase2 = "E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E081";
|
$belowbase2 = "E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E081";
|
||||||
for ($i=0; $i<count($knbase);$i++) {
|
for ($i=0; $i<count($knbase);$i++) {
|
||||||
$vstr = preg_replace('/'.$knbase[$i].' ('.$belowbase1.') ('.$belowbase2.') '.$matraI.'/', $knmatraIligature[$i].' \\1 \\2', $vstr);
|
$vstr = preg_replace('/'.$knbase[$i].' ('.$belowbase1.') ('.$belowbase2.') '.$matraI.'/', $knmatraIligature[$i].' \\1 \\2', $vstr);
|
||||||
$vstr = preg_replace('/'.$knbase[$i].' ('.$belowbase1.') '.$matraI.'/', $knmatraIligature[$i].' \\1', $vstr);
|
$vstr = preg_replace('/'.$knbase[$i].' ('.$belowbase1.') '.$matraI.'/', $knmatraIligature[$i].' \\1', $vstr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// KANNADA
|
// KANNADA
|
||||||
// [KanTtaFull] [matraI] => [KanTtaPartial] [matraI]
|
// [KanTtaFull] [matraI] => [KanTtaPartial] [matraI]
|
||||||
if ($lang=='kn') {
|
if ($lang=='kn') {
|
||||||
$vstr = preg_replace('/0C9F '.$matraI.'/', 'E015 '.$matraI, $vstr);
|
$vstr = preg_replace('/0C9F '.$matraI.'/', 'E015 '.$matraI, $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ORIYA
|
// ORIYA
|
||||||
if ($lang=='or') {
|
if ($lang=='or') {
|
||||||
// SpecialCase Ra[0B30] Halant still left before [oryaFullNnNna] => E00F
|
// SpecialCase Ra[0B30] Halant still left before [oryaFullNnNna] => E00F
|
||||||
$vstr = preg_replace('/0B30 '.$halant.' E00F/','E00F E069', $vstr); // convert to Reph
|
$vstr = preg_replace('/0B30 '.$halant.' E00F/','E00F E069', $vstr); // convert to Reph
|
||||||
}
|
}
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
// SHIFT REPH
|
// SHIFT REPH
|
||||||
|
|
||||||
// DEVANAGARI Shift Reph [E015]
|
// DEVANAGARI Shift Reph [E015]
|
||||||
if ($lang=='hi') {
|
if ($lang=='hi') {
|
||||||
// FIRSTLY - halfRa = E05D - Change this to Reph [E015]
|
// FIRSTLY - halfRa = E05D - Change this to Reph [E015]
|
||||||
$himatchhalfforms = "E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D|E07E|E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E0D3|E0D4|E0D5|E0D6|E0D7|E0D8|E0D9|E0DA|E0DB|E0DC|E0DD|E0DE|E0DF|E0E0|E0E1|E0E2|E0E3|E0E4|E0E5|E0E6|E0E7|E0E8|E0E9|E0EA|E0EB|E0EC|E0ED|E0EE|E0EF|E0F0|E0F1|E0F2|E0F3|E0F4|E0F5|E0F6|E0F7|E0F8|E0F9|E0FA|E0FB|E0FC|E0FD|E0FE|E0FF|E100|E101|E102|E103|E104|E105|E106|E107|E108|E109|E10A|E10B|E10C|E10D|E10E|E10F|E110|E111|E112|E113|E114|E115|E116|E117|E118|E119|E11A|E13D|E13E|E13F|E140|E141|E142|E143|E144|E145";
|
$himatchhalfforms = "E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D|E07E|E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E0D3|E0D4|E0D5|E0D6|E0D7|E0D8|E0D9|E0DA|E0DB|E0DC|E0DD|E0DE|E0DF|E0E0|E0E1|E0E2|E0E3|E0E4|E0E5|E0E6|E0E7|E0E8|E0E9|E0EA|E0EB|E0EC|E0ED|E0EE|E0EF|E0F0|E0F1|E0F2|E0F3|E0F4|E0F5|E0F6|E0F7|E0F8|E0F9|E0FA|E0FB|E0FC|E0FD|E0FE|E0FF|E100|E101|E102|E103|E104|E105|E106|E107|E108|E109|E10A|E10B|E10C|E10D|E10E|E10F|E110|E111|E112|E113|E114|E115|E116|E117|E118|E119|E11A|E13D|E13E|E13F|E140|E141|E142|E143|E144|E145";
|
||||||
$himatchfullforms = "0915|0916|0917|0918|0919|091A|091B|091C|091D|091E|091F|0920|0921|0922|0923|0924|0925|0926|0927|0928|092A|092B|092C|092D|092E|092F|0930|0932|0933|0935|0936|0937|0938|0939|E028|E029|0958|0959|095A|E02A|E02B|E02C|E02D|095B|E02E|E02F|E030|E031|095C|095D|E032|E033|E034|E035|E036|0929|E037|095E|E038|E039|E03A|095F|0931|E03B|0934|E03C|E03D|E03E|E03F|E040|E041|E042|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF|E0B0|E0B1|E0B2|E0B3|E0B4|E0B5|E0B6|E0B7|E0B8|E0B9|E0BA|E0BB|E0BC|E0BD|E0BE|E0BF|E0C0|E0C1|E0C2|E0C3|E0C4|E0C5|E0C6|E0C7|E0C8|E0C9|E0CA|E0CB|E0CC|E0CD|E0CE|E0CF|E0D0|E0D1|E0D2|E11E|E11F|E120|E121|E122|E123|E124|E125|E126|E127|E128|E129|E12A|E12B|E12C|E12D|E12E|E12F|E130|E131|E132|E133";
|
$himatchfullforms = "0915|0916|0917|0918|0919|091A|091B|091C|091D|091E|091F|0920|0921|0922|0923|0924|0925|0926|0927|0928|092A|092B|092C|092D|092E|092F|0930|0932|0933|0935|0936|0937|0938|0939|E028|E029|0958|0959|095A|E02A|E02B|E02C|E02D|095B|E02E|E02F|E030|E031|095C|095D|E032|E033|E034|E035|E036|0929|E037|095E|E038|E039|E03A|095F|0931|E03B|0934|E03C|E03D|E03E|E03F|E040|E041|E042|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF|E0B0|E0B1|E0B2|E0B3|E0B4|E0B5|E0B6|E0B7|E0B8|E0B9|E0BA|E0BB|E0BC|E0BD|E0BE|E0BF|E0C0|E0C1|E0C2|E0C3|E0C4|E0C5|E0C6|E0C7|E0C8|E0C9|E0CA|E0CB|E0CC|E0CD|E0CE|E0CF|E0D0|E0D1|E0D2|E11E|E11F|E120|E121|E122|E123|E124|E125|E126|E127|E128|E129|E12A|E12B|E12C|E12D|E12E|E12F|E130|E131|E132|E133";
|
||||||
$vstr = preg_replace('/E05D ('.$himatchhalfforms.'|'.$himatchfullforms.')/', 'E015 \\1', $vstr);
|
$vstr = preg_replace('/E05D ('.$himatchhalfforms.'|'.$himatchfullforms.')/', 'E015 \\1', $vstr);
|
||||||
|
|
||||||
// Reph = E015 - Shift Right to just after end of syllable
|
// Reph = E015 - Shift Right to just after end of syllable
|
||||||
// FullAllForms + HalfAllForms + 093E matraA
|
// FullAllForms + HalfAllForms + 093E matraA
|
||||||
while(preg_match('/E015 ('.$himatchhalfforms.')/', $vstr)) {
|
while(preg_match('/E015 ('.$himatchhalfforms.')/', $vstr)) {
|
||||||
$vstr = preg_replace('/E015 ('.$himatchhalfforms.')/', '\\1 E015', $vstr);
|
$vstr = preg_replace('/E015 ('.$himatchhalfforms.')/', '\\1 E015', $vstr);
|
||||||
}
|
}
|
||||||
$vstr = preg_replace('/E015 ('.$himatchfullforms.')/', '\\1 E015', $vstr);
|
$vstr = preg_replace('/E015 ('.$himatchfullforms.')/', '\\1 E015', $vstr);
|
||||||
|
|
||||||
// Now shift it beyond post-based vowels // ??? Need to add others e.g. 0949,094A,094B,094C + presentation forms like E198
|
// Now shift it beyond post-based vowels // ??? Need to add others e.g. 0949,094A,094B,094C + presentation forms like E198
|
||||||
$vstr = str_replace('E015 093E', '093E E015', $vstr);
|
$vstr = str_replace('E015 093E', '093E E015', $vstr);
|
||||||
$vstr = preg_replace('/E015 (0940|E194|E195|E196|E197|E198)/', '\\1 E014', $vstr); // (Small) reph [E014] to Right of matraI
|
$vstr = preg_replace('/E015 (0940|E194|E195|E196|E197|E198)/', '\\1 E014', $vstr); // (Small) reph [E014] to Right of matraI
|
||||||
$vstr = str_replace('E015 0947', '0947 E014', $vstr); // (Small) reph [E014] to Right of matraI
|
$vstr = str_replace('E015 0947', '0947 E014', $vstr); // (Small) reph [E014] to Right of matraI
|
||||||
}
|
}
|
||||||
|
|
||||||
// BENGALI Shift Reph [E068]
|
// BENGALI Shift Reph [E068]
|
||||||
else if ($lang=='bn') {
|
else if ($lang=='bn') {
|
||||||
$bnfullconjuncts = "E002|E003|E004|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D|E07E|E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF|E0B0|E0B1|E0B2|E0B3|E0B4|E0B5|E0B6|E0B7|E0B8|E0B9|E0BA|E0BB|E0BC|E0BD|E0BE|E0BF|E0C0|E0C1|E0C2|E0C3|E0C4|E0C5|E0C6|E0C7|E0C8|E0C9|E0CA|E0CB|E0CC|E0CD|E0CE|E0CF|E0D0|E0D1|E0D2|E0D3|E0D4|E0D5|E0D6|E0D7|E0D8|E0D9|E0DA|E0DB|E0DC|E0DD|E0DE|E0DF|E0E0|E0E1|E0E2|E0E3|E0E4|E0E5|E0E6|E0E7|E0E8|E0E9|E0EA|E0EB|E0EC|E0ED|E0EE|E0EF|E0F0|E0F1|E0F2|E0F3|E0F4|E0F5|E0F6|E0F7|E0F8|E0F9|E0FA|E0FB|E0FC|E0FD|E0FE|E0FF|E100|E101|E102|E103|E104|E105|E106|E107|E108|E109|E10A|E10B|E10C|E10D|E10E|E10F|E110|E111|E112|E113|E114|E115|E116|E117|E118|E119|E11A|E11B|E11C|E11D|E11E|E11F|E120|E121|E122|E123|E124|E125|E126|E127|E128|E129|E12A|E12B|E12C|E12D|E12E|E12F|E130|E131|E132|E133|E134|E135|E136|E137|E138|E139|E13A|E13B|E13C|E13D|E13E|E13F|E140|E141|E142|E143|E144|E145|E146|E147|E148|E149|E14A|E14B|E14C|E14D|E14E|E14F|E150|E151|E152|E153|E154|E155|E156|E157|E158|E159|E15A|E15B|E15C|E15D|E15E|E15F|E160|E161|E162|E163|E164|E165|E166|E167|E168|E169|E16A|E16B|E16C|E16D|E16E|E16F|E170|E171|E172|E173|E174|E175|E176|E177|E178|E179|E17A|E17B|E17C|E17D|E17E|E17F|E180|E181|E182|E183|E184|E185|E186|E187|E188|E189|E18A|E18B|E18C|E18D|E18E|E18F|E190|E191|E192|E193|E194|E195|E196|E197|E198|E199|E19A";
|
$bnfullconjuncts = "E002|E003|E004|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D|E07E|E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF|E0B0|E0B1|E0B2|E0B3|E0B4|E0B5|E0B6|E0B7|E0B8|E0B9|E0BA|E0BB|E0BC|E0BD|E0BE|E0BF|E0C0|E0C1|E0C2|E0C3|E0C4|E0C5|E0C6|E0C7|E0C8|E0C9|E0CA|E0CB|E0CC|E0CD|E0CE|E0CF|E0D0|E0D1|E0D2|E0D3|E0D4|E0D5|E0D6|E0D7|E0D8|E0D9|E0DA|E0DB|E0DC|E0DD|E0DE|E0DF|E0E0|E0E1|E0E2|E0E3|E0E4|E0E5|E0E6|E0E7|E0E8|E0E9|E0EA|E0EB|E0EC|E0ED|E0EE|E0EF|E0F0|E0F1|E0F2|E0F3|E0F4|E0F5|E0F6|E0F7|E0F8|E0F9|E0FA|E0FB|E0FC|E0FD|E0FE|E0FF|E100|E101|E102|E103|E104|E105|E106|E107|E108|E109|E10A|E10B|E10C|E10D|E10E|E10F|E110|E111|E112|E113|E114|E115|E116|E117|E118|E119|E11A|E11B|E11C|E11D|E11E|E11F|E120|E121|E122|E123|E124|E125|E126|E127|E128|E129|E12A|E12B|E12C|E12D|E12E|E12F|E130|E131|E132|E133|E134|E135|E136|E137|E138|E139|E13A|E13B|E13C|E13D|E13E|E13F|E140|E141|E142|E143|E144|E145|E146|E147|E148|E149|E14A|E14B|E14C|E14D|E14E|E14F|E150|E151|E152|E153|E154|E155|E156|E157|E158|E159|E15A|E15B|E15C|E15D|E15E|E15F|E160|E161|E162|E163|E164|E165|E166|E167|E168|E169|E16A|E16B|E16C|E16D|E16E|E16F|E170|E171|E172|E173|E174|E175|E176|E177|E178|E179|E17A|E17B|E17C|E17D|E17E|E17F|E180|E181|E182|E183|E184|E185|E186|E187|E188|E189|E18A|E18B|E18C|E18D|E18E|E18F|E190|E191|E192|E193|E194|E195|E196|E197|E198|E199|E19A";
|
||||||
// $bnfullcons - set above;
|
// $bnfullcons - set above;
|
||||||
$vstr = preg_replace('/E068 ('.$bnfullconjuncts.'|'.$bnfullcons.')/', '\\1 E068', $vstr);
|
$vstr = preg_replace('/E068 ('.$bnfullconjuncts.'|'.$bnfullcons.')/', '\\1 E068', $vstr);
|
||||||
// ? Need to shift it beyond post-base vowels 09BE, 09C0, 09D7 haven't found so can't test??
|
// ? Need to shift it beyond post-base vowels 09BE, 09C0, 09D7 haven't found so can't test??
|
||||||
$vstr = preg_replace('/E068 (09BE|09C0|09D7)/', '\\1 E068', $vstr);
|
$vstr = preg_replace('/E068 (09BE|09C0|09D7)/', '\\1 E068', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
// GUJARATI Shift Reph [E032]
|
// GUJARATI Shift Reph [E032]
|
||||||
else if ($lang=='gu') {
|
else if ($lang=='gu') {
|
||||||
$gufullforms = "0A95|0A96|0A97|0A98|0A99|0A9A|0A9B|0A9C|0A9D|0A9E|0A9F|0AA0|0AA1|0AA2|0AA3|0AA4|0AA5|0AA6|0AA7|0AA8|0AAA|0AAB|0AAC|0AAD|0AAE|0AAF|0AB0|0AB2|0AB3|0AB5|0AB6|0AB7|0AB8|0AB9|E002|E003|E004|E005|E006|E007|E008|E009|E00A|E00B|E00C|E00D|E00E|E00F|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D|E07E|E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5";
|
$gufullforms = "0A95|0A96|0A97|0A98|0A99|0A9A|0A9B|0A9C|0A9D|0A9E|0A9F|0AA0|0AA1|0AA2|0AA3|0AA4|0AA5|0AA6|0AA7|0AA8|0AAA|0AAB|0AAC|0AAD|0AAE|0AAF|0AB0|0AB2|0AB3|0AB5|0AB6|0AB7|0AB8|0AB9|E002|E003|E004|E005|E006|E007|E008|E009|E00A|E00B|E00C|E00D|E00E|E00F|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D|E07E|E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5";
|
||||||
$vstr = preg_replace('/E032 ('.$gufullforms.')/', '\\1 E032', $vstr);
|
$vstr = preg_replace('/E032 ('.$gufullforms.')/', '\\1 E032', $vstr);
|
||||||
// Now shift it beyond post-based vowels // ??? Need to add others e.g. 0949,094A,094B,094C + presentation forms like E198
|
// Now shift it beyond post-based vowels // ??? Need to add others e.g. 0949,094A,094B,094C + presentation forms like E198
|
||||||
// ? Need to shift it beyond post-base vowels 0ABE, 0AC0 haven't found so can't test??
|
// ? Need to shift it beyond post-base vowels 0ABE, 0AC0 haven't found so can't test??
|
||||||
$vstr = preg_replace('/E032 (0ABE|0AC0)/', '\\1 E032', $vstr);
|
$vstr = preg_replace('/E032 (0ABE|0AC0)/', '\\1 E032', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// TELUGU Shift Reph to LEFT [E046|E069|E077] [TelRaSmallOne] => E046 [TelRaSmallTwo] => E069 [TelRaSmallThree] => E077
|
// TELUGU Shift Reph to LEFT [E046|E069|E077] [TelRaSmallOne] => E046 [TelRaSmallTwo] => E069 [TelRaSmallThree] => E077
|
||||||
else if ($lang=='te') {
|
else if ($lang=='te') {
|
||||||
// tefullforms defined earlier
|
// tefullforms defined earlier
|
||||||
$tepartialforms = "E00D|E00E|E00F|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E07C|E07D|E07E";
|
$tepartialforms = "E00D|E00E|E00F|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E07C|E07D|E07E";
|
||||||
$matraligs = "E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF";
|
$matraligs = "E07F|E080|E081|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF";
|
||||||
$tevowels = "0C3E|0C3F|0C40|0C46|0C47|0C56|0C4A|0C4B|0C4C"
|
$tevowels = "0C3E|0C3F|0C40|0C46|0C47|0C56|0C4A|0C4B|0C4C"
|
||||||
."|0C41|0C42|0C43|0C44"; // post matras
|
."|0C41|0C42|0C43|0C44"; // post matras
|
||||||
$vstr = preg_replace('/('.$tevowels.') (E046|E069|E077)/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$tevowels.') (E046|E069|E077)/', '\\2 \\1', $vstr);
|
||||||
while(preg_match('/('.$tepartialforms.') (E046|E069|E077)/', $vstr)) {
|
while(preg_match('/('.$tepartialforms.') (E046|E069|E077)/', $vstr)) {
|
||||||
$vstr = preg_replace('/('.$tepartialforms.') (E046|E069|E077)/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$tepartialforms.') (E046|E069|E077)/', '\\2 \\1', $vstr);
|
||||||
}
|
}
|
||||||
$vstr = preg_replace('/('.$tefullforms .'|'.$matraligs.') (E046|E069|E077)/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$tefullforms .'|'.$matraligs.') (E046|E069|E077)/', '\\2 \\1', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// KANNADA Shift Reph to RIGHT [E00B]
|
// KANNADA Shift Reph to RIGHT [E00B]
|
||||||
else if ($lang=='kn') {
|
else if ($lang=='kn') {
|
||||||
$knfullforms = "0C95|0C96|0C97|0C98|0C99|0C9A|0C9B|0C9C|0C9D|0C9E|0C9F|0CA0|0CA1|0CA2|0CA3|0CA4|0CA5|0CA6|0CA7|0CA8|0CAA|0CAB|0CAC|0CAD|0CAE|0CAF|0CB0|0CB1|0CB2|0CB3|0CB5|0CB6|0CB7|0CB8|0CB9|E07D|E07E|E0A3";
|
$knfullforms = "0C95|0C96|0C97|0C98|0C99|0C9A|0C9B|0C9C|0C9D|0C9E|0C9F|0CA0|0CA1|0CA2|0CA3|0CA4|0CA5|0CA6|0CA7|0CA8|0CAA|0CAB|0CAC|0CAD|0CAE|0CAF|0CB0|0CB1|0CB2|0CB3|0CB5|0CB6|0CB7|0CB8|0CB9|E07D|E07E|E0A3";
|
||||||
$knpartialforms = "E00C|E00D|E00E|E00F|E010|E011|E012|E013|E014|0C9E|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E028|E029|E02A|E02B|E02C|E02D|E07F";
|
$knpartialforms = "E00C|E00D|E00E|E00F|E010|E011|E012|E013|E014|0C9E|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E028|E029|E02A|E02B|E02C|E02D|E07F";
|
||||||
while(preg_match('/E00B ('.$knpartialforms.')/', $vstr)) {
|
while(preg_match('/E00B ('.$knpartialforms.')/', $vstr)) {
|
||||||
$vstr = preg_replace('/E00B ('.$knpartialforms.')/', '\\1 E00B', $vstr);
|
$vstr = preg_replace('/E00B ('.$knpartialforms.')/', '\\1 E00B', $vstr);
|
||||||
}
|
}
|
||||||
// mPDF 5.3.47 Also move Reph to right of matraIligatures
|
// mPDF 5.3.47 Also move Reph to right of matraIligatures
|
||||||
$knfullforms .= "|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A4|E0A1|E0A2";
|
$knfullforms .= "|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A4|E0A1|E0A2";
|
||||||
$vstr = preg_replace('/E00B ('.$knfullforms.')/', '\\1 E00B', $vstr);
|
$vstr = preg_replace('/E00B ('.$knfullforms.')/', '\\1 E00B', $vstr);
|
||||||
|
|
||||||
// ? Need to shift it beyond base or below-base forms - haven't found so can't test??
|
// ? Need to shift it beyond base or below-base forms - haven't found so can't test??
|
||||||
// mPDF 5.3.87
|
// mPDF 5.3.87
|
||||||
// E004 added to list (which is a transformed version of 0CBE)
|
// E004 added to list (which is a transformed version of 0CBE)
|
||||||
$knvowels = "0CBE|0CC0|0CC1|0CC2|0CC3|0CC4|0CC7|0CC8|0CCA|0CCB|0CD5|0CD6|E004";
|
$knvowels = "0CBE|0CC0|0CC1|0CC2|0CC3|0CC4|0CC7|0CC8|0CCA|0CCB|0CD5|0CD6|E004";
|
||||||
$vstr = preg_replace('/E00B ('.$knvowels.')/', '\\1 E00B', $vstr);
|
$vstr = preg_replace('/E00B ('.$knvowels.')/', '\\1 E00B', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// ORIYA Shift Reph to RIGHT [E069|E06A|E06B|E06C]
|
// ORIYA Shift Reph to RIGHT [E069|E06A|E06B|E06C]
|
||||||
else if ($lang=='or') {
|
else if ($lang=='or') {
|
||||||
$orrephs = "E069|E06A|E06B|E06C";
|
$orrephs = "E069|E06A|E06B|E06C";
|
||||||
$orfullforms = "0B15|0B16|0B17|0B18|0B19|0B1A|0B1B|0B1C|0B1D|0B1E|0B1F|0B20|0B21|0B22|0B23|0B24|0B25|0B26|0B27|0B28|0B29|0B2A|0B2B|0B2C|0B2D|0B2E|0B2F|0B30|0B31|0B32|0B33|0B34|0B35|0B36|0B37|0B38|E003|E004|E005|E006|E007|E008|E009|E00A|E00B|E00C|E00D|E00E|E00F|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E028|E029|E02A|E02B|E02C|E02D|E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037";
|
$orfullforms = "0B15|0B16|0B17|0B18|0B19|0B1A|0B1B|0B1C|0B1D|0B1E|0B1F|0B20|0B21|0B22|0B23|0B24|0B25|0B26|0B27|0B28|0B29|0B2A|0B2B|0B2C|0B2D|0B2E|0B2F|0B30|0B31|0B32|0B33|0B34|0B35|0B36|0B37|0B38|E003|E004|E005|E006|E007|E008|E009|E00A|E00B|E00C|E00D|E00E|E00F|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E028|E029|E02A|E02B|E02C|E02D|E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037";
|
||||||
// E123 - E147 FullHalant forms ? add to FullForms
|
// E123 - E147 FullHalant forms ? add to FullForms
|
||||||
$orpartialforms = "E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF|E0B0|E0B1|E0B2|E0B3|E0B4|E0B5|E0B6|E0B7|E0B8|E0B9|E0BA|E0BB|E0BC|E0BD|E0BE|E0BF|E0C0|E0C1|E0C2|E0C3|E0C4|E0C5|E0C6|E0C7|E0C8|E0C9|E0CA|E0CB|E0CC|E0CD|E0CE|E0CF|E0D0|E0D1|E0D2|E0D3|E0D4|E0D5|E0D6|E0D7|E0D8|E0D9|E0DA|E0DB|E0DC|E0DD|E0DE|E0DF|E0E0|E0E1|E0E2|E0E3|E0E4|E0E5|E0E6|E0E7|E0E8|E0E9|E0EA|E0EB|E0EC|E0ED|E0EE|E0EF|E0F0|E0F1|E0F2|E0F3|E0F4|E0F5";
|
$orpartialforms = "E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB|E0AC|E0AD|E0AE|E0AF|E0B0|E0B1|E0B2|E0B3|E0B4|E0B5|E0B6|E0B7|E0B8|E0B9|E0BA|E0BB|E0BC|E0BD|E0BE|E0BF|E0C0|E0C1|E0C2|E0C3|E0C4|E0C5|E0C6|E0C7|E0C8|E0C9|E0CA|E0CB|E0CC|E0CD|E0CE|E0CF|E0D0|E0D1|E0D2|E0D3|E0D4|E0D5|E0D6|E0D7|E0D8|E0D9|E0DA|E0DB|E0DC|E0DD|E0DE|E0DF|E0E0|E0E1|E0E2|E0E3|E0E4|E0E5|E0E6|E0E7|E0E8|E0E9|E0EA|E0EB|E0EC|E0ED|E0EE|E0EF|E0F0|E0F1|E0F2|E0F3|E0F4|E0F5";
|
||||||
|
|
||||||
// Combined MatraIReph[E06D] split [0B3F & E069] to allow reph to be shifted forwards
|
// Combined MatraIReph[E06D] split [0B3F & E069] to allow reph to be shifted forwards
|
||||||
$vstr = preg_replace('/('.$orfullforms.') E06D ('.$orfullforms.') 0B3E/', '\\1 0B3F E069 \\2 0B3E', $vstr);
|
$vstr = preg_replace('/('.$orfullforms.') E06D ('.$orfullforms.') 0B3E/', '\\1 0B3F E069 \\2 0B3E', $vstr);
|
||||||
|
|
||||||
|
|
||||||
while(preg_match('/('.$orrephs.') ('.$orpartialforms.')/', $vstr)) {
|
while(preg_match('/('.$orrephs.') ('.$orpartialforms.')/', $vstr)) {
|
||||||
$vstr = preg_replace('/('.$orrephs.') ('.$orpartialforms.')/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$orrephs.') ('.$orpartialforms.')/', '\\2 \\1', $vstr);
|
||||||
}
|
}
|
||||||
$vstr = preg_replace('/('.$orrephs.') ('.$orfullforms.')/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$orrephs.') ('.$orfullforms.')/', '\\2 \\1', $vstr);
|
||||||
|
|
||||||
|
|
||||||
// Combine Reph and MatraI
|
// Combine Reph and MatraI
|
||||||
$vstr = str_replace('E069 0B3F', 'E06D', $vstr); // Reph and MatraI -> MatraIReph
|
$vstr = str_replace('E069 0B3F', 'E06D', $vstr); // Reph and MatraI -> MatraIReph
|
||||||
$vstr = str_replace('E06A 0B3F', 'E06E', $vstr); // Reph and MatraI -> MatraIReph
|
$vstr = str_replace('E06A 0B3F', 'E06E', $vstr); // Reph and MatraI -> MatraIReph
|
||||||
$vstr = str_replace('E06B 0B3F', 'E06F', $vstr); // Reph and MatraI -> MatraIReph
|
$vstr = str_replace('E06B 0B3F', 'E06F', $vstr); // Reph and MatraI -> MatraIReph
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// MALAYALAM Shift Reph to LEFT [E00E] (mlylmRaVattu)
|
// MALAYALAM Shift Reph to LEFT [E00E] (mlylmRaVattu)
|
||||||
else if ($lang=='ml') {
|
else if ($lang=='ml') {
|
||||||
$halant = "0D4D";
|
$halant = "0D4D";
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' 0D30/','E00E \\1', $vstr); // 0D30 = Ra
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' 0D30/','E00E \\1', $vstr); // 0D30 = Ra
|
||||||
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$mlprebasedvowels .' 0D30/','\\2 E00E \\1', $vstr); // 0D30 = Ra
|
$vstr = preg_replace('/([A-F0-9]{4}) '.$halant.' '.$mlprebasedvowels .' 0D30/','\\2 E00E \\1', $vstr); // 0D30 = Ra
|
||||||
|
|
||||||
$mlfullforms = "0D15|0D16|0D17|0D18|0D19|0D1A|0D1B|0D1C|0D1D|0D1E|0D1F|0D20|0D21|0D22|0D23|0D24|0D25|0D26|0D27|0D28|0D2A|0D2B|0D2C|0D2D|0D2E|0D2F|0D30|0D31|0D32|0D33|0D34|0D35|0D36|0D37|0D38|0D39"
|
$mlfullforms = "0D15|0D16|0D17|0D18|0D19|0D1A|0D1B|0D1C|0D1D|0D1E|0D1F|0D20|0D21|0D22|0D23|0D24|0D25|0D26|0D27|0D28|0D2A|0D2B|0D2C|0D2D|0D2E|0D2F|0D30|0D31|0D32|0D33|0D34|0D35|0D36|0D37|0D38|0D39"
|
||||||
."|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E028|E029|E02A|E02B|E02C|E02D|E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037|E038|E039|E03A|E03B|E03C|E03D|E03E|E03F|E040|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D";
|
."|E010|E011|E012|E013|E014|E015|E016|E017|E018|E019|E01A|E01B|E01C|E01D|E01E|E01F|E020|E021|E022|E023|E024|E025|E026|E027|E028|E029|E02A|E02B|E02C|E02D|E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037|E038|E039|E03A|E03B|E03C|E03D|E03E|E03F|E040|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E|E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071|E072|E073|E074|E075|E076|E077|E078|E079|E07A|E07B|E07C|E07D";
|
||||||
// = FullConsonants + FullConjuncts
|
// = FullConsonants + FullConjuncts
|
||||||
|
|
||||||
// = Add Chillu characters // mPDF 5.0.024
|
// = Add Chillu characters // mPDF 5.0.024
|
||||||
$mlfullforms .= "|E004|E005|E006|E007|E008|E009";
|
$mlfullforms .= "|E004|E005|E006|E007|E008|E009";
|
||||||
while(preg_match('/('.$mlfullforms.') E00E/', $vstr))
|
while(preg_match('/('.$mlfullforms.') E00E/', $vstr))
|
||||||
$vstr = preg_replace('/('.$mlfullforms.') E00E/', 'E00E \\1', $vstr);
|
$vstr = preg_replace('/('.$mlfullforms.') E00E/', 'E00E \\1', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
|
|
||||||
// SHIFT post-based vowels to Left of SmallForms (NOT to left of full forms)
|
// SHIFT post-based vowels to Left of SmallForms (NOT to left of full forms)
|
||||||
|
|
||||||
// TELUGU Shift
|
// TELUGU Shift
|
||||||
if ($lang=='te') {
|
if ($lang=='te') {
|
||||||
// NB $tevowels defined above
|
// NB $tevowels defined above
|
||||||
// NB $tefullforms defined above
|
// NB $tefullforms defined above
|
||||||
$tebelowbase1 = "E02C|E02D|E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037|E038|E039|E03A|E03B|E03C|E03D|E03E|E03F|E040|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E"; //'Small1KaToHa'
|
$tebelowbase1 = "E02C|E02D|E02E|E02F|E030|E031|E032|E033|E034|E035|E036|E037|E038|E039|E03A|E03B|E03C|E03D|E03E|E03F|E040|E041|E042|E043|E044|E045|E046|E047|E048|E049|E04A|E04B|E04C|E04D|E04E"; //'Small1KaToHa'
|
||||||
$tebelowbase2 = "E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071"; // 'Small2KaToHa'
|
$tebelowbase2 = "E04F|E050|E051|E052|E053|E054|E055|E056|E057|E058|E059|E05A|E05B|E05C|E05D|E05E|E05F|E060|E061|E062|E063|E064|E065|E066|E067|E068|E069|E06A|E06B|E06C|E06D|E06E|E06F|E070|E071"; // 'Small2KaToHa'
|
||||||
$vstr = preg_replace('/('.$tebelowbase2.') ('.$tevowels.')/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$tebelowbase2.') ('.$tevowels.')/', '\\2 \\1', $vstr);
|
||||||
$vstr = preg_replace('/('.$tebelowbase1.') ('.$tevowels.')/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$tebelowbase1.') ('.$tevowels.')/', '\\2 \\1', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// KANNADA Shift
|
// KANNADA Shift
|
||||||
else if ($lang=='kn') {
|
else if ($lang=='kn') {
|
||||||
$knvowels = "0CBE|0CC0|0CC1|0CC2|0CC3|0CC4|0CC7|0CC8|0CCA|0CCB|0CD5|0CD6"
|
$knvowels = "0CBE|0CC0|0CC1|0CC2|0CC3|0CC4|0CC7|0CC8|0CCA|0CCB|0CD5|0CD6"
|
||||||
// mPDF 5.3.87 Shouldn't swop E082 and E047 (belowbase1) below
|
// mPDF 5.3.87 Shouldn't swop E082 and E047 (belowbase1) below
|
||||||
// E082 is a matraIligature
|
// E082 is a matraIligature
|
||||||
// ."|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB"
|
// ."|E082|E083|E084|E085|E086|E087|E088|E089|E08A|E08B|E08C|E08D|E08E|E08F|E090|E091|E092|E093|E094|E095|E096|E097|E098|E099|E09A|E09B|E09C|E09D|E09E|E09F|E0A0|E0A1|E0A2|E0A3|E0A4|E0A5|E0A6|E0A7|E0A8|E0A9|E0AA|E0AB"
|
||||||
."|E004|E007|E008|E009|E00A";
|
."|E004|E007|E008|E009|E00A";
|
||||||
|
|
||||||
|
|
||||||
// NB $knvowels defined above
|
// NB $knvowels defined above
|
||||||
// NB $fullforms defined above
|
// NB $fullforms defined above
|
||||||
// $belowbase1/2 defined above
|
// $belowbase1/2 defined above
|
||||||
$vstr = preg_replace('/('.$belowbase2.') ('.$knvowels.')/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$belowbase2.') ('.$knvowels.')/', '\\2 \\1', $vstr);
|
||||||
// mPDF 5.3.87
|
// mPDF 5.3.87
|
||||||
$vstr = preg_replace('/('.$belowbase1.') ('.$knvowels.')/', '\\2 \\1', $vstr);
|
$vstr = preg_replace('/('.$belowbase1.') ('.$knvowels.')/', '\\2 \\1', $vstr);
|
||||||
|
|
||||||
//$vstr = preg_replace('/('.$fullforms.') ('.$knvowels.')/', '\\2 \\1', $vstr);
|
//$vstr = preg_replace('/('.$fullforms.') ('.$knvowels.')/', '\\2 \\1', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
// Clear unwanted ZWJ, ZWNJ
|
// Clear unwanted ZWJ, ZWNJ
|
||||||
// MALAYALAM
|
// MALAYALAM
|
||||||
if ($lang=='ml') {
|
if ($lang=='ml') {
|
||||||
$vstr = preg_replace('/(200C|200D) /','', $vstr);
|
$vstr = preg_replace('/(200C|200D) /','', $vstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
//============================
|
//============================
|
||||||
// END & PUT IT BACK TOGETHER
|
// END & PUT IT BACK TOGETHER
|
||||||
$vstr = preg_replace('/^0020 (.*) 0020$/', '\\1', $vstr);
|
$vstr = preg_replace('/^0020 (.*) 0020$/', '\\1', $vstr);
|
||||||
|
|
||||||
$varr = explode(" ",$vstr);
|
$varr = explode(" ",$vstr);
|
||||||
$e = '';
|
$e = '';
|
||||||
foreach($varr AS $v) {
|
foreach($varr AS $v) {
|
||||||
$e.=code2utf(hexdec($v));
|
$e.=code2utf(hexdec($v));
|
||||||
}
|
}
|
||||||
//============================
|
//============================
|
||||||
|
|
||||||
return $e;
|
return $e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,236 +1,236 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
class wmf {
|
class wmf {
|
||||||
|
|
||||||
var $mpdf = null;
|
var $mpdf = null;
|
||||||
var $gdiObjectArray;
|
var $gdiObjectArray;
|
||||||
|
|
||||||
function wmf(&$mpdf) {
|
function wmf(&$mpdf) {
|
||||||
$this->mpdf = $mpdf;
|
$this->mpdf = $mpdf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _getWMFimage($data) {
|
function _getWMFimage($data) {
|
||||||
$k = _MPDFK;
|
$k = _MPDFK;
|
||||||
|
|
||||||
$this->gdiObjectArray = array();
|
$this->gdiObjectArray = array();
|
||||||
$a=unpack('stest',"\1\0");
|
$a=unpack('stest',"\1\0");
|
||||||
if ($a['test']!=1)
|
if ($a['test']!=1)
|
||||||
return array(0, 'Error parsing WMF image - Big-endian architecture not supported');
|
return array(0, 'Error parsing WMF image - Big-endian architecture not supported');
|
||||||
// check for Aldus placeable metafile header
|
// check for Aldus placeable metafile header
|
||||||
$key = unpack('Lmagic', substr($data, 0, 4));
|
$key = unpack('Lmagic', substr($data, 0, 4));
|
||||||
$p = 18; // WMF header
|
$p = 18; // WMF header
|
||||||
if ($key['magic'] == (int)0x9AC6CDD7) { $p +=22; } // Aldus header
|
if ($key['magic'] == (int)0x9AC6CDD7) { $p +=22; } // Aldus header
|
||||||
// define some state variables
|
// define some state variables
|
||||||
$wo=null; // window origin
|
$wo=null; // window origin
|
||||||
$we=null; // window extent
|
$we=null; // window extent
|
||||||
$polyFillMode = 0;
|
$polyFillMode = 0;
|
||||||
$nullPen = false;
|
$nullPen = false;
|
||||||
$nullBrush = false;
|
$nullBrush = false;
|
||||||
$endRecord = false;
|
$endRecord = false;
|
||||||
$wmfdata = '';
|
$wmfdata = '';
|
||||||
while ($p < strlen($data) && !$endRecord) {
|
while ($p < strlen($data) && !$endRecord) {
|
||||||
$recordInfo = unpack('Lsize/Sfunc', substr($data, $p, 6)); $p += 6;
|
$recordInfo = unpack('Lsize/Sfunc', substr($data, $p, 6)); $p += 6;
|
||||||
// size of record given in WORDs (= 2 bytes)
|
// size of record given in WORDs (= 2 bytes)
|
||||||
$size = $recordInfo['size'];
|
$size = $recordInfo['size'];
|
||||||
// func is number of GDI function
|
// func is number of GDI function
|
||||||
$func = $recordInfo['func'];
|
$func = $recordInfo['func'];
|
||||||
if ($size > 3) {
|
if ($size > 3) {
|
||||||
$parms = substr($data, $p, 2*($size-3)); $p += 2*($size-3);
|
$parms = substr($data, $p, 2*($size-3)); $p += 2*($size-3);
|
||||||
}
|
}
|
||||||
switch ($func) {
|
switch ($func) {
|
||||||
case 0x020b: // SetWindowOrg
|
case 0x020b: // SetWindowOrg
|
||||||
// do not allow window origin to be changed
|
// do not allow window origin to be changed
|
||||||
// after drawing has begun
|
// after drawing has begun
|
||||||
if (!$wmfdata)
|
if (!$wmfdata)
|
||||||
$wo = array_reverse(unpack('s2', $parms));
|
$wo = array_reverse(unpack('s2', $parms));
|
||||||
break;
|
break;
|
||||||
case 0x020c: // SetWindowExt
|
case 0x020c: // SetWindowExt
|
||||||
// do not allow window extent to be changed
|
// do not allow window extent to be changed
|
||||||
// after drawing has begun
|
// after drawing has begun
|
||||||
if (!$wmfdata)
|
if (!$wmfdata)
|
||||||
$we = array_reverse(unpack('s2', $parms));
|
$we = array_reverse(unpack('s2', $parms));
|
||||||
break;
|
break;
|
||||||
case 0x02fc: // CreateBrushIndirect
|
case 0x02fc: // CreateBrushIndirect
|
||||||
$brush = unpack('sstyle/Cr/Cg/Cb/Ca/Shatch', $parms);
|
$brush = unpack('sstyle/Cr/Cg/Cb/Ca/Shatch', $parms);
|
||||||
$brush['type'] = 'B';
|
$brush['type'] = 'B';
|
||||||
$this->_AddGDIObject($brush);
|
$this->_AddGDIObject($brush);
|
||||||
break;
|
break;
|
||||||
case 0x02fa: // CreatePenIndirect
|
case 0x02fa: // CreatePenIndirect
|
||||||
$pen = unpack('Sstyle/swidth/sdummy/Cr/Cg/Cb/Ca', $parms);
|
$pen = unpack('Sstyle/swidth/sdummy/Cr/Cg/Cb/Ca', $parms);
|
||||||
// convert width from twips to user unit
|
// convert width from twips to user unit
|
||||||
$pen['width'] /= (20 * $k);
|
$pen['width'] /= (20 * $k);
|
||||||
$pen['type'] = 'P';
|
$pen['type'] = 'P';
|
||||||
$this->_AddGDIObject($pen);
|
$this->_AddGDIObject($pen);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// MUST create other GDI objects even if we don't handle them
|
// MUST create other GDI objects even if we don't handle them
|
||||||
case 0x06fe: // CreateBitmap
|
case 0x06fe: // CreateBitmap
|
||||||
case 0x02fd: // CreateBitmapIndirect
|
case 0x02fd: // CreateBitmapIndirect
|
||||||
case 0x00f8: // CreateBrush
|
case 0x00f8: // CreateBrush
|
||||||
case 0x02fb: // CreateFontIndirect
|
case 0x02fb: // CreateFontIndirect
|
||||||
case 0x00f7: // CreatePalette
|
case 0x00f7: // CreatePalette
|
||||||
case 0x01f9: // CreatePatternBrush
|
case 0x01f9: // CreatePatternBrush
|
||||||
case 0x06ff: // CreateRegion
|
case 0x06ff: // CreateRegion
|
||||||
case 0x0142: // DibCreatePatternBrush
|
case 0x0142: // DibCreatePatternBrush
|
||||||
$dummyObject = array('type'=>'D');
|
$dummyObject = array('type'=>'D');
|
||||||
$this->_AddGDIObject($dummyObject);
|
$this->_AddGDIObject($dummyObject);
|
||||||
break;
|
break;
|
||||||
case 0x0106: // SetPolyFillMode
|
case 0x0106: // SetPolyFillMode
|
||||||
$polyFillMode = unpack('smode', $parms);
|
$polyFillMode = unpack('smode', $parms);
|
||||||
$polyFillMode = $polyFillMode['mode'];
|
$polyFillMode = $polyFillMode['mode'];
|
||||||
break;
|
break;
|
||||||
case 0x01f0: // DeleteObject
|
case 0x01f0: // DeleteObject
|
||||||
$idx = unpack('Sidx', $parms);
|
$idx = unpack('Sidx', $parms);
|
||||||
$idx = $idx['idx'];
|
$idx = $idx['idx'];
|
||||||
$this->_DeleteGDIObject($idx);
|
$this->_DeleteGDIObject($idx);
|
||||||
break;
|
break;
|
||||||
case 0x012d: // SelectObject
|
case 0x012d: // SelectObject
|
||||||
$idx = unpack('Sidx', $parms);
|
$idx = unpack('Sidx', $parms);
|
||||||
$idx = $idx['idx'];
|
$idx = $idx['idx'];
|
||||||
$obj = $this->_GetGDIObject($idx);
|
$obj = $this->_GetGDIObject($idx);
|
||||||
switch ($obj['type']) {
|
switch ($obj['type']) {
|
||||||
case 'B':
|
case 'B':
|
||||||
$nullBrush = false;
|
$nullBrush = false;
|
||||||
if ($obj['style'] == 1) { $nullBrush = true; }
|
if ($obj['style'] == 1) { $nullBrush = true; }
|
||||||
else {
|
else {
|
||||||
$wmfdata .= $this->mpdf->SetFColor($this->mpdf->ConvertColor('rgb('.$obj['r'].','.$obj['g'].','.$obj['b'].')'), true)."\n";
|
$wmfdata .= $this->mpdf->SetFColor($this->mpdf->ConvertColor('rgb('.$obj['r'].','.$obj['g'].','.$obj['b'].')'), true)."\n";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'P':
|
case 'P':
|
||||||
$nullPen = false;
|
$nullPen = false;
|
||||||
$dashArray = array();
|
$dashArray = array();
|
||||||
// dash parameters are custom
|
// dash parameters are custom
|
||||||
switch ($obj['style']) {
|
switch ($obj['style']) {
|
||||||
case 0: // PS_SOLID
|
case 0: // PS_SOLID
|
||||||
break;
|
break;
|
||||||
case 1: // PS_DASH
|
case 1: // PS_DASH
|
||||||
$dashArray = array(3,1);
|
$dashArray = array(3,1);
|
||||||
break;
|
break;
|
||||||
case 2: // PS_DOT
|
case 2: // PS_DOT
|
||||||
$dashArray = array(0.5,0.5);
|
$dashArray = array(0.5,0.5);
|
||||||
break;
|
break;
|
||||||
case 3: // PS_DASHDOT
|
case 3: // PS_DASHDOT
|
||||||
$dashArray = array(2,1,0.5,1);
|
$dashArray = array(2,1,0.5,1);
|
||||||
break;
|
break;
|
||||||
case 4: // PS_DASHDOTDOT
|
case 4: // PS_DASHDOTDOT
|
||||||
$dashArray = array(2,1,0.5,1,0.5,1);
|
$dashArray = array(2,1,0.5,1,0.5,1);
|
||||||
break;
|
break;
|
||||||
case 5: // PS_NULL
|
case 5: // PS_NULL
|
||||||
$nullPen = true;
|
$nullPen = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!$nullPen) {
|
if (!$nullPen) {
|
||||||
$wmfdata .= $this->mpdf->SetDColor($this->mpdf->ConvertColor('rgb('.$obj['r'].','.$obj['g'].','.$obj['b'].')'), true)."\n";
|
$wmfdata .= $this->mpdf->SetDColor($this->mpdf->ConvertColor('rgb('.$obj['r'].','.$obj['g'].','.$obj['b'].')'), true)."\n";
|
||||||
$wmfdata .= sprintf("%.3F w\n",$obj['width']*$k);
|
$wmfdata .= sprintf("%.3F w\n",$obj['width']*$k);
|
||||||
}
|
}
|
||||||
if (!empty($dashArray)) {
|
if (!empty($dashArray)) {
|
||||||
$s = '[';
|
$s = '[';
|
||||||
for ($i=0; $i<count($dashArray);$i++) {
|
for ($i=0; $i<count($dashArray);$i++) {
|
||||||
$s .= $dashArray[$i] * $k;
|
$s .= $dashArray[$i] * $k;
|
||||||
if ($i != count($dashArray)-1) { $s .= ' '; }
|
if ($i != count($dashArray)-1) { $s .= ' '; }
|
||||||
}
|
}
|
||||||
$s .= '] 0 d';
|
$s .= '] 0 d';
|
||||||
$wmfdata .= $s."\n";
|
$wmfdata .= $s."\n";
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 0x0325: // Polyline
|
case 0x0325: // Polyline
|
||||||
case 0x0324: // Polygon
|
case 0x0324: // Polygon
|
||||||
$coords = unpack('s'.($size-3), $parms);
|
$coords = unpack('s'.($size-3), $parms);
|
||||||
$numpoints = $coords[1];
|
$numpoints = $coords[1];
|
||||||
for ($i = $numpoints; $i > 0; $i--) {
|
for ($i = $numpoints; $i > 0; $i--) {
|
||||||
$px = $coords[2*$i];
|
$px = $coords[2*$i];
|
||||||
$py = $coords[2*$i+1];
|
$py = $coords[2*$i+1];
|
||||||
|
|
||||||
if ($i < $numpoints) { $wmfdata .= $this->_LineTo($px, $py); }
|
if ($i < $numpoints) { $wmfdata .= $this->_LineTo($px, $py); }
|
||||||
else { $wmfdata .= $this->_MoveTo($px, $py); }
|
else { $wmfdata .= $this->_MoveTo($px, $py); }
|
||||||
}
|
}
|
||||||
if ($func == 0x0325) { $op = 's'; }
|
if ($func == 0x0325) { $op = 's'; }
|
||||||
else if ($func == 0x0324) {
|
else if ($func == 0x0324) {
|
||||||
if ($nullPen) {
|
if ($nullPen) {
|
||||||
if ($nullBrush) { $op = 'n'; } // no op
|
if ($nullBrush) { $op = 'n'; } // no op
|
||||||
else { $op = 'f'; } // fill
|
else { $op = 'f'; } // fill
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($nullBrush) { $op = 's'; } // stroke
|
if ($nullBrush) { $op = 's'; } // stroke
|
||||||
else { $op = 'b'; } // stroke and fill
|
else { $op = 'b'; } // stroke and fill
|
||||||
}
|
}
|
||||||
if ($polyFillMode==1 && ($op=='b' || $op=='f')) { $op .= '*'; } // use even-odd fill rule
|
if ($polyFillMode==1 && ($op=='b' || $op=='f')) { $op .= '*'; } // use even-odd fill rule
|
||||||
}
|
}
|
||||||
$wmfdata .= $op."\n";
|
$wmfdata .= $op."\n";
|
||||||
break;
|
break;
|
||||||
case 0x0538: // PolyPolygon
|
case 0x0538: // PolyPolygon
|
||||||
$coords = unpack('s'.($size-3), $parms);
|
$coords = unpack('s'.($size-3), $parms);
|
||||||
$numpolygons = $coords[1];
|
$numpolygons = $coords[1];
|
||||||
$adjustment = $numpolygons;
|
$adjustment = $numpolygons;
|
||||||
for ($j = 1; $j <= $numpolygons; $j++) {
|
for ($j = 1; $j <= $numpolygons; $j++) {
|
||||||
$numpoints = $coords[$j + 1];
|
$numpoints = $coords[$j + 1];
|
||||||
for ($i = $numpoints; $i > 0; $i--) {
|
for ($i = $numpoints; $i > 0; $i--) {
|
||||||
$px = $coords[2*$i + $adjustment];
|
$px = $coords[2*$i + $adjustment];
|
||||||
$py = $coords[2*$i+1 + $adjustment];
|
$py = $coords[2*$i+1 + $adjustment];
|
||||||
if ($i == $numpoints) { $wmfdata .= $this->_MoveTo($px, $py); }
|
if ($i == $numpoints) { $wmfdata .= $this->_MoveTo($px, $py); }
|
||||||
else { $wmfdata .= $this->_LineTo($px, $py); }
|
else { $wmfdata .= $this->_LineTo($px, $py); }
|
||||||
}
|
}
|
||||||
$adjustment += $numpoints * 2;
|
$adjustment += $numpoints * 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($nullPen) {
|
if ($nullPen) {
|
||||||
if ($nullBrush) { $op = 'n'; } // no op
|
if ($nullBrush) { $op = 'n'; } // no op
|
||||||
else { $op = 'f'; } // fill
|
else { $op = 'f'; } // fill
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($nullBrush) { $op = 's'; } // stroke
|
if ($nullBrush) { $op = 's'; } // stroke
|
||||||
else { $op = 'b'; } // stroke and fill
|
else { $op = 'b'; } // stroke and fill
|
||||||
}
|
}
|
||||||
if ($polyFillMode==1 && ($op=='b' || $op=='f')) { $op .= '*'; } // use even-odd fill rule
|
if ($polyFillMode==1 && ($op=='b' || $op=='f')) { $op .= '*'; } // use even-odd fill rule
|
||||||
$wmfdata .= $op."\n";
|
$wmfdata .= $op."\n";
|
||||||
break;
|
break;
|
||||||
case 0x0000:
|
case 0x0000:
|
||||||
$endRecord = true;
|
$endRecord = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return array(1,$wmfdata,$wo,$we);
|
return array(1,$wmfdata,$wo,$we);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _MoveTo($x, $y) {
|
function _MoveTo($x, $y) {
|
||||||
return "$x $y m\n";
|
return "$x $y m\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
// a line must have been started using _MoveTo() first
|
// a line must have been started using _MoveTo() first
|
||||||
function _LineTo($x, $y) {
|
function _LineTo($x, $y) {
|
||||||
return "$x $y l\n";
|
return "$x $y l\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
function _AddGDIObject($obj) {
|
function _AddGDIObject($obj) {
|
||||||
// find next available slot
|
// find next available slot
|
||||||
$idx = 0;
|
$idx = 0;
|
||||||
if (!empty($this->gdiObjectArray)) {
|
if (!empty($this->gdiObjectArray)) {
|
||||||
$empty = false;
|
$empty = false;
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while (!$empty) {
|
while (!$empty) {
|
||||||
$empty = !isset($this->gdiObjectArray[$i]);
|
$empty = !isset($this->gdiObjectArray[$i]);
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$idx = $i-1;
|
$idx = $i-1;
|
||||||
}
|
}
|
||||||
$this->gdiObjectArray[$idx] = $obj;
|
$this->gdiObjectArray[$idx] = $obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
function _GetGDIObject($idx) {
|
function _GetGDIObject($idx) {
|
||||||
return $this->gdiObjectArray[$idx];
|
return $this->gdiObjectArray[$idx];
|
||||||
}
|
}
|
||||||
|
|
||||||
function _DeleteGDIObject($idx) {
|
function _DeleteGDIObject($idx) {
|
||||||
unset($this->gdiObjectArray[$idx]);
|
unset($this->gdiObjectArray[$idx]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,172 +1,172 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$excl = array( 'HTML-CSS', 'DIRECTW', 'TABLES', 'LISTS', 'IMAGES-CORE',
|
$excl = array( 'HTML-CSS', 'DIRECTW', 'TABLES', 'LISTS', 'IMAGES-CORE',
|
||||||
'IMAGES-BMP', 'IMAGES-WMF', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'COLUMNS', 'TOC', 'INDEX', 'BOOKMARKS', 'BARCODES', 'FORMS', 'WATERMARK', 'CJK-FONTS', 'RTL', 'INDIC', 'ANNOTATIONS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS', 'HYPHENATION', 'ENCRYPTION', 'IMPORTS', 'PROGRESS-BAR');
|
'IMAGES-BMP', 'IMAGES-WMF', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'COLUMNS', 'TOC', 'INDEX', 'BOOKMARKS', 'BARCODES', 'FORMS', 'WATERMARK', 'CJK-FONTS', 'RTL', 'INDIC', 'ANNOTATIONS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS', 'HYPHENATION', 'ENCRYPTION', 'IMPORTS', 'PROGRESS-BAR');
|
||||||
|
|
||||||
|
|
||||||
// *DIRECTW* = Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText
|
// *DIRECTW* = Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText
|
||||||
// IMAGES-CORE = [PNG, GIF, and JPG] NB background-images and watermark images
|
// IMAGES-CORE = [PNG, GIF, and JPG] NB background-images and watermark images
|
||||||
|
|
||||||
// Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS'
|
// Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS'
|
||||||
|
|
||||||
// Text is marked in mpdf_source.php with e.g. :
|
// Text is marked in mpdf_source.php with e.g. :
|
||||||
/*-- TABLES-ADVANCED-BORDERS --*/
|
/*-- TABLES-ADVANCED-BORDERS --*/
|
||||||
/*-- END TABLES-ADVANCED-BORDERS --*/
|
/*-- END TABLES-ADVANCED-BORDERS --*/
|
||||||
// *TABLES-ADVANCED-BORDERS*
|
// *TABLES-ADVANCED-BORDERS*
|
||||||
|
|
||||||
|
|
||||||
if (!isset($_POST['generate']) || $_POST['generate']!='generate') {
|
if (!isset($_POST['generate']) || $_POST['generate']!='generate') {
|
||||||
|
|
||||||
|
|
||||||
if (!file_exists('mpdf_source.php')) {
|
if (!file_exists('mpdf_source.php')) {
|
||||||
die("ERROR - Could not find mpdf_source.php file in current directory. Please rename mpdf.php as mpdf_source.php");
|
die("ERROR - Could not find mpdf_source.php file in current directory. Please rename mpdf.php as mpdf_source.php");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
echo '<html>
|
echo '<html>
|
||||||
<head>
|
<head>
|
||||||
<script language=javascript>
|
<script language=javascript>
|
||||||
checked=false;
|
checked=false;
|
||||||
function checkedAll (frm1) {
|
function checkedAll (frm1) {
|
||||||
var aa= document.getElementById("frm1");
|
var aa= document.getElementById("frm1");
|
||||||
if (checked == false)
|
if (checked == false)
|
||||||
{
|
{
|
||||||
checked = true
|
checked = true
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
checked = false
|
checked = false
|
||||||
}
|
}
|
||||||
for (var i =0; i < aa.elements.length; i++)
|
for (var i =0; i < aa.elements.length; i++)
|
||||||
{
|
{
|
||||||
aa.elements[i].checked = checked;
|
aa.elements[i].checked = checked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<p><span style="color:red; font-weight: bold;">WARNING</span>: This utility will OVERWRITE mpdf.php file in the current directory.</p>
|
<p><span style="color:red; font-weight: bold;">WARNING</span>: This utility will OVERWRITE mpdf.php file in the current directory.</p>
|
||||||
<p>Select the functions you wish to INCLUDE in your mpdf.php program. When you click generate, a new mpdf.php file will be written to the current directory.</p>
|
<p>Select the functions you wish to INCLUDE in your mpdf.php program. When you click generate, a new mpdf.php file will be written to the current directory.</p>
|
||||||
<div><b>Notes</b>
|
<div><b>Notes</b>
|
||||||
<ul>
|
<ul>
|
||||||
<li>HTML-CSS is required for many of the other functions to work including: Tables, Lists, Backgrounds, Forms, Border-radius and all other CSS</li>
|
<li>HTML-CSS is required for many of the other functions to work including: Tables, Lists, Backgrounds, Forms, Border-radius and all other CSS</li>
|
||||||
<li>DIRECTW includes the functions to Write directly to the PDF file e.g. Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText</li>
|
<li>DIRECTW includes the functions to Write directly to the PDF file e.g. Write, WriteText, WriteCell, Text, Shaded_box, AutosizeText</li>
|
||||||
<li>You must include either HTML-CSS or DIRECTW</li>
|
<li>You must include either HTML-CSS or DIRECTW</li>
|
||||||
<li>JPG, PNG and JPG images are supported with IMAGES-CORE</li>
|
<li>JPG, PNG and JPG images are supported with IMAGES-CORE</li>
|
||||||
<li>For WMF Images, you must include both IMAGES-CORE and IMAGES-WMF</li>
|
<li>For WMF Images, you must include both IMAGES-CORE and IMAGES-WMF</li>
|
||||||
<li>IMAGES-CORE are required for BACKGROUNDS (IMAGES) or WATERMARKS to work</li>
|
<li>IMAGES-CORE are required for BACKGROUNDS (IMAGES) or WATERMARKS to work</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<input type="checkbox" name="checkall" onclick="checkedAll(frm1);"> <i>Select/Unselect All</i><br /><br />
|
<input type="checkbox" name="checkall" onclick="checkedAll(frm1);"> <i>Select/Unselect All</i><br /><br />
|
||||||
|
|
||||||
<form id="frm1" action="compress.php" method="POST">
|
<form id="frm1" action="compress.php" method="POST">
|
||||||
';
|
';
|
||||||
foreach($excl AS $k=>$ex) {
|
foreach($excl AS $k=>$ex) {
|
||||||
echo '<input type="checkbox" value="1" name="inc['.$ex.']"';
|
echo '<input type="checkbox" value="1" name="inc['.$ex.']"';
|
||||||
if ($k==0 || ($k > 1 && $k < 5)) {
|
if ($k==0 || ($k > 1 && $k < 5)) {
|
||||||
echo ' checked="checked"';
|
echo ' checked="checked"';
|
||||||
}
|
}
|
||||||
echo ' /> '.$ex.'<br />';
|
echo ' /> '.$ex.'<br />';
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<br />
|
echo '<br />
|
||||||
<input type="submit" name="generate" value="generate" />
|
<input type="submit" name="generate" value="generate" />
|
||||||
</form>
|
</form>
|
||||||
</body>
|
</body>
|
||||||
</html>';
|
</html>';
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
$inc = $_POST['inc'];
|
$inc = $_POST['inc'];
|
||||||
if (is_array($inc) && count($inc)>0 ) {
|
if (is_array($inc) && count($inc)>0 ) {
|
||||||
foreach($inc AS $i=>$v) {
|
foreach($inc AS $i=>$v) {
|
||||||
$key = array_search($i, $excl);
|
$key = array_search($i, $excl);
|
||||||
unset($excl[$key]);
|
unset($excl[$key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!defined('PHP_VERSION_ID')) {
|
if (!defined('PHP_VERSION_ID')) {
|
||||||
$version = explode('.', PHP_VERSION);
|
$version = explode('.', PHP_VERSION);
|
||||||
define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
|
define('PHP_VERSION_ID', ($version[0] * 10000 + $version[1] * 100 + $version[2]));
|
||||||
}
|
}
|
||||||
if (PHP_VERSION_ID < 50300) { $mqr = @get_magic_quotes_runtime(); }
|
if (PHP_VERSION_ID < 50300) { $mqr = @get_magic_quotes_runtime(); }
|
||||||
else { $mqr=0; }
|
else { $mqr=0; }
|
||||||
if ($mqr) { set_magic_quotes_runtime(0); }
|
if ($mqr) { set_magic_quotes_runtime(0); }
|
||||||
|
|
||||||
$l = file('mpdf_source.php');
|
$l = file('mpdf_source.php');
|
||||||
if (!count($l)) { die("ERROR - Could not find mpdf_source.php file in current directory"); }
|
if (!count($l)) { die("ERROR - Could not find mpdf_source.php file in current directory"); }
|
||||||
$exclflags = array();
|
$exclflags = array();
|
||||||
$x = '';
|
$x = '';
|
||||||
|
|
||||||
// Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS'
|
// Excluding 'HTML-CSS' will also exclude: 'TABLES', 'LISTS', 'TABLES-ADVANCED-BORDERS', 'HTMLHEADERS-FOOTERS', 'FORMS', 'BACKGROUNDS', 'CSS-FLOAT', 'CSS-IMAGE-FLOAT', 'CSS-POSITION', 'CSS-PAGE', 'BORDER-RADIUS'
|
||||||
if ($excl[0]=='HTML-CSS') {
|
if ($excl[0]=='HTML-CSS') {
|
||||||
$excl[] = 'TABLES';
|
$excl[] = 'TABLES';
|
||||||
$excl[] = 'LISTS';
|
$excl[] = 'LISTS';
|
||||||
$excl[] = 'TABLES-ADVANCED-BORDERS';
|
$excl[] = 'TABLES-ADVANCED-BORDERS';
|
||||||
$excl[] = 'HTMLHEADERS-FOOTERS';
|
$excl[] = 'HTMLHEADERS-FOOTERS';
|
||||||
$excl[] = 'FORMS';
|
$excl[] = 'FORMS';
|
||||||
$excl[] = 'BACKGROUNDS';
|
$excl[] = 'BACKGROUNDS';
|
||||||
$excl[] = 'CSS-FLOAT';
|
$excl[] = 'CSS-FLOAT';
|
||||||
$excl[] = 'CSS-IMAGE-FLOAT';
|
$excl[] = 'CSS-IMAGE-FLOAT';
|
||||||
$excl[] = 'CSS-POSITION';
|
$excl[] = 'CSS-POSITION';
|
||||||
$excl[] = 'CSS-PAGE';
|
$excl[] = 'CSS-PAGE';
|
||||||
$excl[] = 'BORDER-RADIUS';
|
$excl[] = 'BORDER-RADIUS';
|
||||||
}
|
}
|
||||||
$excl = array_unique($excl);
|
$excl = array_unique($excl);
|
||||||
|
|
||||||
foreach($l AS $k=>$ln) {
|
foreach($l AS $k=>$ln) {
|
||||||
$exclude = false;
|
$exclude = false;
|
||||||
// *XXXXX*
|
// *XXXXX*
|
||||||
preg_match_all("/\/\/ \*([A-Za-z\-]+)\*/", $ln, $m);
|
preg_match_all("/\/\/ \*([A-Za-z\-]+)\*/", $ln, $m);
|
||||||
foreach($m[1] AS $mm) {
|
foreach($m[1] AS $mm) {
|
||||||
if (in_array($mm, $excl)) {
|
if (in_array($mm, $excl)) {
|
||||||
$exclude = true;
|
$exclude = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*-- XXXXX --*/
|
/*-- XXXXX --*/
|
||||||
preg_match_all("/\/\*-- ([A-Za-z\-]+) --\*\//", $ln, $m);
|
preg_match_all("/\/\*-- ([A-Za-z\-]+) --\*\//", $ln, $m);
|
||||||
foreach($m[1] AS $mm) {
|
foreach($m[1] AS $mm) {
|
||||||
if (in_array($mm, $excl)) {
|
if (in_array($mm, $excl)) {
|
||||||
$exclflags[$mm] = true;
|
$exclflags[$mm] = true;
|
||||||
}
|
}
|
||||||
$exclude = true;
|
$exclude = true;
|
||||||
}
|
}
|
||||||
$exclflags = array_unique($exclflags);
|
$exclflags = array_unique($exclflags);
|
||||||
/*-- END XXXX --*/
|
/*-- END XXXX --*/
|
||||||
preg_match_all("/\/\*-- END ([A-Za-z\-]+) --\*\//", $ln, $m);
|
preg_match_all("/\/\*-- END ([A-Za-z\-]+) --\*\//", $ln, $m);
|
||||||
foreach($m[1] AS $mm) {
|
foreach($m[1] AS $mm) {
|
||||||
if (in_array($mm, $excl)) {
|
if (in_array($mm, $excl)) {
|
||||||
unset($exclflags[$mm]);
|
unset($exclflags[$mm]);
|
||||||
}
|
}
|
||||||
$exclude = true;
|
$exclude = true;
|
||||||
}
|
}
|
||||||
if (count($exclflags)==0 && !$exclude) {
|
if (count($exclflags)==0 && !$exclude) {
|
||||||
$x .= $ln;
|
$x .= $ln;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// mPDF 5.0
|
// mPDF 5.0
|
||||||
if (function_exists('file_put_contents')) {
|
if (function_exists('file_put_contents')) {
|
||||||
$check = file_put_contents('mpdf.php', $x);
|
$check = file_put_contents('mpdf.php', $x);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$f=fopen('mpdf.php', 'w');
|
$f=fopen('mpdf.php', 'w');
|
||||||
$check = fwrite($f, $x);
|
$check = fwrite($f, $x);
|
||||||
fclose($f);
|
fclose($f);
|
||||||
}
|
}
|
||||||
if (!$check) { die("ERROR - Could not write to mpdf.php file. Are permissions correctly set?"); }
|
if (!$check) { die("ERROR - Could not write to mpdf.php file. Are permissions correctly set?"); }
|
||||||
echo '<p><b>mPDF file generated successfully!</b></p>';
|
echo '<p><b>mPDF file generated successfully!</b></p>';
|
||||||
echo '<div>mPDF file size '.number_format((strlen($x)/1024)).' kB</div>';
|
echo '<div>mPDF file size '.number_format((strlen($x)/1024)).' kB</div>';
|
||||||
|
|
||||||
unset($l);
|
unset($l);
|
||||||
unset($x);
|
unset($x);
|
||||||
|
|
||||||
include('mpdf.php');
|
include('mpdf.php');
|
||||||
$mpdf = new mPDF();
|
$mpdf = new mPDF();
|
||||||
|
|
||||||
echo '<div>Memory usage on loading mPDF class '.number_format((memory_get_usage(true)/(1024*1024)),2).' MB</div>';
|
echo '<div>Memory usage on loading mPDF class '.number_format((memory_get_usage(true)/(1024*1024)),2).' MB</div>';
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,153 +1,153 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
function GetLangOpts($llcc, $adobeCJK) {
|
function GetLangOpts($llcc, $adobeCJK) {
|
||||||
if (strlen($llcc) == 5) {
|
if (strlen($llcc) == 5) {
|
||||||
$lang = substr(strtolower($llcc),0,2);
|
$lang = substr(strtolower($llcc),0,2);
|
||||||
$country = substr(strtoupper($llcc),3,2);
|
$country = substr(strtoupper($llcc),3,2);
|
||||||
}
|
}
|
||||||
else { $lang = strtolower($llcc); $country = ''; }
|
else { $lang = strtolower($llcc); $country = ''; }
|
||||||
$unifonts = "";
|
$unifonts = "";
|
||||||
$coreSuitable = false;
|
$coreSuitable = false;
|
||||||
|
|
||||||
switch($lang){
|
switch($lang){
|
||||||
CASE "en":
|
CASE "en":
|
||||||
CASE "ca":
|
CASE "ca":
|
||||||
CASE "cy":
|
CASE "cy":
|
||||||
CASE "da":
|
CASE "da":
|
||||||
CASE "de":
|
CASE "de":
|
||||||
CASE "es":
|
CASE "es":
|
||||||
CASE "eu":
|
CASE "eu":
|
||||||
CASE "fr":
|
CASE "fr":
|
||||||
CASE "ga":
|
CASE "ga":
|
||||||
CASE "fi":
|
CASE "fi":
|
||||||
CASE "is":
|
CASE "is":
|
||||||
CASE "it":
|
CASE "it":
|
||||||
CASE "nl":
|
CASE "nl":
|
||||||
CASE "no":
|
CASE "no":
|
||||||
CASE "pt":
|
CASE "pt":
|
||||||
CASE "sv":
|
CASE "sv":
|
||||||
// Edit this value to define how mPDF behaves when using new mPDF('-x')
|
// Edit this value to define how mPDF behaves when using new mPDF('-x')
|
||||||
// If set to TRUE, mPDF will use Adobe core fonts only when it recognises the languages above
|
// If set to TRUE, mPDF will use Adobe core fonts only when it recognises the languages above
|
||||||
$coreSuitable = true; break;
|
$coreSuitable = true; break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// RTL Languages
|
// RTL Languages
|
||||||
CASE "he":
|
CASE "he":
|
||||||
CASE "yi":
|
CASE "yi":
|
||||||
$unifonts = "dejavusans,dejavusansB,dejavusansI,dejavusansBI"; break;
|
$unifonts = "dejavusans,dejavusansB,dejavusansI,dejavusansBI"; break;
|
||||||
|
|
||||||
// Arabic
|
// Arabic
|
||||||
CASE "ar":
|
CASE "ar":
|
||||||
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
||||||
CASE "fa":
|
CASE "fa":
|
||||||
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
||||||
CASE "ps":
|
CASE "ps":
|
||||||
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
||||||
CASE "ur":
|
CASE "ur":
|
||||||
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
$unifonts = "xbriyaz,xbriyazB,xbriyazI,xbriyazBI,xbzar,xbzarB,xbzarI,xbzarBI"; break;
|
||||||
|
|
||||||
// Sindhi (can be Arabic or Devanagari)
|
// Sindhi (can be Arabic or Devanagari)
|
||||||
CASE "sd":
|
CASE "sd":
|
||||||
if ($country == "IN") { $unifonts = "ind_hi_1_001"; }
|
if ($country == "IN") { $unifonts = "ind_hi_1_001"; }
|
||||||
// else if ($country == "PK") { $unifonts = ""; }
|
// else if ($country == "PK") { $unifonts = ""; }
|
||||||
// else { $unifonts = ""; }
|
// else { $unifonts = ""; }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
// INDIC
|
// INDIC
|
||||||
// Assamese
|
// Assamese
|
||||||
CASE "as": $unifonts = "ind_bn_1_001"; break;
|
CASE "as": $unifonts = "ind_bn_1_001"; break;
|
||||||
// Bengali
|
// Bengali
|
||||||
CASE "bn": $unifonts = "ind_bn_1_001"; break;
|
CASE "bn": $unifonts = "ind_bn_1_001"; break;
|
||||||
// Gujarati
|
// Gujarati
|
||||||
CASE "gu": $unifonts = "ind_gu_1_001"; break;
|
CASE "gu": $unifonts = "ind_gu_1_001"; break;
|
||||||
// Hindi (Devanagari)
|
// Hindi (Devanagari)
|
||||||
CASE "hi": $unifonts = "ind_hi_1_001"; break;
|
CASE "hi": $unifonts = "ind_hi_1_001"; break;
|
||||||
// Kannada
|
// Kannada
|
||||||
CASE "kn": $unifonts = "ind_kn_1_001"; break;
|
CASE "kn": $unifonts = "ind_kn_1_001"; break;
|
||||||
// Kashmiri
|
// Kashmiri
|
||||||
CASE "ks": $unifonts = "ind_hi_1_001"; break;
|
CASE "ks": $unifonts = "ind_hi_1_001"; break;
|
||||||
// Malayalam
|
// Malayalam
|
||||||
CASE "ml": $unifonts = "ind_ml_1_001"; break;
|
CASE "ml": $unifonts = "ind_ml_1_001"; break;
|
||||||
// Nepali (Devanagari)
|
// Nepali (Devanagari)
|
||||||
CASE "ne": $unifonts = "ind_hi_1_001"; break;
|
CASE "ne": $unifonts = "ind_hi_1_001"; break;
|
||||||
// Oriya
|
// Oriya
|
||||||
CASE "or": $unifonts = "ind_or_1_001"; break;
|
CASE "or": $unifonts = "ind_or_1_001"; break;
|
||||||
// Punjabi (Gurmukhi)
|
// Punjabi (Gurmukhi)
|
||||||
CASE "pa": $unifonts = "ind_pa_1_001"; break;
|
CASE "pa": $unifonts = "ind_pa_1_001"; break;
|
||||||
// Tamil
|
// Tamil
|
||||||
CASE "ta": $unifonts = "ind_ta_1_001"; break;
|
CASE "ta": $unifonts = "ind_ta_1_001"; break;
|
||||||
// Telegu
|
// Telegu
|
||||||
CASE "te": $unifonts = "ind_te_1_001"; break;
|
CASE "te": $unifonts = "ind_te_1_001"; break;
|
||||||
|
|
||||||
// THAI
|
// THAI
|
||||||
CASE "th": $unifonts = "garuda,garudaB,garudaI,garudaBI,norasi,norasiB,norasiI,norasiBI"; break;
|
CASE "th": $unifonts = "garuda,garudaB,garudaI,garudaBI,norasi,norasiB,norasiI,norasiBI"; break;
|
||||||
|
|
||||||
// VIETNAMESE
|
// VIETNAMESE
|
||||||
CASE "vi":
|
CASE "vi":
|
||||||
$unifonts = "dejavusanscondensed,dejavusanscondensedB,dejavusanscondensedI,dejavusanscondensedBI,dejavusans,dejavusansB,dejavusansI,dejavusansBI"; break;
|
$unifonts = "dejavusanscondensed,dejavusanscondensedB,dejavusanscondensedI,dejavusanscondensedBI,dejavusans,dejavusansB,dejavusansI,dejavusansBI"; break;
|
||||||
|
|
||||||
// CJK Langauges
|
// CJK Langauges
|
||||||
CASE "ja":
|
CASE "ja":
|
||||||
if ($adobeCJK) {
|
if ($adobeCJK) {
|
||||||
$unifonts = "sjis,sjisB,sjisI,sjisBI";
|
$unifonts = "sjis,sjisB,sjisI,sjisBI";
|
||||||
}
|
}
|
||||||
/* Uncomment these lines if CJK fonts available */
|
/* Uncomment these lines if CJK fonts available */
|
||||||
// else {
|
// else {
|
||||||
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
||||||
// }
|
// }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
CASE "ko":
|
CASE "ko":
|
||||||
if ($adobeCJK) {
|
if ($adobeCJK) {
|
||||||
$unifonts = "uhc,uhcB,uhcI,uhcBI";
|
$unifonts = "uhc,uhcB,uhcI,uhcBI";
|
||||||
}
|
}
|
||||||
/* Uncomment these lines if CJK fonts available */
|
/* Uncomment these lines if CJK fonts available */
|
||||||
// else {
|
// else {
|
||||||
// $unifonts = "unbatang_0613";
|
// $unifonts = "unbatang_0613";
|
||||||
// }
|
// }
|
||||||
break;
|
break;
|
||||||
|
|
||||||
CASE "zh":
|
CASE "zh":
|
||||||
if ($country == "HK" || $country == "TW") {
|
if ($country == "HK" || $country == "TW") {
|
||||||
if ($adobeCJK) {
|
if ($adobeCJK) {
|
||||||
$unifonts = "big5,big5B,big5I,big5BI";
|
$unifonts = "big5,big5B,big5I,big5BI";
|
||||||
}
|
}
|
||||||
/* Uncomment these lines if CJK fonts available */
|
/* Uncomment these lines if CJK fonts available */
|
||||||
// else {
|
// else {
|
||||||
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
else if ($country == "CN") {
|
else if ($country == "CN") {
|
||||||
if ($adobeCJK) {
|
if ($adobeCJK) {
|
||||||
$unifonts = "gb,gbB,gbI,gbBI";
|
$unifonts = "gb,gbB,gbI,gbBI";
|
||||||
}
|
}
|
||||||
/* Uncomment these lines if CJK fonts available */
|
/* Uncomment these lines if CJK fonts available */
|
||||||
// else {
|
// else {
|
||||||
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if ($adobeCJK) {
|
if ($adobeCJK) {
|
||||||
$unifonts = "gb,gbB,gbI,gbBI";
|
$unifonts = "gb,gbB,gbI,gbBI";
|
||||||
}
|
}
|
||||||
/* Uncomment these lines if CJK fonts available */
|
/* Uncomment these lines if CJK fonts available */
|
||||||
// else {
|
// else {
|
||||||
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
// $unifonts = "sun-exta,sun-extb,hannoma,hannomb";
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$unifonts_arr = array();
|
$unifonts_arr = array();
|
||||||
if ($unifonts) {
|
if ($unifonts) {
|
||||||
$unifonts_arr = preg_split('/\s*,\s*/',$unifonts);
|
$unifonts_arr = preg_split('/\s*,\s*/',$unifonts);
|
||||||
}
|
}
|
||||||
return array($coreSuitable ,$unifonts_arr);
|
return array($coreSuitable ,$unifonts_arr);
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,302 +1,302 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
// Optionally define a folder which contains TTF fonts
|
// Optionally define a folder which contains TTF fonts
|
||||||
// mPDF will look here before looking in the usual _MPDF_TTFONTPATH
|
// mPDF will look here before looking in the usual _MPDF_TTFONTPATH
|
||||||
// Useful if you already have a folder for your fonts
|
// Useful if you already have a folder for your fonts
|
||||||
// e.g. on Windows: define("_MPDF_SYSTEM_TTFONTS", 'C:/Windows/Fonts/');
|
// e.g. on Windows: define("_MPDF_SYSTEM_TTFONTS", 'C:/Windows/Fonts/');
|
||||||
// Leave undefined if not required
|
// Leave undefined if not required
|
||||||
|
|
||||||
// define("_MPDF_SYSTEM_TTFONTS", '');
|
// define("_MPDF_SYSTEM_TTFONTS", '');
|
||||||
|
|
||||||
|
|
||||||
// Optionally set font(s) (names as defined below in $this->fontdata) to use for missing characters
|
// Optionally set font(s) (names as defined below in $this->fontdata) to use for missing characters
|
||||||
// when using useSubstitutions. Use a font with wide coverage - dejavusanscondensed is a good start
|
// when using useSubstitutions. Use a font with wide coverage - dejavusanscondensed is a good start
|
||||||
// only works using subsets (otherwise would add very large file)
|
// only works using subsets (otherwise would add very large file)
|
||||||
// doesn't do Indic or arabic
|
// doesn't do Indic or arabic
|
||||||
// More than 1 font can be specified but each will add to the processing time of the script
|
// More than 1 font can be specified but each will add to the processing time of the script
|
||||||
|
|
||||||
$this->backupSubsFont = array('dejavusanscondensed');
|
$this->backupSubsFont = array('dejavusanscondensed');
|
||||||
|
|
||||||
|
|
||||||
// Optionally set a font (name as defined below in $this->fontdata) to use for CJK characters
|
// Optionally set a font (name as defined below in $this->fontdata) to use for CJK characters
|
||||||
// in Plane 2 Unicode (> U+20000) when using useSubstitutions.
|
// in Plane 2 Unicode (> U+20000) when using useSubstitutions.
|
||||||
// Use a font like hannomb or sun-extb if available
|
// Use a font like hannomb or sun-extb if available
|
||||||
// only works using subsets (otherwise would add very large file)
|
// only works using subsets (otherwise would add very large file)
|
||||||
// Leave undefined or blank if not not required
|
// Leave undefined or blank if not not required
|
||||||
|
|
||||||
// $this->backupSIPFont = 'sun-extb';
|
// $this->backupSIPFont = 'sun-extb';
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This array defines translations from font-family in CSS or HTML
|
This array defines translations from font-family in CSS or HTML
|
||||||
to the internal font-family name used in mPDF.
|
to the internal font-family name used in mPDF.
|
||||||
Can include as many as want, regardless of which fonts are installed.
|
Can include as many as want, regardless of which fonts are installed.
|
||||||
By default mPDF will take a CSS/HTML font-family and remove spaces
|
By default mPDF will take a CSS/HTML font-family and remove spaces
|
||||||
and change to lowercase e.g. "Arial Unicode MS" will be recognised as
|
and change to lowercase e.g. "Arial Unicode MS" will be recognised as
|
||||||
"arialunicodems"
|
"arialunicodems"
|
||||||
You only need to define additional translations.
|
You only need to define additional translations.
|
||||||
You can also use it to define specific substitutions e.g.
|
You can also use it to define specific substitutions e.g.
|
||||||
'frutiger55roman' => 'arial'
|
'frutiger55roman' => 'arial'
|
||||||
Generic substitutions (i.e. to a sans-serif or serif font) are set
|
Generic substitutions (i.e. to a sans-serif or serif font) are set
|
||||||
by including the font-family in $this->sans_fonts below
|
by including the font-family in $this->sans_fonts below
|
||||||
To aid backwards compatability some are included:
|
To aid backwards compatability some are included:
|
||||||
*/
|
*/
|
||||||
$this->fonttrans = array(
|
$this->fonttrans = array(
|
||||||
'helvetica' => 'arial',
|
'helvetica' => 'arial',
|
||||||
'times' => 'timesnewroman',
|
'times' => 'timesnewroman',
|
||||||
'courier' => 'couriernew',
|
'courier' => 'couriernew',
|
||||||
'trebuchet' => 'trebuchetms',
|
'trebuchet' => 'trebuchetms',
|
||||||
'comic' => 'comicsansms',
|
'comic' => 'comicsansms',
|
||||||
'franklin' => 'franklingothicbook',
|
'franklin' => 'franklingothicbook',
|
||||||
'albertus' => 'albertusmedium',
|
'albertus' => 'albertusmedium',
|
||||||
'arialuni' => 'arialunicodems',
|
'arialuni' => 'arialunicodems',
|
||||||
'zn_hannom_a' => 'hannoma',
|
'zn_hannom_a' => 'hannoma',
|
||||||
'ocr-b' => 'ocrb',
|
'ocr-b' => 'ocrb',
|
||||||
'ocr-b10bt' => 'ocrb',
|
'ocr-b10bt' => 'ocrb',
|
||||||
|
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
This array lists the file names of the TrueType .ttf or .otf font files
|
This array lists the file names of the TrueType .ttf or .otf font files
|
||||||
for each variant of the (internal mPDF) font-family name.
|
for each variant of the (internal mPDF) font-family name.
|
||||||
['R'] = Regular (Normal), others are Bold, Italic, and Bold-Italic
|
['R'] = Regular (Normal), others are Bold, Italic, and Bold-Italic
|
||||||
Each entry must contain an ['R'] entry, but others are optional.
|
Each entry must contain an ['R'] entry, but others are optional.
|
||||||
Only the font (files) entered here will be available to use in mPDF.
|
Only the font (files) entered here will be available to use in mPDF.
|
||||||
Put preferred default first in order.
|
Put preferred default first in order.
|
||||||
This will be used if a named font cannot be found in any of
|
This will be used if a named font cannot be found in any of
|
||||||
$this->sans_fonts, $this->serif_fonts or $this->mono_fonts
|
$this->sans_fonts, $this->serif_fonts or $this->mono_fonts
|
||||||
|
|
||||||
['indic'] = true; for special mPDF fonts containing Indic characters
|
['indic'] = true; for special mPDF fonts containing Indic characters
|
||||||
['sip-ext'] = 'hannomb'; name a related font file containing SIP characters
|
['sip-ext'] = 'hannomb'; name a related font file containing SIP characters
|
||||||
|
|
||||||
If a .ttc TrueType collection file is referenced, the number of the font
|
If a .ttc TrueType collection file is referenced, the number of the font
|
||||||
within the collection is required. Fonts in the collection are numbered
|
within the collection is required. Fonts in the collection are numbered
|
||||||
starting at 1, as they appear in the .ttc file e.g.
|
starting at 1, as they appear in the .ttc file e.g.
|
||||||
"cambria" => array(
|
"cambria" => array(
|
||||||
'R' => "cambria.ttc",
|
'R' => "cambria.ttc",
|
||||||
'B' => "cambriab.ttf",
|
'B' => "cambriab.ttf",
|
||||||
'I' => "cambriai.ttf",
|
'I' => "cambriai.ttf",
|
||||||
'BI' => "cambriaz.ttf",
|
'BI' => "cambriaz.ttf",
|
||||||
'TTCfontID' => array(
|
'TTCfontID' => array(
|
||||||
'R' => 1,
|
'R' => 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
"cambriamath" => array(
|
"cambriamath" => array(
|
||||||
'R' => "cambria.ttc",
|
'R' => "cambria.ttc",
|
||||||
'TTCfontID' => array(
|
'TTCfontID' => array(
|
||||||
'R' => 2,
|
'R' => 2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$this->fontdata = array(
|
$this->fontdata = array(
|
||||||
"dejavusanscondensed" => array(
|
"dejavusanscondensed" => array(
|
||||||
'R' => "DejaVuSansCondensed.ttf",
|
'R' => "DejaVuSansCondensed.ttf",
|
||||||
'B' => "DejaVuSansCondensed-Bold.ttf",
|
'B' => "DejaVuSansCondensed-Bold.ttf",
|
||||||
'I' => "DejaVuSansCondensed-Oblique.ttf",
|
'I' => "DejaVuSansCondensed-Oblique.ttf",
|
||||||
'BI' => "DejaVuSansCondensed-BoldOblique.ttf",
|
'BI' => "DejaVuSansCondensed-BoldOblique.ttf",
|
||||||
),
|
),
|
||||||
"dejavusans" => array(
|
"dejavusans" => array(
|
||||||
'R' => "DejaVuSans.ttf",
|
'R' => "DejaVuSans.ttf",
|
||||||
'B' => "DejaVuSans-Bold.ttf",
|
'B' => "DejaVuSans-Bold.ttf",
|
||||||
'I' => "DejaVuSans-Oblique.ttf",
|
'I' => "DejaVuSans-Oblique.ttf",
|
||||||
'BI' => "DejaVuSans-BoldOblique.ttf",
|
'BI' => "DejaVuSans-BoldOblique.ttf",
|
||||||
),
|
),
|
||||||
"dejavuserif" => array(
|
"dejavuserif" => array(
|
||||||
'R' => "DejaVuSerif.ttf",
|
'R' => "DejaVuSerif.ttf",
|
||||||
'B' => "DejaVuSerif-Bold.ttf",
|
'B' => "DejaVuSerif-Bold.ttf",
|
||||||
'I' => "DejaVuSerif-Italic.ttf",
|
'I' => "DejaVuSerif-Italic.ttf",
|
||||||
'BI' => "DejaVuSerif-BoldItalic.ttf",
|
'BI' => "DejaVuSerif-BoldItalic.ttf",
|
||||||
),
|
),
|
||||||
"dejavuserifcondensed" => array(
|
"dejavuserifcondensed" => array(
|
||||||
'R' => "DejaVuSerifCondensed.ttf",
|
'R' => "DejaVuSerifCondensed.ttf",
|
||||||
'B' => "DejaVuSerifCondensed-Bold.ttf",
|
'B' => "DejaVuSerifCondensed-Bold.ttf",
|
||||||
'I' => "DejaVuSerifCondensed-Italic.ttf",
|
'I' => "DejaVuSerifCondensed-Italic.ttf",
|
||||||
'BI' => "DejaVuSerifCondensed-BoldItalic.ttf",
|
'BI' => "DejaVuSerifCondensed-BoldItalic.ttf",
|
||||||
),
|
),
|
||||||
"dejavusansmono" => array(
|
"dejavusansmono" => array(
|
||||||
'R' => "DejaVuSansMono.ttf",
|
'R' => "DejaVuSansMono.ttf",
|
||||||
'B' => "DejaVuSansMono-Bold.ttf",
|
'B' => "DejaVuSansMono-Bold.ttf",
|
||||||
'I' => "DejaVuSansMono-Oblique.ttf",
|
'I' => "DejaVuSansMono-Oblique.ttf",
|
||||||
'BI' => "DejaVuSansMono-BoldOblique.ttf",
|
'BI' => "DejaVuSansMono-BoldOblique.ttf",
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
/* OCR-B font for Barcodes */
|
/* OCR-B font for Barcodes */
|
||||||
"ocrb" => array(
|
"ocrb" => array(
|
||||||
'R' => "ocrb10.ttf",
|
'R' => "ocrb10.ttf",
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Thai fonts */
|
/* Thai fonts */
|
||||||
"garuda" => array(
|
"garuda" => array(
|
||||||
'R' => "Garuda.ttf",
|
'R' => "Garuda.ttf",
|
||||||
'B' => "Garuda-Bold.ttf",
|
'B' => "Garuda-Bold.ttf",
|
||||||
'I' => "Garuda-Oblique.ttf",
|
'I' => "Garuda-Oblique.ttf",
|
||||||
'BI' => "Garuda-BoldOblique.ttf",
|
'BI' => "Garuda-BoldOblique.ttf",
|
||||||
),
|
),
|
||||||
"norasi" => array(
|
"norasi" => array(
|
||||||
'R' => "Norasi.ttf",
|
'R' => "Norasi.ttf",
|
||||||
'B' => "Norasi-Bold.ttf",
|
'B' => "Norasi-Bold.ttf",
|
||||||
'I' => "Norasi-Oblique.ttf",
|
'I' => "Norasi-Oblique.ttf",
|
||||||
'BI' => "Norasi-BoldOblique.ttf",
|
'BI' => "Norasi-BoldOblique.ttf",
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
/* Indic fonts */
|
/* Indic fonts */
|
||||||
"ind_bn_1_001" => array(
|
"ind_bn_1_001" => array(
|
||||||
'R' => "ind_bn_1_001.ttf",
|
'R' => "ind_bn_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_hi_1_001" => array(
|
"ind_hi_1_001" => array(
|
||||||
'R' => "ind_hi_1_001.ttf",
|
'R' => "ind_hi_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_ml_1_001" => array(
|
"ind_ml_1_001" => array(
|
||||||
'R' => "ind_ml_1_001.ttf",
|
'R' => "ind_ml_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_kn_1_001" => array(
|
"ind_kn_1_001" => array(
|
||||||
'R' => "ind_kn_1_001.ttf",
|
'R' => "ind_kn_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_gu_1_001" => array(
|
"ind_gu_1_001" => array(
|
||||||
'R' => "ind_gu_1_001.ttf",
|
'R' => "ind_gu_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_or_1_001" => array(
|
"ind_or_1_001" => array(
|
||||||
'R' => "ind_or_1_001.ttf",
|
'R' => "ind_or_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_ta_1_001" => array(
|
"ind_ta_1_001" => array(
|
||||||
'R' => "ind_ta_1_001.ttf",
|
'R' => "ind_ta_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_te_1_001" => array(
|
"ind_te_1_001" => array(
|
||||||
'R' => "ind_te_1_001.ttf",
|
'R' => "ind_te_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
"ind_pa_1_001" => array(
|
"ind_pa_1_001" => array(
|
||||||
'R' => "ind_pa_1_001.ttf",
|
'R' => "ind_pa_1_001.ttf",
|
||||||
'indic' => true,
|
'indic' => true,
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
/* XW Zar Arabic fonts */
|
/* XW Zar Arabic fonts */
|
||||||
"xbriyaz" => array(
|
"xbriyaz" => array(
|
||||||
'R' => "XB Riyaz.ttf",
|
'R' => "XB Riyaz.ttf",
|
||||||
'B' => "XB RiyazBd.ttf",
|
'B' => "XB RiyazBd.ttf",
|
||||||
'I' => "XB RiyazIt.ttf",
|
'I' => "XB RiyazIt.ttf",
|
||||||
'BI' => "XB RiyazBdIt.ttf",
|
'BI' => "XB RiyazBdIt.ttf",
|
||||||
),
|
),
|
||||||
"xbzar" => array(
|
"xbzar" => array(
|
||||||
'R' => "XB Zar.ttf",
|
'R' => "XB Zar.ttf",
|
||||||
'B' => "XB Zar Bd.ttf",
|
'B' => "XB Zar Bd.ttf",
|
||||||
'I' => "XB Zar It.ttf",
|
'I' => "XB Zar It.ttf",
|
||||||
'BI' => "XB Zar BdIt.ttf",
|
'BI' => "XB Zar BdIt.ttf",
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Examples of some CJK fonts */
|
/* Examples of some CJK fonts */
|
||||||
/*
|
/*
|
||||||
"unbatang_0613" => array(
|
"unbatang_0613" => array(
|
||||||
'R' => "UnBatang_0613.ttf",
|
'R' => "UnBatang_0613.ttf",
|
||||||
),
|
),
|
||||||
"sun-exta" => array(
|
"sun-exta" => array(
|
||||||
'R' => "Sun-ExtA.ttf",
|
'R' => "Sun-ExtA.ttf",
|
||||||
'sip-ext' => 'sun-extb',
|
'sip-ext' => 'sun-extb',
|
||||||
),
|
),
|
||||||
"sun-extb" => array(
|
"sun-extb" => array(
|
||||||
'R' => "Sun-ExtB.ttf",
|
'R' => "Sun-ExtB.ttf",
|
||||||
),
|
),
|
||||||
"hannoma" => array(
|
"hannoma" => array(
|
||||||
'R' => "HAN NOM A.ttf",
|
'R' => "HAN NOM A.ttf",
|
||||||
'sip-ext' => 'hannomb',
|
'sip-ext' => 'hannomb',
|
||||||
),
|
),
|
||||||
"hannomb" => array(
|
"hannomb" => array(
|
||||||
'R' => "HAN NOM B.ttf",
|
'R' => "HAN NOM B.ttf",
|
||||||
),
|
),
|
||||||
|
|
||||||
|
|
||||||
'mingliu' => array (
|
'mingliu' => array (
|
||||||
'R' => 'mingliu.ttc',
|
'R' => 'mingliu.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 1,
|
'R' => 1,
|
||||||
),
|
),
|
||||||
'sip-ext' => 'mingliu-extb',
|
'sip-ext' => 'mingliu-extb',
|
||||||
),
|
),
|
||||||
'pmingliu' => array (
|
'pmingliu' => array (
|
||||||
'R' => 'mingliu.ttc',
|
'R' => 'mingliu.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 2,
|
'R' => 2,
|
||||||
),
|
),
|
||||||
'sip-ext' => 'pmingliu-extb',
|
'sip-ext' => 'pmingliu-extb',
|
||||||
),
|
),
|
||||||
'mingliu_hkscs' => array (
|
'mingliu_hkscs' => array (
|
||||||
'R' => 'mingliu.ttc',
|
'R' => 'mingliu.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 3,
|
'R' => 3,
|
||||||
),
|
),
|
||||||
'sip-ext' => 'mingliu_hkscs-extb',
|
'sip-ext' => 'mingliu_hkscs-extb',
|
||||||
),
|
),
|
||||||
'mingliu-extb' => array (
|
'mingliu-extb' => array (
|
||||||
'R' => 'mingliub.ttc',
|
'R' => 'mingliub.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 1,
|
'R' => 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'pmingliu-extb' => array (
|
'pmingliu-extb' => array (
|
||||||
'R' => 'mingliub.ttc',
|
'R' => 'mingliub.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 2,
|
'R' => 2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'mingliu_hkscs-extb' => array (
|
'mingliu_hkscs-extb' => array (
|
||||||
'R' => 'mingliub.ttc',
|
'R' => 'mingliub.ttc',
|
||||||
'TTCfontID' => array (
|
'TTCfontID' => array (
|
||||||
'R' => 3,
|
'R' => 3,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
// Add fonts to this array if they contain characters in the SIP or SMP Unicode planes
|
// Add fonts to this array if they contain characters in the SIP or SMP Unicode planes
|
||||||
// but you do not require them. This allows a more efficient form of subsetting to be used.
|
// but you do not require them. This allows a more efficient form of subsetting to be used.
|
||||||
$this->BMPonly = array(
|
$this->BMPonly = array(
|
||||||
"dejavusanscondensed",
|
"dejavusanscondensed",
|
||||||
"dejavusans",
|
"dejavusans",
|
||||||
"dejavuserifcondensed",
|
"dejavuserifcondensed",
|
||||||
"dejavuserif",
|
"dejavuserif",
|
||||||
"dejavusansmono",
|
"dejavusansmono",
|
||||||
);
|
);
|
||||||
|
|
||||||
// These next 3 arrays do two things:
|
// These next 3 arrays do two things:
|
||||||
// 1. If a font referred to in HTML/CSS is not available to mPDF, these arrays will determine whether
|
// 1. If a font referred to in HTML/CSS is not available to mPDF, these arrays will determine whether
|
||||||
// a serif/sans-serif or monospace font is substituted
|
// a serif/sans-serif or monospace font is substituted
|
||||||
// 2. The first font in each array will be the font which is substituted in circumstances as above
|
// 2. The first font in each array will be the font which is substituted in circumstances as above
|
||||||
// (Otherwise the order is irrelevant)
|
// (Otherwise the order is irrelevant)
|
||||||
// Use the mPDF font-family names i.e. lowercase and no spaces (after any translations in $fonttrans)
|
// Use the mPDF font-family names i.e. lowercase and no spaces (after any translations in $fonttrans)
|
||||||
// Always include "sans-serif", "serif" and "monospace" etc.
|
// Always include "sans-serif", "serif" and "monospace" etc.
|
||||||
$this->sans_fonts = array('dejavusanscondensed','dejavusans','freesans','liberationsans','sans','sans-serif','cursive','fantasy',
|
$this->sans_fonts = array('dejavusanscondensed','dejavusans','freesans','liberationsans','sans','sans-serif','cursive','fantasy',
|
||||||
'arial','helvetica','verdana','geneva','lucida','arialnarrow','arialblack','arialunicodems',
|
'arial','helvetica','verdana','geneva','lucida','arialnarrow','arialblack','arialunicodems',
|
||||||
'franklin','franklingothicbook','tahoma','garuda','calibri','trebuchet','lucidagrande','microsoftsansserif',
|
'franklin','franklingothicbook','tahoma','garuda','calibri','trebuchet','lucidagrande','microsoftsansserif',
|
||||||
'trebuchetms','lucidasansunicode','franklingothicmedium','albertusmedium','xbriyaz','albasuper','quillscript'
|
'trebuchetms','lucidasansunicode','franklingothicmedium','albertusmedium','xbriyaz','albasuper','quillscript'
|
||||||
|
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->serif_fonts = array('dejavuserifcondensed','dejavuserif','freeserif','liberationserif','serif',
|
$this->serif_fonts = array('dejavuserifcondensed','dejavuserif','freeserif','liberationserif','serif',
|
||||||
'timesnewroman','times','centuryschoolbookl','palatinolinotype','centurygothic',
|
'timesnewroman','times','centuryschoolbookl','palatinolinotype','centurygothic',
|
||||||
'bookmanoldstyle','bookantiqua','cyberbit','cambria',
|
'bookmanoldstyle','bookantiqua','cyberbit','cambria',
|
||||||
'norasi','charis','palatino','constantia','georgia','albertus','xbzar','algerian','garamond',
|
'norasi','charis','palatino','constantia','georgia','albertus','xbzar','algerian','garamond',
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->mono_fonts = array('dejavusansmono','freemono','liberationmono','courier', 'mono','monospace','ocrb','ocr-b','lucidaconsole',
|
$this->mono_fonts = array('dejavusansmono','freemono','liberationmono','courier', 'mono','monospace','ocrb','ocr-b','lucidaconsole',
|
||||||
'couriernew','monotypecorsiva'
|
'couriernew','monotypecorsiva'
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
for($i=0;$i<=255;$i++)
|
for($i=0;$i<=255;$i++)
|
||||||
$cw[chr($i)]=600;
|
$cw[chr($i)]=600;
|
||||||
|
|
||||||
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-23 -250 715 805]');
|
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-23 -250 715 805]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
for($i=0;$i<=255;$i++)
|
for($i=0;$i<=255;$i++)
|
||||||
$cw[chr($i)]=600;
|
$cw[chr($i)]=600;
|
||||||
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-113 -250 749 801]');
|
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-113 -250 749 801]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
for($i=0;$i<=255;$i++)
|
for($i=0;$i<=255;$i++)
|
||||||
$cw[chr($i)]=600;
|
$cw[chr($i)]=600;
|
||||||
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-57 -250 869 801]');
|
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-57 -250 869 801]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,9 +1,9 @@
|
|||||||
<?php
|
<?php
|
||||||
for($i=0;$i<=255;$i++)
|
for($i=0;$i<=255;$i++)
|
||||||
$cw[chr($i)]=600;
|
$cw[chr($i)]=600;
|
||||||
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-27 -250 849 805]');
|
$desc=array('Ascent'=>629,'Descent'=>-157,'CapHeight'=>562,'FontBBox'=>'[-27 -250 849 805]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,20 +1,20 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
||||||
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
||||||
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
||||||
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||||
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
||||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
||||||
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
||||||
|
|
||||||
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-166 -225 1000 931]');
|
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-166 -225 1000 931]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -37, chr(89)=> -74, chr(118)=> -18, chr(119)=> -18, chr(121)=> -18, chr(146)=> -74, ), chr(70)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -55, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -74, chr(89)=> -74, chr(121)=> -37, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -18, chr(86)=> -18, chr(87)=> -18, chr(89)=> -18, ), chr(84)=> array ( chr(44)=> -110, chr(46)=> -110, chr(58)=> -110, chr(65)=> -74, chr(79)=> -18, chr(97)=> -110, chr(99)=> -110, chr(101)=> -110, chr(105)=> -37, chr(111)=> -110, chr(114)=> -37, chr(115)=> -110, chr(117)=> -37, chr(119)=> -55, chr(121)=> -55, ), chr(86)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -74, chr(97)=> -74, chr(101)=> -55, chr(105)=> -18, chr(111)=> -55, chr(114)=> -37, chr(117)=> -37, chr(121)=> -37, ), chr(87)=> array ( chr(44)=> -55, chr(46)=> -55, chr(58)=> -18, chr(65)=> -37, chr(97)=> -37, chr(101)=> -18, chr(105)=> 0, chr(111)=> -18, chr(114)=> -18, chr(117)=> -18, chr(121)=> -8, ), chr(89)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -55, chr(65)=> -74, chr(97)=> -74, chr(101)=> -91, chr(105)=> -37, chr(111)=> -91, chr(112)=> -74, chr(113)=> -91, chr(117)=> -55, chr(118)=> -55, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 18, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(121)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(145)=> array ( chr(145)=> -18, ), chr(146)=> array ( chr(115)=> -18, chr(146)=> -18, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -37, chr(89)=> -74, chr(118)=> -18, chr(119)=> -18, chr(121)=> -18, chr(146)=> -74, ), chr(70)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -55, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -74, chr(89)=> -74, chr(121)=> -37, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -18, chr(86)=> -18, chr(87)=> -18, chr(89)=> -18, ), chr(84)=> array ( chr(44)=> -110, chr(46)=> -110, chr(58)=> -110, chr(65)=> -74, chr(79)=> -18, chr(97)=> -110, chr(99)=> -110, chr(101)=> -110, chr(105)=> -37, chr(111)=> -110, chr(114)=> -37, chr(115)=> -110, chr(117)=> -37, chr(119)=> -55, chr(121)=> -55, ), chr(86)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -74, chr(97)=> -74, chr(101)=> -55, chr(105)=> -18, chr(111)=> -55, chr(114)=> -37, chr(117)=> -37, chr(121)=> -37, ), chr(87)=> array ( chr(44)=> -55, chr(46)=> -55, chr(58)=> -18, chr(65)=> -37, chr(97)=> -37, chr(101)=> -18, chr(105)=> 0, chr(111)=> -18, chr(114)=> -18, chr(117)=> -18, chr(121)=> -8, ), chr(89)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -55, chr(65)=> -74, chr(97)=> -74, chr(101)=> -91, chr(105)=> -37, chr(111)=> -91, chr(112)=> -74, chr(113)=> -91, chr(117)=> -55, chr(118)=> -55, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 18, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(121)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(145)=> array ( chr(145)=> -18, ), chr(146)=> array ( chr(115)=> -18, chr(146)=> -18, ), );
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
||||||
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
||||||
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
||||||
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||||
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
||||||
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
||||||
|
|
||||||
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-170 -228 1003 962]');
|
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-170 -228 1003 962]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -55, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -55, chr(89)=> -91, chr(118)=> -37, chr(119)=> -18, chr(121)=> -37, chr(146)=> -55, ), chr(70)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -55, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -55, chr(89)=> -91, chr(121)=> -37, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(86)=> -18, chr(87)=> -18, chr(89)=> -37, ), chr(84)=> array ( chr(44)=> -110, chr(46)=> -110, chr(58)=> -110, chr(65)=> -74, chr(79)=> -18, chr(97)=> -74, chr(99)=> -74, chr(101)=> -74, chr(105)=> -18, chr(111)=> -74, chr(114)=> -55, chr(115)=> -74, chr(117)=> -74, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -55, chr(65)=> -74, chr(97)=> -55, chr(101)=> -55, chr(105)=> -18, chr(111)=> -74, chr(114)=> -55, chr(117)=> -37, chr(121)=> -37, ), chr(87)=> array ( chr(44)=> -55, chr(46)=> -55, chr(58)=> -18, chr(65)=> -55, chr(97)=> -37, chr(101)=> -18, chr(105)=> -8, chr(111)=> -18, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(89)=> array ( chr(44)=> -110, chr(46)=> -110, chr(58)=> -74, chr(65)=> -91, chr(97)=> -55, chr(101)=> -55, chr(105)=> -37, chr(111)=> -74, chr(112)=> -55, chr(113)=> -74, chr(117)=> -55, chr(118)=> -55, ), chr(102)=> array ( chr(146)=> 18, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(121)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(145)=> array ( chr(145)=> -37, ), chr(146)=> array ( chr(115)=> -37, chr(146)=> -37, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -55, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -55, chr(89)=> -91, chr(118)=> -37, chr(119)=> -18, chr(121)=> -37, chr(146)=> -55, ), chr(70)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -55, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -55, chr(89)=> -91, chr(121)=> -37, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(86)=> -18, chr(87)=> -18, chr(89)=> -37, ), chr(84)=> array ( chr(44)=> -110, chr(46)=> -110, chr(58)=> -110, chr(65)=> -74, chr(79)=> -18, chr(97)=> -74, chr(99)=> -74, chr(101)=> -74, chr(105)=> -18, chr(111)=> -74, chr(114)=> -55, chr(115)=> -74, chr(117)=> -74, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -55, chr(65)=> -74, chr(97)=> -55, chr(101)=> -55, chr(105)=> -18, chr(111)=> -74, chr(114)=> -55, chr(117)=> -37, chr(121)=> -37, ), chr(87)=> array ( chr(44)=> -55, chr(46)=> -55, chr(58)=> -18, chr(65)=> -55, chr(97)=> -37, chr(101)=> -18, chr(105)=> -8, chr(111)=> -18, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(89)=> array ( chr(44)=> -110, chr(46)=> -110, chr(58)=> -74, chr(65)=> -91, chr(97)=> -55, chr(101)=> -55, chr(105)=> -37, chr(111)=> -74, chr(112)=> -55, chr(113)=> -74, chr(117)=> -55, chr(118)=> -55, ), chr(102)=> array ( chr(146)=> 18, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(121)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(145)=> array ( chr(145)=> -37, ), chr(146)=> array ( chr(115)=> -37, chr(146)=> -37, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>333,'"'=>474,'#'=>556,'$'=>556,'%'=>889,'&'=>722,'\''=>238,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>333,';'=>333,'<'=>584,'='=>584,'>'=>584,'?'=>611,'@'=>975,'A'=>722,
|
||||||
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
'B'=>722,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>556,'K'=>722,'L'=>611,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
'X'=>667,'Y'=>667,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>584,'_'=>556,'`'=>333,'a'=>556,'b'=>611,'c'=>556,'d'=>611,'e'=>556,'f'=>333,'g'=>611,'h'=>611,'i'=>278,'j'=>278,'k'=>556,'l'=>278,'m'=>889,
|
||||||
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
'n'=>611,'o'=>611,'p'=>611,'q'=>611,'r'=>389,'s'=>556,'t'=>333,'u'=>611,'v'=>556,'w'=>778,'x'=>556,'y'=>556,'z'=>500,'{'=>389,'|'=>280,'}'=>389,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>278,chr(131)=>556,
|
||||||
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
chr(132)=>500,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>278,chr(146)=>278,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||||
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
chr(154)=>556,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>280,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>611,chr(182)=>556,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>556,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>611,chr(241)=>611,
|
||||||
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
chr(242)=>611,chr(243)=>611,chr(244)=>611,chr(245)=>611,chr(246)=>611,chr(247)=>584,chr(248)=>611,chr(249)=>611,chr(250)=>611,chr(251)=>611,chr(252)=>611,chr(253)=>556,chr(254)=>611,chr(255)=>556);
|
||||||
|
|
||||||
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-174 -228 1114 962]');
|
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-174 -228 1114 962]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -55, chr(89)=> -74, chr(146)=> -55, ), chr(70)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -55, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -55, chr(87)=> -55, chr(89)=> -74, chr(146)=> -74, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -18, chr(87)=> -18, chr(89)=> -18, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -74, chr(65)=> -74, chr(79)=> -18, chr(97)=> -37, chr(99)=> -37, chr(101)=> -37, chr(105)=> -18, chr(111)=> -37, chr(114)=> -18, chr(115)=> -37, chr(117)=> -18, chr(119)=> -37, chr(121)=> -37, ), chr(86)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -74, chr(97)=> -37, chr(101)=> -37, chr(105)=> -37, chr(111)=> -37, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(87)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -37, chr(65)=> -55, chr(97)=> -18, chr(101)=> -18, chr(105)=> -8, chr(111)=> -18, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -55, chr(65)=> -74, chr(97)=> -37, chr(101)=> -37, chr(105)=> -37, chr(111)=> -37, chr(112)=> -37, chr(113)=> -37, chr(117)=> -37, chr(118)=> -37, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 18, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(119)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(121)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(145)=> array ( chr(145)=> -37, ), chr(146)=> array ( chr(115)=> -18, chr(116)=> 18, chr(146)=> -37, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -74, chr(87)=> -55, chr(89)=> -74, chr(146)=> -55, ), chr(70)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -55, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -55, chr(87)=> -55, chr(89)=> -74, chr(146)=> -74, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -18, chr(87)=> -18, chr(89)=> -18, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -74, chr(65)=> -74, chr(79)=> -18, chr(97)=> -37, chr(99)=> -37, chr(101)=> -37, chr(105)=> -18, chr(111)=> -37, chr(114)=> -18, chr(115)=> -37, chr(117)=> -18, chr(119)=> -37, chr(121)=> -37, ), chr(86)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -74, chr(97)=> -37, chr(101)=> -37, chr(105)=> -37, chr(111)=> -37, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(87)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -37, chr(65)=> -55, chr(97)=> -18, chr(101)=> -18, chr(105)=> -8, chr(111)=> -18, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -55, chr(65)=> -74, chr(97)=> -37, chr(101)=> -37, chr(105)=> -37, chr(111)=> -37, chr(112)=> -37, chr(113)=> -37, chr(117)=> -37, chr(118)=> -37, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 18, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(119)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(121)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(145)=> array ( chr(145)=> -37, ), chr(146)=> array ( chr(115)=> -18, chr(116)=> 18, chr(146)=> -37, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
chr(0)=>278,chr(1)=>278,chr(2)=>278,chr(3)=>278,chr(4)=>278,chr(5)=>278,chr(6)=>278,chr(7)=>278,chr(8)=>278,chr(9)=>278,chr(10)=>278,chr(11)=>278,chr(12)=>278,chr(13)=>278,chr(14)=>278,chr(15)=>278,chr(16)=>278,chr(17)=>278,chr(18)=>278,chr(19)=>278,chr(20)=>278,chr(21)=>278,
|
||||||
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
chr(22)=>278,chr(23)=>278,chr(24)=>278,chr(25)=>278,chr(26)=>278,chr(27)=>278,chr(28)=>278,chr(29)=>278,chr(30)=>278,chr(31)=>278,' '=>278,'!'=>278,'"'=>355,'#'=>556,'$'=>556,'%'=>889,'&'=>667,'\''=>191,'('=>333,')'=>333,'*'=>389,'+'=>584,
|
||||||
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
','=>278,'-'=>333,'.'=>278,'/'=>278,'0'=>556,'1'=>556,'2'=>556,'3'=>556,'4'=>556,'5'=>556,'6'=>556,'7'=>556,'8'=>556,'9'=>556,':'=>278,';'=>278,'<'=>584,'='=>584,'>'=>584,'?'=>556,'@'=>1015,'A'=>667,
|
||||||
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>722,'I'=>278,'J'=>500,'K'=>667,'L'=>556,'M'=>833,'N'=>722,'O'=>778,'P'=>667,'Q'=>778,'R'=>722,'S'=>667,'T'=>611,'U'=>722,'V'=>667,'W'=>944,
|
||||||
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
'X'=>667,'Y'=>667,'Z'=>611,'['=>278,'\\'=>278,']'=>278,'^'=>469,'_'=>556,'`'=>333,'a'=>556,'b'=>556,'c'=>500,'d'=>556,'e'=>556,'f'=>278,'g'=>556,'h'=>556,'i'=>222,'j'=>222,'k'=>500,'l'=>222,'m'=>833,
|
||||||
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
'n'=>556,'o'=>556,'p'=>556,'q'=>556,'r'=>333,'s'=>500,'t'=>278,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>500,'{'=>334,'|'=>260,'}'=>334,'~'=>584,chr(127)=>350,chr(128)=>556,chr(129)=>350,chr(130)=>222,chr(131)=>556,
|
||||||
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
chr(132)=>333,chr(133)=>1000,chr(134)=>556,chr(135)=>556,chr(136)=>333,chr(137)=>1000,chr(138)=>667,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>222,chr(146)=>222,chr(147)=>333,chr(148)=>333,chr(149)=>350,chr(150)=>556,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||||
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
chr(154)=>500,chr(155)=>333,chr(156)=>944,chr(157)=>350,chr(158)=>500,chr(159)=>667,chr(160)=>278,chr(161)=>333,chr(162)=>556,chr(163)=>556,chr(164)=>556,chr(165)=>556,chr(166)=>260,chr(167)=>556,chr(168)=>333,chr(169)=>737,chr(170)=>370,chr(171)=>556,chr(172)=>584,chr(173)=>333,chr(174)=>737,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
chr(176)=>400,chr(177)=>584,chr(178)=>333,chr(179)=>333,chr(180)=>333,chr(181)=>556,chr(182)=>537,chr(183)=>278,chr(184)=>333,chr(185)=>333,chr(186)=>365,chr(187)=>556,chr(188)=>834,chr(189)=>834,chr(190)=>834,chr(191)=>611,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
||||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>278,chr(205)=>278,chr(206)=>278,chr(207)=>278,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>584,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
chr(220)=>722,chr(221)=>667,chr(222)=>667,chr(223)=>611,chr(224)=>556,chr(225)=>556,chr(226)=>556,chr(227)=>556,chr(228)=>556,chr(229)=>556,chr(230)=>889,chr(231)=>500,chr(232)=>556,chr(233)=>556,chr(234)=>556,chr(235)=>556,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>556,chr(241)=>556,
|
||||||
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
chr(242)=>556,chr(243)=>556,chr(244)=>556,chr(245)=>556,chr(246)=>556,chr(247)=>584,chr(248)=>611,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
||||||
|
|
||||||
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-170 -225 1116 931]');
|
$desc=array('Ascent'=>718,'Descent'=>-207,'CapHeight'=>718,'FontBBox'=>'[-170 -225 1116 931]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -55, chr(87)=> -18, chr(89)=> -74, chr(118)=> -18, chr(119)=> -18, chr(121)=> -8, chr(146)=> -37, ), chr(70)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -55, chr(87)=> -37, chr(89)=> -91, chr(121)=> -18, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -18, chr(86)=> -18, chr(87)=> -18, chr(89)=> -37, ), chr(84)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -74, chr(65)=> -74, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -8, chr(111)=> -91, chr(114)=> -74, chr(115)=> -91, chr(117)=> -74, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -18, chr(65)=> -55, chr(97)=> -37, chr(101)=> -37, chr(105)=> -18, chr(111)=> -37, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(87)=> array ( chr(44)=> -37, chr(46)=> -37, chr(65)=> -18, chr(97)=> -18, chr(101)=> -18, chr(105)=> -8, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -55, chr(97)=> -74, chr(101)=> -55, chr(105)=> -18, chr(111)=> -55, chr(112)=> -55, chr(113)=> -55, chr(117)=> -37, chr(118)=> -37, ), chr(102)=> array ( chr(146)=> 37, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -37, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(121)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(145)=> array ( chr(145)=> -37, ), chr(146)=> array ( chr(115)=> -18, chr(146)=> -37, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -55, chr(87)=> -18, chr(89)=> -74, chr(118)=> -18, chr(119)=> -18, chr(121)=> -8, chr(146)=> -37, ), chr(70)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(76)=> array ( chr(84)=> -74, chr(86)=> -55, chr(87)=> -37, chr(89)=> -91, chr(121)=> -18, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -18, chr(86)=> -18, chr(87)=> -18, chr(89)=> -37, ), chr(84)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -74, chr(65)=> -74, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -8, chr(111)=> -91, chr(114)=> -74, chr(115)=> -91, chr(117)=> -74, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -18, chr(65)=> -55, chr(97)=> -37, chr(101)=> -37, chr(105)=> -18, chr(111)=> -37, chr(114)=> -18, chr(117)=> -18, chr(121)=> -18, ), chr(87)=> array ( chr(44)=> -37, chr(46)=> -37, chr(65)=> -18, chr(97)=> -18, chr(101)=> -18, chr(105)=> -8, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -55, chr(97)=> -74, chr(101)=> -55, chr(105)=> -18, chr(111)=> -55, chr(112)=> -55, chr(113)=> -55, chr(117)=> -37, chr(118)=> -37, ), chr(102)=> array ( chr(146)=> 37, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -37, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(121)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(145)=> array ( chr(145)=> -37, ), chr(146)=> array ( chr(115)=> -18, chr(146)=> -37, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
|
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>713,'#'=>500,'$'=>549,'%'=>833,'&'=>778,'\''=>439,'('=>333,')'=>333,'*'=>500,'+'=>549,
|
||||||
','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
|
','=>250,'-'=>549,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>549,'='=>549,'>'=>549,'?'=>444,'@'=>549,'A'=>722,
|
||||||
'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
|
'B'=>667,'C'=>722,'D'=>612,'E'=>611,'F'=>763,'G'=>603,'H'=>722,'I'=>333,'J'=>631,'K'=>722,'L'=>686,'M'=>889,'N'=>722,'O'=>722,'P'=>768,'Q'=>741,'R'=>556,'S'=>592,'T'=>611,'U'=>690,'V'=>439,'W'=>768,
|
||||||
'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
|
'X'=>645,'Y'=>795,'Z'=>611,'['=>333,'\\'=>863,']'=>333,'^'=>658,'_'=>500,'`'=>500,'a'=>631,'b'=>549,'c'=>549,'d'=>494,'e'=>439,'f'=>521,'g'=>411,'h'=>603,'i'=>329,'j'=>603,'k'=>549,'l'=>549,'m'=>576,
|
||||||
'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,
|
'n'=>521,'o'=>549,'p'=>549,'q'=>521,'r'=>549,'s'=>603,'t'=>439,'u'=>576,'v'=>713,'w'=>686,'x'=>493,'y'=>686,'z'=>494,'{'=>480,'|'=>200,'}'=>480,'~'=>549,chr(127)=>0,chr(128)=>0,chr(129)=>0,chr(130)=>0,chr(131)=>0,
|
||||||
chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
chr(132)=>0,chr(133)=>0,chr(134)=>0,chr(135)=>0,chr(136)=>0,chr(137)=>0,chr(138)=>0,chr(139)=>0,chr(140)=>0,chr(141)=>0,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
||||||
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,
|
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>750,chr(161)=>620,chr(162)=>247,chr(163)=>549,chr(164)=>167,chr(165)=>713,chr(166)=>500,chr(167)=>753,chr(168)=>753,chr(169)=>753,chr(170)=>753,chr(171)=>1042,chr(172)=>987,chr(173)=>603,chr(174)=>987,chr(175)=>603,
|
||||||
chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,
|
chr(176)=>400,chr(177)=>549,chr(178)=>411,chr(179)=>549,chr(180)=>549,chr(181)=>713,chr(182)=>494,chr(183)=>460,chr(184)=>549,chr(185)=>549,chr(186)=>549,chr(187)=>549,chr(188)=>1000,chr(189)=>603,chr(190)=>1000,chr(191)=>658,chr(192)=>823,chr(193)=>686,chr(194)=>795,chr(195)=>987,chr(196)=>768,chr(197)=>768,
|
||||||
chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,
|
chr(198)=>823,chr(199)=>768,chr(200)=>768,chr(201)=>713,chr(202)=>713,chr(203)=>713,chr(204)=>713,chr(205)=>713,chr(206)=>713,chr(207)=>713,chr(208)=>768,chr(209)=>713,chr(210)=>790,chr(211)=>790,chr(212)=>890,chr(213)=>823,chr(214)=>549,chr(215)=>250,chr(216)=>713,chr(217)=>603,chr(218)=>603,chr(219)=>1042,
|
||||||
chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,
|
chr(220)=>987,chr(221)=>603,chr(222)=>987,chr(223)=>603,chr(224)=>494,chr(225)=>329,chr(226)=>790,chr(227)=>790,chr(228)=>786,chr(229)=>713,chr(230)=>384,chr(231)=>384,chr(232)=>384,chr(233)=>384,chr(234)=>384,chr(235)=>384,chr(236)=>494,chr(237)=>494,chr(238)=>494,chr(239)=>494,chr(240)=>0,chr(241)=>329,
|
||||||
chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);
|
chr(242)=>274,chr(243)=>686,chr(244)=>686,chr(245)=>686,chr(246)=>384,chr(247)=>384,chr(248)=>384,chr(249)=>384,chr(250)=>384,chr(251)=>384,chr(252)=>494,chr(253)=>494,chr(254)=>494,chr(255)=>0);
|
||||||
|
|
||||||
$desc=array('FontBBox'=>'[-180 -293 1090 1010]');
|
$desc=array('FontBBox'=>'[-180 -293 1090 1010]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
|
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>408,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>180,'('=>333,')'=>333,'*'=>500,'+'=>564,
|
||||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
|
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>278,';'=>278,'<'=>564,'='=>564,'>'=>564,'?'=>444,'@'=>921,'A'=>722,
|
||||||
'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
|
'B'=>667,'C'=>667,'D'=>722,'E'=>611,'F'=>556,'G'=>722,'H'=>722,'I'=>333,'J'=>389,'K'=>722,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>556,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>722,'W'=>944,
|
||||||
'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
'X'=>722,'Y'=>722,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>469,'_'=>500,'`'=>333,'a'=>444,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
||||||
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>333,'s'=>389,'t'=>278,'u'=>500,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>480,'|'=>200,'}'=>480,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||||
chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,
|
chr(132)=>444,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>889,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>444,chr(148)=>444,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>980,
|
||||||
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>200,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>564,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
chr(176)=>400,chr(177)=>564,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>453,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>444,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||||
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>564,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
chr(220)=>722,chr(221)=>722,chr(222)=>556,chr(223)=>500,chr(224)=>444,chr(225)=>444,chr(226)=>444,chr(227)=>444,chr(228)=>444,chr(229)=>444,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
||||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);
|
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>564,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>500,chr(254)=>500,chr(255)=>500);
|
||||||
|
|
||||||
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>662,'FontBBox'=>'[-168 -218 1000 898]');
|
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>662,'FontBBox'=>'[-168 -218 1000 898]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -37, ), chr(65)=> array ( chr(84)=> -110, chr(86)=> -128, chr(87)=> -80, chr(89)=> -91, chr(118)=> -74, chr(119)=> -91, chr(121)=> -91, chr(146)=> -110, ), chr(70)=> array ( chr(44)=> -80, chr(46)=> -80, chr(65)=> -74, ), chr(76)=> array ( chr(84)=> -91, chr(86)=> -91, chr(87)=> -74, chr(89)=> -100, chr(121)=> -55, chr(146)=> -91, ), chr(80)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -91, ), chr(82)=> array ( chr(84)=> -60, chr(86)=> -80, chr(87)=> -55, chr(89)=> -55, chr(121)=> -40, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -49, chr(65)=> -80, chr(79)=> -18, chr(97)=> -69, chr(99)=> -69, chr(101)=> -69, chr(105)=> -35, chr(111)=> -69, chr(114)=> -35, chr(115)=> -69, chr(117)=> -35, chr(119)=> -69, chr(121)=> -69, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -74, chr(65)=> -128, chr(97)=> -110, chr(101)=> -110, chr(105)=> -60, chr(111)=> -128, chr(114)=> -60, chr(117)=> -60, chr(121)=> -110, ), chr(87)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -110, chr(97)=> -80, chr(101)=> -80, chr(105)=> -40, chr(111)=> -80, chr(114)=> -40, chr(117)=> -40, chr(121)=> -60, ), chr(89)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -91, chr(65)=> -110, chr(97)=> -100, chr(101)=> -100, chr(105)=> -55, chr(111)=> -100, chr(112)=> -91, chr(113)=> -110, chr(117)=> -110, chr(118)=> -100, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 55, ), chr(114)=> array ( chr(44)=> -40, chr(46)=> -55, chr(103)=> -18, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -64, chr(46)=> -64, ), chr(119)=> array ( chr(44)=> -64, chr(46)=> -64, ), chr(121)=> array ( chr(44)=> -64, chr(46)=> -64, ), chr(145)=> array ( chr(145)=> -74, ), chr(146)=> array ( chr(115)=> -55, chr(116)=> -18, chr(146)=> -74, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -37, ), chr(65)=> array ( chr(84)=> -110, chr(86)=> -128, chr(87)=> -80, chr(89)=> -91, chr(118)=> -74, chr(119)=> -91, chr(121)=> -91, chr(146)=> -110, ), chr(70)=> array ( chr(44)=> -80, chr(46)=> -80, chr(65)=> -74, ), chr(76)=> array ( chr(84)=> -91, chr(86)=> -91, chr(87)=> -74, chr(89)=> -100, chr(121)=> -55, chr(146)=> -91, ), chr(80)=> array ( chr(44)=> -110, chr(46)=> -110, chr(65)=> -91, ), chr(82)=> array ( chr(84)=> -60, chr(86)=> -80, chr(87)=> -55, chr(89)=> -55, chr(121)=> -40, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -49, chr(65)=> -80, chr(79)=> -18, chr(97)=> -69, chr(99)=> -69, chr(101)=> -69, chr(105)=> -35, chr(111)=> -69, chr(114)=> -35, chr(115)=> -69, chr(117)=> -35, chr(119)=> -69, chr(121)=> -69, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -74, chr(65)=> -128, chr(97)=> -110, chr(101)=> -110, chr(105)=> -60, chr(111)=> -128, chr(114)=> -60, chr(117)=> -60, chr(121)=> -110, ), chr(87)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -37, chr(65)=> -110, chr(97)=> -80, chr(101)=> -80, chr(105)=> -40, chr(111)=> -80, chr(114)=> -40, chr(117)=> -40, chr(121)=> -60, ), chr(89)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -91, chr(65)=> -110, chr(97)=> -100, chr(101)=> -100, chr(105)=> -55, chr(111)=> -100, chr(112)=> -91, chr(113)=> -110, chr(117)=> -110, chr(118)=> -100, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 55, ), chr(114)=> array ( chr(44)=> -40, chr(46)=> -55, chr(103)=> -18, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -64, chr(46)=> -64, ), chr(119)=> array ( chr(44)=> -64, chr(46)=> -64, ), chr(121)=> array ( chr(44)=> -64, chr(46)=> -64, ), chr(145)=> array ( chr(145)=> -74, ), chr(146)=> array ( chr(115)=> -55, chr(116)=> -18, chr(146)=> -74, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>555,'#'=>500,'$'=>500,'%'=>1000,'&'=>833,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
||||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
|
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>930,'A'=>722,
|
||||||
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
|
'B'=>667,'C'=>722,'D'=>722,'E'=>667,'F'=>611,'G'=>778,'H'=>778,'I'=>389,'J'=>500,'K'=>778,'L'=>667,'M'=>944,'N'=>722,'O'=>778,'P'=>611,'Q'=>778,'R'=>722,'S'=>556,'T'=>667,'U'=>722,'V'=>722,'W'=>1000,
|
||||||
'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
|
'X'=>722,'Y'=>722,'Z'=>667,'['=>333,'\\'=>278,']'=>333,'^'=>581,'_'=>500,'`'=>333,'a'=>500,'b'=>556,'c'=>444,'d'=>556,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>333,'k'=>556,'l'=>278,'m'=>833,
|
||||||
'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
'n'=>556,'o'=>500,'p'=>556,'q'=>556,'r'=>444,'s'=>389,'t'=>333,'u'=>556,'v'=>500,'w'=>722,'x'=>500,'y'=>500,'z'=>444,'{'=>394,'|'=>220,'}'=>394,'~'=>520,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||||
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>1000,chr(141)=>350,chr(142)=>667,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||||
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>444,chr(159)=>722,chr(160)=>250,chr(161)=>333,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>300,chr(171)=>500,chr(172)=>570,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>556,chr(182)=>540,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>330,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>722,chr(193)=>722,chr(194)=>722,chr(195)=>722,chr(196)=>722,chr(197)=>722,
|
||||||
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>1000,chr(199)=>722,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>778,chr(211)=>778,chr(212)=>778,chr(213)=>778,chr(214)=>778,chr(215)=>570,chr(216)=>778,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
chr(220)=>722,chr(221)=>722,chr(222)=>611,chr(223)=>556,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
||||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>500,chr(254)=>556,chr(255)=>500);
|
||||||
|
|
||||||
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>676,'FontBBox'=>'[-168 -218 1000 935]');
|
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>676,'FontBBox'=>'[-168 -218 1000 935]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -55, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -128, chr(87)=> -110, chr(89)=> -91, chr(118)=> -74, chr(119)=> -74, chr(121)=> -74, chr(146)=> -74, ), chr(70)=> array ( chr(44)=> -91, chr(46)=> -91, chr(65)=> -74, ), chr(76)=> array ( chr(84)=> -91, chr(86)=> -91, chr(87)=> -91, chr(89)=> -91, chr(121)=> -55, chr(146)=> -91, ), chr(80)=> array ( chr(44)=> -91, chr(46)=> -91, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -35, chr(86)=> -35, chr(87)=> -35, chr(89)=> -35, chr(121)=> -35, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -74, chr(65)=> -74, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -18, chr(111)=> -91, chr(114)=> -74, chr(115)=> -91, chr(117)=> -91, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -91, chr(65)=> -128, chr(79)=> -20, chr(97)=> -91, chr(101)=> -91, chr(105)=> -37, chr(111)=> -91, chr(114)=> -74, chr(117)=> -91, chr(121)=> -91, ), chr(87)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -55, chr(65)=> -110, chr(97)=> -55, chr(101)=> -55, chr(105)=> -18, chr(111)=> -55, chr(114)=> -18, chr(117)=> -18, chr(121)=> -37, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -91, chr(65)=> -91, chr(97)=> -110, chr(101)=> -110, chr(105)=> -37, chr(111)=> -110, chr(112)=> -91, chr(113)=> -110, chr(117)=> -91, chr(118)=> -110, ), chr(102)=> array ( chr(102)=> 0, chr(146)=> 55, ), chr(114)=> array ( chr(44)=> -91, chr(46)=> -91, chr(99)=> -18, chr(101)=> -18, chr(104)=> 0, chr(111)=> -18, chr(113)=> -18, chr(116)=> 0, chr(119)=> 0, chr(120)=> 0, chr(121)=> 0, chr(122)=> 0, chr(146)=> 18, ), chr(118)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(119)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(121)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(145)=> array ( chr(145)=> -74, ), chr(146)=> array ( chr(115)=> -37, chr(146)=> -74, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -55, ), chr(65)=> array ( chr(84)=> -74, chr(86)=> -128, chr(87)=> -110, chr(89)=> -91, chr(118)=> -74, chr(119)=> -74, chr(121)=> -74, chr(146)=> -74, ), chr(70)=> array ( chr(44)=> -91, chr(46)=> -91, chr(65)=> -74, ), chr(76)=> array ( chr(84)=> -91, chr(86)=> -91, chr(87)=> -91, chr(89)=> -91, chr(121)=> -55, chr(146)=> -91, ), chr(80)=> array ( chr(44)=> -91, chr(46)=> -91, chr(65)=> -74, ), chr(82)=> array ( chr(84)=> -35, chr(86)=> -35, chr(87)=> -35, chr(89)=> -35, chr(121)=> -35, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -74, chr(65)=> -74, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -18, chr(111)=> -91, chr(114)=> -74, chr(115)=> -91, chr(117)=> -91, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -91, chr(65)=> -128, chr(79)=> -20, chr(97)=> -91, chr(101)=> -91, chr(105)=> -37, chr(111)=> -91, chr(114)=> -74, chr(117)=> -91, chr(121)=> -91, ), chr(87)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -55, chr(65)=> -110, chr(97)=> -55, chr(101)=> -55, chr(105)=> -18, chr(111)=> -55, chr(114)=> -18, chr(117)=> -18, chr(121)=> -37, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -91, chr(65)=> -91, chr(97)=> -110, chr(101)=> -110, chr(105)=> -37, chr(111)=> -110, chr(112)=> -91, chr(113)=> -110, chr(117)=> -91, chr(118)=> -110, ), chr(102)=> array ( chr(102)=> 0, chr(146)=> 55, ), chr(114)=> array ( chr(44)=> -91, chr(46)=> -91, chr(99)=> -18, chr(101)=> -18, chr(104)=> 0, chr(111)=> -18, chr(113)=> -18, chr(116)=> 0, chr(119)=> 0, chr(120)=> 0, chr(121)=> 0, chr(122)=> 0, chr(146)=> 18, ), chr(118)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(119)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(121)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(145)=> array ( chr(145)=> -74, ), chr(146)=> array ( chr(115)=> -37, chr(146)=> -74, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>389,'"'=>555,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>278,'('=>333,')'=>333,'*'=>500,'+'=>570,
|
||||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
|
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>570,'='=>570,'>'=>570,'?'=>500,'@'=>832,'A'=>667,
|
||||||
'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
|
'B'=>667,'C'=>667,'D'=>722,'E'=>667,'F'=>667,'G'=>722,'H'=>778,'I'=>389,'J'=>500,'K'=>667,'L'=>611,'M'=>889,'N'=>722,'O'=>722,'P'=>611,'Q'=>722,'R'=>667,'S'=>556,'T'=>611,'U'=>722,'V'=>667,'W'=>889,
|
||||||
'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
'X'=>667,'Y'=>611,'Z'=>611,'['=>333,'\\'=>278,']'=>333,'^'=>570,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>333,'g'=>500,'h'=>556,'i'=>278,'j'=>278,'k'=>500,'l'=>278,'m'=>778,
|
||||||
'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
'n'=>556,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>556,'v'=>444,'w'=>667,'x'=>500,'y'=>444,'z'=>389,'{'=>348,'|'=>220,'}'=>348,'~'=>570,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||||
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
chr(132)=>500,chr(133)=>1000,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>556,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>611,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>500,chr(148)=>500,chr(149)=>350,chr(150)=>500,chr(151)=>1000,chr(152)=>333,chr(153)=>1000,
|
||||||
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
chr(154)=>389,chr(155)=>333,chr(156)=>722,chr(157)=>350,chr(158)=>389,chr(159)=>611,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>220,chr(167)=>500,chr(168)=>333,chr(169)=>747,chr(170)=>266,chr(171)=>500,chr(172)=>606,chr(173)=>333,chr(174)=>747,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
chr(176)=>400,chr(177)=>570,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>576,chr(182)=>500,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>300,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>667,chr(193)=>667,chr(194)=>667,chr(195)=>667,chr(196)=>667,chr(197)=>667,
|
||||||
chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>944,chr(199)=>667,chr(200)=>667,chr(201)=>667,chr(202)=>667,chr(203)=>667,chr(204)=>389,chr(205)=>389,chr(206)=>389,chr(207)=>389,chr(208)=>722,chr(209)=>722,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>570,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
chr(220)=>722,chr(221)=>611,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>722,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>556,
|
||||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>570,chr(248)=>500,chr(249)=>556,chr(250)=>556,chr(251)=>556,chr(252)=>556,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
||||||
|
|
||||||
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>669,'FontBBox'=>'[-200 -218 996 921]');
|
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>669,'FontBBox'=>'[-200 -218 996 921]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -55, ), chr(65)=> array ( chr(84)=> -55, chr(86)=> -74, chr(87)=> -91, chr(89)=> -55, chr(118)=> -74, chr(119)=> -74, chr(121)=> -74, chr(146)=> -74, ), chr(70)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -91, ), chr(76)=> array ( chr(84)=> -18, chr(86)=> -37, chr(87)=> -37, chr(89)=> -37, chr(121)=> -37, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(86)=> -18, chr(87)=> -18, chr(89)=> -18, chr(121)=> -18, ), chr(84)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -74, chr(65)=> -55, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -37, chr(111)=> -91, chr(114)=> -37, chr(115)=> -91, chr(117)=> -37, chr(119)=> -37, chr(121)=> -37, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -74, chr(65)=> -74, chr(97)=> -110, chr(101)=> -110, chr(105)=> -55, chr(111)=> -110, chr(114)=> -55, chr(117)=> -55, chr(121)=> -74, ), chr(87)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -55, chr(65)=> -74, chr(97)=> -74, chr(101)=> -74, chr(105)=> -37, chr(111)=> -74, chr(114)=> -74, chr(117)=> -55, chr(121)=> -55, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -74, chr(58)=> -91, chr(65)=> -74, chr(97)=> -91, chr(101)=> -110, chr(105)=> -55, chr(111)=> -110, chr(112)=> -74, chr(113)=> -110, chr(117)=> -91, chr(118)=> -91, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 55, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(119)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(121)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(145)=> array ( chr(145)=> -74, ), chr(146)=> array ( chr(115)=> -74, chr(116)=> -37, chr(146)=> -74, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -55, ), chr(65)=> array ( chr(84)=> -55, chr(86)=> -74, chr(87)=> -91, chr(89)=> -55, chr(118)=> -74, chr(119)=> -74, chr(121)=> -74, chr(146)=> -74, ), chr(70)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -91, ), chr(76)=> array ( chr(84)=> -18, chr(86)=> -37, chr(87)=> -37, chr(89)=> -37, chr(121)=> -37, chr(146)=> -55, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -74, ), chr(82)=> array ( chr(86)=> -18, chr(87)=> -18, chr(89)=> -18, chr(121)=> -18, ), chr(84)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -74, chr(65)=> -55, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -37, chr(111)=> -91, chr(114)=> -37, chr(115)=> -91, chr(117)=> -37, chr(119)=> -37, chr(121)=> -37, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -74, chr(65)=> -74, chr(97)=> -110, chr(101)=> -110, chr(105)=> -55, chr(111)=> -110, chr(114)=> -55, chr(117)=> -55, chr(121)=> -74, ), chr(87)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -55, chr(65)=> -74, chr(97)=> -74, chr(101)=> -74, chr(105)=> -37, chr(111)=> -74, chr(114)=> -74, chr(117)=> -55, chr(121)=> -55, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -74, chr(58)=> -91, chr(65)=> -74, chr(97)=> -91, chr(101)=> -110, chr(105)=> -55, chr(111)=> -110, chr(112)=> -74, chr(113)=> -110, chr(117)=> -91, chr(118)=> -91, ), chr(102)=> array ( chr(102)=> -18, chr(146)=> 55, ), chr(114)=> array ( chr(44)=> -55, chr(46)=> -55, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(119)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(121)=> array ( chr(44)=> -37, chr(46)=> -37, ), chr(145)=> array ( chr(145)=> -74, ), chr(146)=> array ( chr(115)=> -74, chr(116)=> -37, chr(146)=> -74, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
chr(0)=>250,chr(1)=>250,chr(2)=>250,chr(3)=>250,chr(4)=>250,chr(5)=>250,chr(6)=>250,chr(7)=>250,chr(8)=>250,chr(9)=>250,chr(10)=>250,chr(11)=>250,chr(12)=>250,chr(13)=>250,chr(14)=>250,chr(15)=>250,chr(16)=>250,chr(17)=>250,chr(18)=>250,chr(19)=>250,chr(20)=>250,chr(21)=>250,
|
||||||
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
|
chr(22)=>250,chr(23)=>250,chr(24)=>250,chr(25)=>250,chr(26)=>250,chr(27)=>250,chr(28)=>250,chr(29)=>250,chr(30)=>250,chr(31)=>250,' '=>250,'!'=>333,'"'=>420,'#'=>500,'$'=>500,'%'=>833,'&'=>778,'\''=>214,'('=>333,')'=>333,'*'=>500,'+'=>675,
|
||||||
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
|
','=>250,'-'=>333,'.'=>250,'/'=>278,'0'=>500,'1'=>500,'2'=>500,'3'=>500,'4'=>500,'5'=>500,'6'=>500,'7'=>500,'8'=>500,'9'=>500,':'=>333,';'=>333,'<'=>675,'='=>675,'>'=>675,'?'=>500,'@'=>920,'A'=>611,
|
||||||
'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
|
'B'=>611,'C'=>667,'D'=>722,'E'=>611,'F'=>611,'G'=>722,'H'=>722,'I'=>333,'J'=>444,'K'=>667,'L'=>556,'M'=>833,'N'=>667,'O'=>722,'P'=>611,'Q'=>722,'R'=>611,'S'=>500,'T'=>556,'U'=>722,'V'=>611,'W'=>833,
|
||||||
'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
|
'X'=>611,'Y'=>556,'Z'=>556,'['=>389,'\\'=>278,']'=>389,'^'=>422,'_'=>500,'`'=>333,'a'=>500,'b'=>500,'c'=>444,'d'=>500,'e'=>444,'f'=>278,'g'=>500,'h'=>500,'i'=>278,'j'=>278,'k'=>444,'l'=>278,'m'=>722,
|
||||||
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
'n'=>500,'o'=>500,'p'=>500,'q'=>500,'r'=>389,'s'=>389,'t'=>278,'u'=>500,'v'=>444,'w'=>667,'x'=>444,'y'=>444,'z'=>389,'{'=>400,'|'=>275,'}'=>400,'~'=>541,chr(127)=>350,chr(128)=>500,chr(129)=>350,chr(130)=>333,chr(131)=>500,
|
||||||
chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,
|
chr(132)=>556,chr(133)=>889,chr(134)=>500,chr(135)=>500,chr(136)=>333,chr(137)=>1000,chr(138)=>500,chr(139)=>333,chr(140)=>944,chr(141)=>350,chr(142)=>556,chr(143)=>350,chr(144)=>350,chr(145)=>333,chr(146)=>333,chr(147)=>556,chr(148)=>556,chr(149)=>350,chr(150)=>500,chr(151)=>889,chr(152)=>333,chr(153)=>980,
|
||||||
chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
chr(154)=>389,chr(155)=>333,chr(156)=>667,chr(157)=>350,chr(158)=>389,chr(159)=>556,chr(160)=>250,chr(161)=>389,chr(162)=>500,chr(163)=>500,chr(164)=>500,chr(165)=>500,chr(166)=>275,chr(167)=>500,chr(168)=>333,chr(169)=>760,chr(170)=>276,chr(171)=>500,chr(172)=>675,chr(173)=>333,chr(174)=>760,chr(175)=>333,
|
||||||
chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,
|
chr(176)=>400,chr(177)=>675,chr(178)=>300,chr(179)=>300,chr(180)=>333,chr(181)=>500,chr(182)=>523,chr(183)=>250,chr(184)=>333,chr(185)=>300,chr(186)=>310,chr(187)=>500,chr(188)=>750,chr(189)=>750,chr(190)=>750,chr(191)=>500,chr(192)=>611,chr(193)=>611,chr(194)=>611,chr(195)=>611,chr(196)=>611,chr(197)=>611,
|
||||||
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
chr(198)=>889,chr(199)=>667,chr(200)=>611,chr(201)=>611,chr(202)=>611,chr(203)=>611,chr(204)=>333,chr(205)=>333,chr(206)=>333,chr(207)=>333,chr(208)=>722,chr(209)=>667,chr(210)=>722,chr(211)=>722,chr(212)=>722,chr(213)=>722,chr(214)=>722,chr(215)=>675,chr(216)=>722,chr(217)=>722,chr(218)=>722,chr(219)=>722,
|
||||||
chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
chr(220)=>722,chr(221)=>556,chr(222)=>611,chr(223)=>500,chr(224)=>500,chr(225)=>500,chr(226)=>500,chr(227)=>500,chr(228)=>500,chr(229)=>500,chr(230)=>667,chr(231)=>444,chr(232)=>444,chr(233)=>444,chr(234)=>444,chr(235)=>444,chr(236)=>278,chr(237)=>278,chr(238)=>278,chr(239)=>278,chr(240)=>500,chr(241)=>500,
|
||||||
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
chr(242)=>500,chr(243)=>500,chr(244)=>500,chr(245)=>500,chr(246)=>500,chr(247)=>675,chr(248)=>500,chr(249)=>500,chr(250)=>500,chr(251)=>500,chr(252)=>500,chr(253)=>444,chr(254)=>500,chr(255)=>444);
|
||||||
|
|
||||||
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>653,'FontBBox'=>'[-169 -217 1010 883]');
|
$desc=array('Ascent'=>683,'Descent'=>-217,'CapHeight'=>653,'FontBBox'=>'[-169 -217 1010 883]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -37, chr(86)=> -49, chr(87)=> -37, chr(89)=> -55, chr(118)=> -55, chr(119)=> -55, chr(121)=> -55, chr(146)=> -37, ), chr(70)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -128, ), chr(76)=> array ( chr(84)=> -20, chr(86)=> -37, chr(87)=> -37, chr(89)=> -20, chr(121)=> -29, chr(146)=> -37, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -128, ), chr(82)=> array ( chr(84)=> 0, chr(86)=> -18, chr(87)=> -18, chr(89)=> -18, chr(121)=> -18, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -55, chr(65)=> -74, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -55, chr(111)=> -91, chr(114)=> -55, chr(115)=> -91, chr(117)=> -55, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -64, chr(65)=> -74, chr(79)=> -29, chr(97)=> -110, chr(101)=> -110, chr(105)=> -74, chr(111)=> -110, chr(114)=> -74, chr(117)=> -74, chr(121)=> -91, ), chr(87)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -64, chr(65)=> -69, chr(97)=> -91, chr(101)=> -91, chr(105)=> -55, chr(111)=> -91, chr(114)=> -55, chr(117)=> -55, chr(121)=> -91, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -64, chr(65)=> -69, chr(97)=> -91, chr(101)=> -91, chr(105)=> -74, chr(111)=> -91, chr(112)=> -91, chr(113)=> -110, chr(117)=> -91, chr(118)=> -91, ), chr(102)=> array ( chr(146)=> 91, ), chr(114)=> array ( chr(44)=> -110, chr(46)=> -110, chr(99)=> -37, chr(100)=> -37, chr(101)=> -37, chr(103)=> -37, chr(104)=> -18, chr(111)=> -37, chr(113)=> -37, chr(114)=> 0, chr(116)=> 0, chr(117)=> 0, chr(118)=> 0, chr(119)=> 0, chr(120)=> 0, chr(121)=> 0, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(121)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(145)=> array ( chr(145)=> -110, ), chr(146)=> array ( chr(115)=> -128, chr(116)=> -110, chr(146)=> -110, ), );
|
$kerninfo=array ( chr(49)=> array ( chr(49)=> -74, ), chr(65)=> array ( chr(84)=> -37, chr(86)=> -49, chr(87)=> -37, chr(89)=> -55, chr(118)=> -55, chr(119)=> -55, chr(121)=> -55, chr(146)=> -37, ), chr(70)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -128, ), chr(76)=> array ( chr(84)=> -20, chr(86)=> -37, chr(87)=> -37, chr(89)=> -20, chr(121)=> -29, chr(146)=> -37, ), chr(80)=> array ( chr(44)=> -128, chr(46)=> -128, chr(65)=> -128, ), chr(82)=> array ( chr(84)=> 0, chr(86)=> -18, chr(87)=> -18, chr(89)=> -18, chr(121)=> -18, ), chr(84)=> array ( chr(44)=> -74, chr(46)=> -74, chr(58)=> -55, chr(65)=> -74, chr(79)=> -18, chr(97)=> -91, chr(99)=> -91, chr(101)=> -91, chr(105)=> -55, chr(111)=> -91, chr(114)=> -55, chr(115)=> -91, chr(117)=> -55, chr(119)=> -74, chr(121)=> -74, ), chr(86)=> array ( chr(44)=> -128, chr(46)=> -128, chr(58)=> -64, chr(65)=> -74, chr(79)=> -29, chr(97)=> -110, chr(101)=> -110, chr(105)=> -74, chr(111)=> -110, chr(114)=> -74, chr(117)=> -74, chr(121)=> -91, ), chr(87)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -64, chr(65)=> -69, chr(97)=> -91, chr(101)=> -91, chr(105)=> -55, chr(111)=> -91, chr(114)=> -55, chr(117)=> -55, chr(121)=> -91, ), chr(89)=> array ( chr(44)=> -91, chr(46)=> -91, chr(58)=> -64, chr(65)=> -69, chr(97)=> -91, chr(101)=> -91, chr(105)=> -74, chr(111)=> -91, chr(112)=> -91, chr(113)=> -110, chr(117)=> -91, chr(118)=> -91, ), chr(102)=> array ( chr(146)=> 91, ), chr(114)=> array ( chr(44)=> -110, chr(46)=> -110, chr(99)=> -37, chr(100)=> -37, chr(101)=> -37, chr(103)=> -37, chr(104)=> -18, chr(111)=> -37, chr(113)=> -37, chr(114)=> 0, chr(116)=> 0, chr(117)=> 0, chr(118)=> 0, chr(119)=> 0, chr(120)=> 0, chr(121)=> 0, chr(146)=> 37, ), chr(118)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(119)=> array ( chr(44)=> -74, chr(46)=> -74, ), chr(121)=> array ( chr(44)=> -55, chr(46)=> -55, ), chr(145)=> array ( chr(145)=> -110, ), chr(146)=> array ( chr(115)=> -128, chr(116)=> -110, chr(146)=> -110, ), );
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,21 +1,21 @@
|
|||||||
<?php
|
<?php
|
||||||
$cw=array(
|
$cw=array(
|
||||||
chr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,
|
chr(0)=>0,chr(1)=>0,chr(2)=>0,chr(3)=>0,chr(4)=>0,chr(5)=>0,chr(6)=>0,chr(7)=>0,chr(8)=>0,chr(9)=>0,chr(10)=>0,chr(11)=>0,chr(12)=>0,chr(13)=>0,chr(14)=>0,chr(15)=>0,chr(16)=>0,chr(17)=>0,chr(18)=>0,chr(19)=>0,chr(20)=>0,chr(21)=>0,
|
||||||
chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
|
chr(22)=>0,chr(23)=>0,chr(24)=>0,chr(25)=>0,chr(26)=>0,chr(27)=>0,chr(28)=>0,chr(29)=>0,chr(30)=>0,chr(31)=>0,' '=>278,'!'=>974,'"'=>961,'#'=>974,'$'=>980,'%'=>719,'&'=>789,'\''=>790,'('=>791,')'=>690,'*'=>960,'+'=>939,
|
||||||
','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
|
','=>549,'-'=>855,'.'=>911,'/'=>933,'0'=>911,'1'=>945,'2'=>974,'3'=>755,'4'=>846,'5'=>762,'6'=>761,'7'=>571,'8'=>677,'9'=>763,':'=>760,';'=>759,'<'=>754,'='=>494,'>'=>552,'?'=>537,'@'=>577,'A'=>692,
|
||||||
'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
|
'B'=>786,'C'=>788,'D'=>788,'E'=>790,'F'=>793,'G'=>794,'H'=>816,'I'=>823,'J'=>789,'K'=>841,'L'=>823,'M'=>833,'N'=>816,'O'=>831,'P'=>923,'Q'=>744,'R'=>723,'S'=>749,'T'=>790,'U'=>792,'V'=>695,'W'=>776,
|
||||||
'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
|
'X'=>768,'Y'=>792,'Z'=>759,'['=>707,'\\'=>708,']'=>682,'^'=>701,'_'=>826,'`'=>815,'a'=>789,'b'=>789,'c'=>707,'d'=>687,'e'=>696,'f'=>689,'g'=>786,'h'=>787,'i'=>713,'j'=>791,'k'=>785,'l'=>791,'m'=>873,
|
||||||
'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,
|
'n'=>761,'o'=>762,'p'=>762,'q'=>759,'r'=>759,'s'=>892,'t'=>892,'u'=>788,'v'=>784,'w'=>438,'x'=>138,'y'=>277,'z'=>415,'{'=>392,'|'=>392,'}'=>668,'~'=>668,chr(127)=>0,chr(128)=>390,chr(129)=>390,chr(130)=>317,chr(131)=>317,
|
||||||
chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
chr(132)=>276,chr(133)=>276,chr(134)=>509,chr(135)=>509,chr(136)=>410,chr(137)=>410,chr(138)=>234,chr(139)=>234,chr(140)=>334,chr(141)=>334,chr(142)=>0,chr(143)=>0,chr(144)=>0,chr(145)=>0,chr(146)=>0,chr(147)=>0,chr(148)=>0,chr(149)=>0,chr(150)=>0,chr(151)=>0,chr(152)=>0,chr(153)=>0,
|
||||||
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,
|
chr(154)=>0,chr(155)=>0,chr(156)=>0,chr(157)=>0,chr(158)=>0,chr(159)=>0,chr(160)=>0,chr(161)=>732,chr(162)=>544,chr(163)=>544,chr(164)=>910,chr(165)=>667,chr(166)=>760,chr(167)=>760,chr(168)=>776,chr(169)=>595,chr(170)=>694,chr(171)=>626,chr(172)=>788,chr(173)=>788,chr(174)=>788,chr(175)=>788,
|
||||||
chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,
|
chr(176)=>788,chr(177)=>788,chr(178)=>788,chr(179)=>788,chr(180)=>788,chr(181)=>788,chr(182)=>788,chr(183)=>788,chr(184)=>788,chr(185)=>788,chr(186)=>788,chr(187)=>788,chr(188)=>788,chr(189)=>788,chr(190)=>788,chr(191)=>788,chr(192)=>788,chr(193)=>788,chr(194)=>788,chr(195)=>788,chr(196)=>788,chr(197)=>788,
|
||||||
chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,
|
chr(198)=>788,chr(199)=>788,chr(200)=>788,chr(201)=>788,chr(202)=>788,chr(203)=>788,chr(204)=>788,chr(205)=>788,chr(206)=>788,chr(207)=>788,chr(208)=>788,chr(209)=>788,chr(210)=>788,chr(211)=>788,chr(212)=>894,chr(213)=>838,chr(214)=>1016,chr(215)=>458,chr(216)=>748,chr(217)=>924,chr(218)=>748,chr(219)=>918,
|
||||||
chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,
|
chr(220)=>927,chr(221)=>928,chr(222)=>928,chr(223)=>834,chr(224)=>873,chr(225)=>828,chr(226)=>924,chr(227)=>924,chr(228)=>917,chr(229)=>930,chr(230)=>931,chr(231)=>463,chr(232)=>883,chr(233)=>836,chr(234)=>836,chr(235)=>867,chr(236)=>867,chr(237)=>696,chr(238)=>696,chr(239)=>874,chr(240)=>0,chr(241)=>874,
|
||||||
chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);
|
chr(242)=>760,chr(243)=>946,chr(244)=>771,chr(245)=>865,chr(246)=>771,chr(247)=>888,chr(248)=>967,chr(249)=>888,chr(250)=>831,chr(251)=>873,chr(252)=>927,chr(253)=>970,chr(254)=>918,chr(255)=>0);
|
||||||
|
|
||||||
$desc=array('FontBBox'=>'[-1 -143 981 820]');
|
$desc=array('FontBBox'=>'[-1 -143 981 820]');
|
||||||
$up=-100;
|
$up=-100;
|
||||||
$ut=50;
|
$ut=50;
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,2 +1,2 @@
|
|||||||
This is just a placeholder file so that the folder is created on install.
|
This is just a placeholder file so that the folder is created on install.
|
||||||
It can be deleted once installed.
|
It can be deleted once installed.
|
@@ -1,101 +1,101 @@
|
|||||||
<?php
|
<?php
|
||||||
// mPDF 2.5
|
// mPDF 2.5
|
||||||
|
|
||||||
// BIG 5
|
// BIG 5
|
||||||
$cw = array(
|
$cw = array(
|
||||||
32 => 250, 33 => 250, 34 => 408, 35 => 668, 36 => 490, 37 => 875, 38 => 698, 39 => 250, 40 => 240, 41 => 240,
|
32 => 250, 33 => 250, 34 => 408, 35 => 668, 36 => 490, 37 => 875, 38 => 698, 39 => 250, 40 => 240, 41 => 240,
|
||||||
42 => 417, 43 => 667, 44 => 250, 45 => 313, 46 => 250, 47 => 520, 48 => 500, 49 => 500, 50 => 500, 51 => 500,
|
42 => 417, 43 => 667, 44 => 250, 45 => 313, 46 => 250, 47 => 520, 48 => 500, 49 => 500, 50 => 500, 51 => 500,
|
||||||
52 => 500, 53 => 500, 54 => 500, 55 => 500, 56 => 500, 57 => 500, 58 => 250, 59 => 250, 60 => 667, 61 => 667,
|
52 => 500, 53 => 500, 54 => 500, 55 => 500, 56 => 500, 57 => 500, 58 => 250, 59 => 250, 60 => 667, 61 => 667,
|
||||||
62 => 667, 63 => 396, 64 => 921, 65 => 677, 66 => 615, 67 => 719, 68 => 760, 69 => 625, 70 => 552, 71 => 771,
|
62 => 667, 63 => 396, 64 => 921, 65 => 677, 66 => 615, 67 => 719, 68 => 760, 69 => 625, 70 => 552, 71 => 771,
|
||||||
72 => 802, 73 => 354, 74 => 354, 75 => 781, 76 => 604, 77 => 927, 78 => 750, 79 => 823, 80 => 563, 81 => 823,
|
72 => 802, 73 => 354, 74 => 354, 75 => 781, 76 => 604, 77 => 927, 78 => 750, 79 => 823, 80 => 563, 81 => 823,
|
||||||
82 => 729, 83 => 542, 84 => 698, 85 => 771, 86 => 729, 87 => 948, 88 => 771, 89 => 677, 90 => 635, 91 => 344,
|
82 => 729, 83 => 542, 84 => 698, 85 => 771, 86 => 729, 87 => 948, 88 => 771, 89 => 677, 90 => 635, 91 => 344,
|
||||||
92 => 520, 93 => 344, 94 => 469, 95 => 500, 96 => 250, 97 => 469, 98 => 521, 99 => 427, 100 => 521, 101 => 438,
|
92 => 520, 93 => 344, 94 => 469, 95 => 500, 96 => 250, 97 => 469, 98 => 521, 99 => 427, 100 => 521, 101 => 438,
|
||||||
102 => 271, 103 => 469, 104 => 531, 105 => 250, 106 => 250, 107 => 458, 108 => 240, 109 => 802, 110 => 531, 111 => 500,
|
102 => 271, 103 => 469, 104 => 531, 105 => 250, 106 => 250, 107 => 458, 108 => 240, 109 => 802, 110 => 531, 111 => 500,
|
||||||
112 => 521, 113 => 521, 114 => 365, 115 => 333, 116 => 292, 117 => 521, 118 => 458, 119 => 677, 120 => 479, 121 => 458,
|
112 => 521, 113 => 521, 114 => 365, 115 => 333, 116 => 292, 117 => 521, 118 => 458, 119 => 677, 120 => 479, 121 => 458,
|
||||||
122 => 427, 123 => 480, 124 => 496, 125 => 480, 126 => 667,
|
122 => 427, 123 => 480, 124 => 496, 125 => 480, 126 => 667,
|
||||||
17601 => 500,
|
17601 => 500,
|
||||||
);
|
);
|
||||||
$this->Big5_widths=$cw;
|
$this->Big5_widths=$cw;
|
||||||
|
|
||||||
|
|
||||||
// GB
|
// GB
|
||||||
$cw = array(
|
$cw = array(
|
||||||
32 => 207, 33 => 270, 34 => 342, 35 => 467, 36 => 462, 37 => 797, 38 => 710, 39 => 239, 40 => 374, 41 => 374,
|
32 => 207, 33 => 270, 34 => 342, 35 => 467, 36 => 462, 37 => 797, 38 => 710, 39 => 239, 40 => 374, 41 => 374,
|
||||||
42 => 423, 43 => 605, 44 => 238, 45 => 375, 46 => 238, 47 => 334, 48 => 462, 49 => 462, 50 => 462, 51 => 462,
|
42 => 423, 43 => 605, 44 => 238, 45 => 375, 46 => 238, 47 => 334, 48 => 462, 49 => 462, 50 => 462, 51 => 462,
|
||||||
52 => 462, 53 => 462, 54 => 462, 55 => 462, 56 => 462, 57 => 462, 58 => 238, 59 => 238, 60 => 605, 61 => 605,
|
52 => 462, 53 => 462, 54 => 462, 55 => 462, 56 => 462, 57 => 462, 58 => 238, 59 => 238, 60 => 605, 61 => 605,
|
||||||
62 => 605, 63 => 344, 64 => 748, 65 => 684, 66 => 560, 67 => 695, 68 => 739, 69 => 563, 70 => 511, 71 => 729,
|
62 => 605, 63 => 344, 64 => 748, 65 => 684, 66 => 560, 67 => 695, 68 => 739, 69 => 563, 70 => 511, 71 => 729,
|
||||||
72 => 793, 73 => 318, 74 => 312, 75 => 666, 76 => 526, 77 => 896, 78 => 758, 79 => 772, 80 => 544, 81 => 772,
|
72 => 793, 73 => 318, 74 => 312, 75 => 666, 76 => 526, 77 => 896, 78 => 758, 79 => 772, 80 => 544, 81 => 772,
|
||||||
82 => 628, 83 => 465, 84 => 607, 85 => 753, 86 => 711, 87 => 972, 88 => 647, 89 => 620, 90 => 607, 91 => 374,
|
82 => 628, 83 => 465, 84 => 607, 85 => 753, 86 => 711, 87 => 972, 88 => 647, 89 => 620, 90 => 607, 91 => 374,
|
||||||
92 => 333, 93 => 374, 94 => 606, 95 => 500, 96 => 239, 97 => 417, 98 => 503, 99 => 427, 100 => 529, 101 => 415,
|
92 => 333, 93 => 374, 94 => 606, 95 => 500, 96 => 239, 97 => 417, 98 => 503, 99 => 427, 100 => 529, 101 => 415,
|
||||||
102 => 264, 103 => 444, 104 => 518, 105 => 241, 106 => 230, 107 => 495, 108 => 228, 109 => 793, 110 => 527, 111 => 524,
|
102 => 264, 103 => 444, 104 => 518, 105 => 241, 106 => 230, 107 => 495, 108 => 228, 109 => 793, 110 => 527, 111 => 524,
|
||||||
112 => 524, 113 => 504, 114 => 338, 115 => 336, 116 => 277, 117 => 517, 118 => 450, 119 => 652, 120 => 466, 121 => 452,
|
112 => 524, 113 => 504, 114 => 338, 115 => 336, 116 => 277, 117 => 517, 118 => 450, 119 => 652, 120 => 466, 121 => 452,
|
||||||
122 => 407, 123 => 370, 124 => 258, 125 => 370, 126 => 605,
|
122 => 407, 123 => 370, 124 => 258, 125 => 370, 126 => 605,
|
||||||
);
|
);
|
||||||
$this->GB_widths=$cw;
|
$this->GB_widths=$cw;
|
||||||
|
|
||||||
// Japanese
|
// Japanese
|
||||||
$cw = array(
|
$cw = array(
|
||||||
32 => 278, 33 => 299, 34 => 353, 35 => 614, 36 => 614, 37 => 721, 38 => 735, 39 => 216, 40 => 323, 41 => 323,
|
32 => 278, 33 => 299, 34 => 353, 35 => 614, 36 => 614, 37 => 721, 38 => 735, 39 => 216, 40 => 323, 41 => 323,
|
||||||
42 => 449, 43 => 529, 44 => 219, 45 => 306, 46 => 219, 47 => 453, 48 => 614, 49 => 614, 50 => 614, 51 => 614,
|
42 => 449, 43 => 529, 44 => 219, 45 => 306, 46 => 219, 47 => 453, 48 => 614, 49 => 614, 50 => 614, 51 => 614,
|
||||||
52 => 614, 53 => 614, 54 => 614, 55 => 614, 56 => 614, 57 => 614, 58 => 219, 59 => 219, 60 => 529, 61 => 529,
|
52 => 614, 53 => 614, 54 => 614, 55 => 614, 56 => 614, 57 => 614, 58 => 219, 59 => 219, 60 => 529, 61 => 529,
|
||||||
62 => 529, 63 => 486, 64 => 744, 65 => 646, 66 => 604, 67 => 617, 68 => 681, 69 => 567, 70 => 537, 71 => 647,
|
62 => 529, 63 => 486, 64 => 744, 65 => 646, 66 => 604, 67 => 617, 68 => 681, 69 => 567, 70 => 537, 71 => 647,
|
||||||
72 => 738, 73 => 320, 74 => 433, 75 => 637, 76 => 566, 77 => 904, 78 => 710, 79 => 716, 80 => 605, 81 => 716,
|
72 => 738, 73 => 320, 74 => 433, 75 => 637, 76 => 566, 77 => 904, 78 => 710, 79 => 716, 80 => 605, 81 => 716,
|
||||||
82 => 623, 83 => 517, 84 => 601, 85 => 690, 86 => 668, 87 => 990, 88 => 681, 89 => 634, 90 => 578, 91 => 316,
|
82 => 623, 83 => 517, 84 => 601, 85 => 690, 86 => 668, 87 => 990, 88 => 681, 89 => 634, 90 => 578, 91 => 316,
|
||||||
92 => 614, 93 => 316, 94 => 529, 95 => 500, 96 => 387, 97 => 509, 98 => 566, 99 => 478, 100 => 565, 101 => 503,
|
92 => 614, 93 => 316, 94 => 529, 95 => 500, 96 => 387, 97 => 509, 98 => 566, 99 => 478, 100 => 565, 101 => 503,
|
||||||
102 => 337, 103 => 549, 104 => 580, 105 => 275, 106 => 266, 107 => 544, 108 => 276, 109 => 854, 110 => 579, 111 => 550,
|
102 => 337, 103 => 549, 104 => 580, 105 => 275, 106 => 266, 107 => 544, 108 => 276, 109 => 854, 110 => 579, 111 => 550,
|
||||||
112 => 578, 113 => 566, 114 => 410, 115 => 444, 116 => 340, 117 => 575, 118 => 512, 119 => 760, 120 => 503, 121 => 529,
|
112 => 578, 113 => 566, 114 => 410, 115 => 444, 116 => 340, 117 => 575, 118 => 512, 119 => 760, 120 => 503, 121 => 529,
|
||||||
122 => 453, 123 => 326, 124 => 380, 125 => 326, 126 => 387, 127 => 216, 128 => 453, 129 => 216, 130 => 380, 131 => 529,
|
122 => 453, 123 => 326, 124 => 380, 125 => 326, 126 => 387, 127 => 216, 128 => 453, 129 => 216, 130 => 380, 131 => 529,
|
||||||
132 => 299, 133 => 614, 134 => 614, 135 => 265, 136 => 614, 137 => 475, 138 => 614, 139 => 353, 140 => 451, 141 => 291,
|
132 => 299, 133 => 614, 134 => 614, 135 => 265, 136 => 614, 137 => 475, 138 => 614, 139 => 353, 140 => 451, 141 => 291,
|
||||||
142 => 291, 143 => 588, 144 => 589, 145 => 500, 146 => 476, 147 => 476, 148 => 219, 149 => 494, 150 => 452, 151 => 216,
|
142 => 291, 143 => 588, 144 => 589, 145 => 500, 146 => 476, 147 => 476, 148 => 219, 149 => 494, 150 => 452, 151 => 216,
|
||||||
152 => 353, 153 => 353, 154 => 451, 156 => 1075, 157 => 486, 158 => 387, 159 => 387, 160 => 387, 161 => 387,
|
152 => 353, 153 => 353, 154 => 451, 156 => 1075, 157 => 486, 158 => 387, 159 => 387, 160 => 387, 161 => 387,
|
||||||
162 => 387, 163 => 387, 164 => 387, 165 => 387, 166 => 387, 167 => 387, 168 => 387, 170 => 880, 171 => 448,
|
162 => 387, 163 => 387, 164 => 387, 165 => 387, 166 => 387, 167 => 387, 168 => 387, 170 => 880, 171 => 448,
|
||||||
172 => 566, 173 => 716, 174 => 903, 175 => 460, 176 => 805, 177 => 275, 178 => 276, 179 => 550, 180 => 886, 181 => 582,
|
172 => 566, 173 => 716, 174 => 903, 175 => 460, 176 => 805, 177 => 275, 178 => 276, 179 => 550, 180 => 886, 181 => 582,
|
||||||
182 => 529, 183 => 738, 184 => 529, 185 => 738, 186 => 357, 187 => 529, 188 => 406, 189 => 406, 190 => 575, 191 => 406,
|
182 => 529, 183 => 738, 184 => 529, 185 => 738, 186 => 357, 187 => 529, 188 => 406, 189 => 406, 190 => 575, 191 => 406,
|
||||||
192 => 934, 193 => 934, 194 => 934, 195 => 646, 196 => 646, 197 => 646, 198 => 646, 199 => 646, 200 => 646, 201 => 617,
|
192 => 934, 193 => 934, 194 => 934, 195 => 646, 196 => 646, 197 => 646, 198 => 646, 199 => 646, 200 => 646, 201 => 617,
|
||||||
202 => 567, 203 => 567, 204 => 567, 205 => 567, 206 => 320, 207 => 320, 208 => 320, 209 => 320, 210 => 681, 211 => 710,
|
202 => 567, 203 => 567, 204 => 567, 205 => 567, 206 => 320, 207 => 320, 208 => 320, 209 => 320, 210 => 681, 211 => 710,
|
||||||
212 => 716, 213 => 716, 214 => 716, 215 => 716, 216 => 716, 217 => 529, 218 => 690, 219 => 690, 220 => 690, 221 => 690,
|
212 => 716, 213 => 716, 214 => 716, 215 => 716, 216 => 716, 217 => 529, 218 => 690, 219 => 690, 220 => 690, 221 => 690,
|
||||||
222 => 634, 223 => 605, 224 => 509, 225 => 509, 226 => 509, 227 => 509, 228 => 509, 229 => 509, 230 => 478, 231 => 503,
|
222 => 634, 223 => 605, 224 => 509, 225 => 509, 226 => 509, 227 => 509, 228 => 509, 229 => 509, 230 => 478, 231 => 503,
|
||||||
232 => 503, 233 => 503, 234 => 503, 235 => 275, 236 => 275, 237 => 275, 238 => 275, 239 => 550, 240 => 579, 241 => 550,
|
232 => 503, 233 => 503, 234 => 503, 235 => 275, 236 => 275, 237 => 275, 238 => 275, 239 => 550, 240 => 579, 241 => 550,
|
||||||
242 => 550, 243 => 550, 244 => 550, 245 => 550, 246 => 529, 247 => 575, 248 => 575, 249 => 575, 250 => 575, 251 => 529,
|
242 => 550, 243 => 550, 244 => 550, 245 => 550, 246 => 529, 247 => 575, 248 => 575, 249 => 575, 250 => 575, 251 => 529,
|
||||||
252 => 578, 253 => 529, 254 => 517, 255 => 634, 256 => 578, 257 => 445, 258 => 444, 259 => 842, 260 => 453, 261 => 614,
|
252 => 578, 253 => 529, 254 => 517, 255 => 634, 256 => 578, 257 => 445, 258 => 444, 259 => 842, 260 => 453, 261 => 614,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$_cr = array(
|
$_cr = array(
|
||||||
array(231, 632, 500), // half-width
|
array(231, 632, 500), // half-width
|
||||||
array(8718, 8718, 500),
|
array(8718, 8718, 500),
|
||||||
array(9738, 9757, 250), // quarter-width
|
array(9738, 9757, 250), // quarter-width
|
||||||
array(9758, 9778, 333), // third-width
|
array(9758, 9778, 333), // third-width
|
||||||
array(12063, 12087, 500),
|
array(12063, 12087, 500),
|
||||||
);
|
);
|
||||||
foreach($_cr as $_r) {
|
foreach($_cr as $_r) {
|
||||||
for($i = $_r[0]; $i <= $_r[1]; $i++) {
|
for($i = $_r[0]; $i <= $_r[1]; $i++) {
|
||||||
$cw[$i+31] = $_r[2];
|
$cw[$i+31] = $_r[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->SJIS_widths=$cw;
|
$this->SJIS_widths=$cw;
|
||||||
|
|
||||||
// Korean
|
// Korean
|
||||||
$cw = array(
|
$cw = array(
|
||||||
32 => 333, 33 => 416, 34 => 416, 35 => 833, 36 => 625, 37 => 916, 38 => 833, 39 => 250, 40 => 500, 41 => 500,
|
32 => 333, 33 => 416, 34 => 416, 35 => 833, 36 => 625, 37 => 916, 38 => 833, 39 => 250, 40 => 500, 41 => 500,
|
||||||
42 => 500, 43 => 833, 44 => 291, 45 => 450, 46 => 291, 47 => 375, 48 => 625, 49 => 625, 50 => 625, 51 => 625,
|
42 => 500, 43 => 833, 44 => 291, 45 => 450, 46 => 291, 47 => 375, 48 => 625, 49 => 625, 50 => 625, 51 => 625,
|
||||||
52 => 625, 53 => 625, 54 => 625, 55 => 625, 56 => 625, 57 => 625, 58 => 333, 59 => 333, 60 => 833, 61 => 833,
|
52 => 625, 53 => 625, 54 => 625, 55 => 625, 56 => 625, 57 => 625, 58 => 333, 59 => 333, 60 => 833, 61 => 833,
|
||||||
62 => 916, 63 => 500, 64 => 1000, 65 => 791, 66 => 708, 67 => 708, 68 => 750, 69 => 708, 70 => 666, 71 => 750,
|
62 => 916, 63 => 500, 64 => 1000, 65 => 791, 66 => 708, 67 => 708, 68 => 750, 69 => 708, 70 => 666, 71 => 750,
|
||||||
72 => 791, 73 => 375, 74 => 500, 75 => 791, 76 => 666, 77 => 916, 78 => 791, 79 => 750, 80 => 666, 81 => 750,
|
72 => 791, 73 => 375, 74 => 500, 75 => 791, 76 => 666, 77 => 916, 78 => 791, 79 => 750, 80 => 666, 81 => 750,
|
||||||
82 => 708, 83 => 666, 84 => 791, 85 => 791, 86 => 750, 87 => 1000, 88 => 708, 89 => 708, 90 => 666, 91 => 500,
|
82 => 708, 83 => 666, 84 => 791, 85 => 791, 86 => 750, 87 => 1000, 88 => 708, 89 => 708, 90 => 666, 91 => 500,
|
||||||
92 => 375, 93 => 500, 94 => 500, 95 => 500, 96 => 333, 97 => 541, 98 => 583, 99 => 541, 100 => 583, 101 => 583,
|
92 => 375, 93 => 500, 94 => 500, 95 => 500, 96 => 333, 97 => 541, 98 => 583, 99 => 541, 100 => 583, 101 => 583,
|
||||||
102 => 375, 103 => 583, 104 => 583, 105 => 291, 106 => 333, 107 => 583, 108 => 291, 109 => 875, 110 => 583, 111 => 583,
|
102 => 375, 103 => 583, 104 => 583, 105 => 291, 106 => 333, 107 => 583, 108 => 291, 109 => 875, 110 => 583, 111 => 583,
|
||||||
112 => 583, 113 => 583, 114 => 458, 115 => 541, 116 => 375, 117 => 583, 118 => 583, 119 => 833, 120 => 625, 121 => 625,
|
112 => 583, 113 => 583, 114 => 458, 115 => 541, 116 => 375, 117 => 583, 118 => 583, 119 => 833, 120 => 625, 121 => 625,
|
||||||
122 => 500, 123 => 583, 124 => 583, 125 => 583, 126 => 750,
|
122 => 500, 123 => 583, 124 => 583, 125 => 583, 126 => 750,
|
||||||
);
|
);
|
||||||
$_cr = array(
|
$_cr = array(
|
||||||
array(8094, 8190, 500)
|
array(8094, 8190, 500)
|
||||||
);
|
);
|
||||||
foreach($_cr as $_r) {
|
foreach($_cr as $_r) {
|
||||||
for($i = $_r[0]; $i <= $_r[1]; $i++) {
|
for($i = $_r[0]; $i <= $_r[1]; $i++) {
|
||||||
$cw[$i+31] = $_r[2];
|
$cw[$i+31] = $_r[2];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$this->UHC_widths=$cw;
|
$this->UHC_widths=$cw;
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,99 +1,99 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
function _strspn($str1, $str2, $start=null, $length=null) {
|
function _strspn($str1, $str2, $start=null, $length=null) {
|
||||||
$numargs = func_num_args();
|
$numargs = func_num_args();
|
||||||
if ($numargs == 2) {
|
if ($numargs == 2) {
|
||||||
return strspn($str1, $str2);
|
return strspn($str1, $str2);
|
||||||
}
|
}
|
||||||
else if ($numargs == 3) {
|
else if ($numargs == 3) {
|
||||||
return strspn($str1, $str2, $start);
|
return strspn($str1, $str2, $start);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return strspn($str1, $str2, $start, $length);
|
return strspn($str1, $str2, $start, $length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function _strcspn($str1, $str2, $start=null, $length=null) {
|
function _strcspn($str1, $str2, $start=null, $length=null) {
|
||||||
$numargs = func_num_args();
|
$numargs = func_num_args();
|
||||||
if ($numargs == 2) {
|
if ($numargs == 2) {
|
||||||
return strcspn($str1, $str2);
|
return strcspn($str1, $str2);
|
||||||
}
|
}
|
||||||
else if ($numargs == 3) {
|
else if ($numargs == 3) {
|
||||||
return strcspn($str1, $str2, $start);
|
return strcspn($str1, $str2, $start);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return strcspn($str1, $str2, $start, $length);
|
return strcspn($str1, $str2, $start, $length);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function _fgets (&$h, $force=false) {
|
function _fgets (&$h, $force=false) {
|
||||||
$startpos = ftell($h);
|
$startpos = ftell($h);
|
||||||
$s = fgets($h, 1024);
|
$s = fgets($h, 1024);
|
||||||
if ($force && preg_match("/^([^\r\n]*[\r\n]{1,2})(.)/",trim($s), $ns)) {
|
if ($force && preg_match("/^([^\r\n]*[\r\n]{1,2})(.)/",trim($s), $ns)) {
|
||||||
$s = $ns[1];
|
$s = $ns[1];
|
||||||
fseek($h,$startpos+strlen($s));
|
fseek($h,$startpos+strlen($s));
|
||||||
}
|
}
|
||||||
return $s;
|
return $s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// For PHP4 compatability
|
// For PHP4 compatability
|
||||||
if(!function_exists('str_ireplace')) {
|
if(!function_exists('str_ireplace')) {
|
||||||
function str_ireplace($search,$replace,$subject) {
|
function str_ireplace($search,$replace,$subject) {
|
||||||
$search = preg_quote($search, "/");
|
$search = preg_quote($search, "/");
|
||||||
return preg_replace("/".$search."/i", $replace, $subject);
|
return preg_replace("/".$search."/i", $replace, $subject);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!function_exists('htmlspecialchars_decode')) {
|
if(!function_exists('htmlspecialchars_decode')) {
|
||||||
function htmlspecialchars_decode ($str) {
|
function htmlspecialchars_decode ($str) {
|
||||||
return strtr($str, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
|
return strtr($str, array_flip(get_html_translation_table(HTML_SPECIALCHARS)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function PreparePreText($text,$ff='//FF//') {
|
function PreparePreText($text,$ff='//FF//') {
|
||||||
// mPDF 5.0.053
|
// mPDF 5.0.053
|
||||||
$text = htmlspecialchars($text);
|
$text = htmlspecialchars($text);
|
||||||
if ($ff) { $text = str_replace($ff,'</pre><formfeed /><pre>',$text); }
|
if ($ff) { $text = str_replace($ff,'</pre><formfeed /><pre>',$text); }
|
||||||
return ('<pre>'.$text.'</pre>');
|
return ('<pre>'.$text.'</pre>');
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!function_exists('strcode2utf')){
|
if(!function_exists('strcode2utf')){
|
||||||
function strcode2utf($str,$lo=true) {
|
function strcode2utf($str,$lo=true) {
|
||||||
//converts all the &#nnn; and &#xhhh; in a string to Unicode
|
//converts all the &#nnn; and &#xhhh; in a string to Unicode
|
||||||
if ($lo) { $lo = 1; } else { $lo = 0; }
|
if ($lo) { $lo = 1; } else { $lo = 0; }
|
||||||
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str);
|
$str = preg_replace('/\&\#([0-9]+)\;/me', "code2utf('\\1',{$lo})",$str);
|
||||||
$str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str);
|
$str = preg_replace('/\&\#x([0-9a-fA-F]+)\;/me', "codeHex2utf('\\1',{$lo})",$str);
|
||||||
return $str;
|
return $str;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!function_exists('code2utf')){
|
if(!function_exists('code2utf')){
|
||||||
function code2utf($num,$lo=true){
|
function code2utf($num,$lo=true){
|
||||||
//Returns the utf string corresponding to the unicode value
|
//Returns the utf string corresponding to the unicode value
|
||||||
//added notes - http://uk.php.net/utf8_encode
|
//added notes - http://uk.php.net/utf8_encode
|
||||||
if ($num<128) {
|
if ($num<128) {
|
||||||
if ($lo) return chr($num);
|
if ($lo) return chr($num);
|
||||||
else return '&#'.$num.';'; // i.e. no change
|
else return '&#'.$num.';'; // i.e. no change
|
||||||
}
|
}
|
||||||
if ($num<2048) return chr(($num>>6)+192).chr(($num&63)+128);
|
if ($num<2048) return chr(($num>>6)+192).chr(($num&63)+128);
|
||||||
if ($num<65536) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
|
if ($num<65536) return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
|
||||||
if ($num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128);
|
if ($num<2097152) return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128);
|
||||||
return '?';
|
return '?';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(!function_exists('codeHex2utf')){
|
if(!function_exists('codeHex2utf')){
|
||||||
function codeHex2utf($hex,$lo=true){
|
function codeHex2utf($hex,$lo=true){
|
||||||
$num = hexdec($hex);
|
$num = hexdec($hex);
|
||||||
if (($num<128) && !$lo) return '&#x'.$hex.';'; // i.e. no change
|
if (($num<128) && !$lo) return '&#x'.$hex.';'; // i.e. no change
|
||||||
return code2utf($num,$lo);
|
return code2utf($num,$lo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,394 +1,394 @@
|
|||||||
<?php
|
<?php
|
||||||
$volt = array (
|
$volt = array (
|
||||||
0 =>
|
0 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BCD 200D',
|
'match' => '0BCD 200D',
|
||||||
'replace' => '014B',
|
'replace' => '014B',
|
||||||
),
|
),
|
||||||
1 =>
|
1 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BCD 200C',
|
'match' => '0BCD 200C',
|
||||||
'replace' => 'E002',
|
'replace' => 'E002',
|
||||||
),
|
),
|
||||||
2 =>
|
2 =>
|
||||||
array (
|
array (
|
||||||
'match' => '200D 0BCD',
|
'match' => '200D 0BCD',
|
||||||
'replace' => '014A',
|
'replace' => '014A',
|
||||||
),
|
),
|
||||||
3 =>
|
3 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B95 0BCD 0BB7',
|
'match' => '0B95 0BCD 0BB7',
|
||||||
'replace' => 'E005',
|
'replace' => 'E005',
|
||||||
),
|
),
|
||||||
4 =>
|
4 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB8 0BCD 0BB0 0BC0',
|
'match' => '0BB8 0BCD 0BB0 0BC0',
|
||||||
'replace' => 'E04B',
|
'replace' => 'E04B',
|
||||||
),
|
),
|
||||||
5 =>
|
5 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B93 0BAE 0BCD',
|
'match' => '0B93 0BAE 0BCD',
|
||||||
'replace' => 'E04C',
|
'replace' => 'E04C',
|
||||||
),
|
),
|
||||||
6 =>
|
6 =>
|
||||||
array (
|
array (
|
||||||
'match' => '(0BB8) 0BC1',
|
'match' => '(0BB8) 0BC1',
|
||||||
'replace' => '\\1 E00C',
|
'replace' => '\\1 E00C',
|
||||||
),
|
),
|
||||||
7 =>
|
7 =>
|
||||||
array (
|
array (
|
||||||
'match' => '(0BB8) 0BC2',
|
'match' => '(0BB8) 0BC2',
|
||||||
'replace' => '\\1 E00D',
|
'replace' => '\\1 E00D',
|
||||||
),
|
),
|
||||||
8 =>
|
8 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B95 0BC2',
|
'match' => '0B95 0BC2',
|
||||||
'replace' => 'E00F',
|
'replace' => 'E00F',
|
||||||
),
|
),
|
||||||
9 =>
|
9 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9C 0BC1',
|
'match' => '0B9C 0BC1',
|
||||||
'replace' => 'E014',
|
'replace' => 'E014',
|
||||||
),
|
),
|
||||||
10 =>
|
10 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9C 0BC2',
|
'match' => '0B9C 0BC2',
|
||||||
'replace' => 'E015',
|
'replace' => 'E015',
|
||||||
),
|
),
|
||||||
11 =>
|
11 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9F 0BBF',
|
'match' => '0B9F 0BBF',
|
||||||
'replace' => 'E018',
|
'replace' => 'E018',
|
||||||
),
|
),
|
||||||
12 =>
|
12 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB2 0BBF',
|
'match' => '0BB2 0BBF',
|
||||||
'replace' => 'E033',
|
'replace' => 'E033',
|
||||||
),
|
),
|
||||||
13 =>
|
13 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB7 0BBF',
|
'match' => '0BB7 0BBF',
|
||||||
'replace' => 'E03F',
|
'replace' => 'E03F',
|
||||||
),
|
),
|
||||||
14 =>
|
14 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB7 0BC1',
|
'match' => '0BB7 0BC1',
|
||||||
'replace' => 'E041',
|
'replace' => 'E041',
|
||||||
),
|
),
|
||||||
15 =>
|
15 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB7 0BC2',
|
'match' => '0BB7 0BC2',
|
||||||
'replace' => 'E042',
|
'replace' => 'E042',
|
||||||
),
|
),
|
||||||
16 =>
|
16 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB8 0BBF',
|
'match' => '0BB8 0BBF',
|
||||||
'replace' => 'E043',
|
'replace' => 'E043',
|
||||||
),
|
),
|
||||||
17 =>
|
17 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB9 0BC1',
|
'match' => '0BB9 0BC1',
|
||||||
'replace' => 'E045',
|
'replace' => 'E045',
|
||||||
),
|
),
|
||||||
18 =>
|
18 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB9 0BC2',
|
'match' => '0BB9 0BC2',
|
||||||
'replace' => 'E046',
|
'replace' => 'E046',
|
||||||
),
|
),
|
||||||
19 =>
|
19 =>
|
||||||
array (
|
array (
|
||||||
'match' => 'E005 0BBF',
|
'match' => 'E005 0BBF',
|
||||||
'replace' => 'E047',
|
'replace' => 'E047',
|
||||||
),
|
),
|
||||||
20 =>
|
20 =>
|
||||||
array (
|
array (
|
||||||
'match' => 'E005 0BC1',
|
'match' => 'E005 0BC1',
|
||||||
'replace' => 'E049',
|
'replace' => 'E049',
|
||||||
),
|
),
|
||||||
21 =>
|
21 =>
|
||||||
array (
|
array (
|
||||||
'match' => 'E005 0BC2',
|
'match' => 'E005 0BC2',
|
||||||
'replace' => 'E04A',
|
'replace' => 'E04A',
|
||||||
),
|
),
|
||||||
22 =>
|
22 =>
|
||||||
array (
|
array (
|
||||||
'match' => '((0BAA|0BAF|0B99|0BB5)) 0BC0',
|
'match' => '((0BAA|0BAF|0B99|0BB5)) 0BC0',
|
||||||
'replace' => '\\1 E00B',
|
'replace' => '\\1 E00B',
|
||||||
),
|
),
|
||||||
23 =>
|
23 =>
|
||||||
array (
|
array (
|
||||||
'match' => '((0BAE|0B9A|0BB9|0B9C|0BB4|0BB1)) 0BBF',
|
'match' => '((0BAE|0B9A|0BB9|0B9C|0BB4|0BB1)) 0BBF',
|
||||||
'replace' => '\\1 E006',
|
'replace' => '\\1 E006',
|
||||||
),
|
),
|
||||||
24 =>
|
24 =>
|
||||||
array (
|
array (
|
||||||
'match' => '((0BB0|0BB3|0BA3|0BA9)) 0BBF',
|
'match' => '((0BB0|0BB3|0BA3|0BA9)) 0BBF',
|
||||||
'replace' => '\\1 E007',
|
'replace' => '\\1 E007',
|
||||||
),
|
),
|
||||||
25 =>
|
25 =>
|
||||||
array (
|
array (
|
||||||
'match' => '((0B95|0BA4)) 0BBF',
|
'match' => '((0B95|0BA4)) 0BBF',
|
||||||
'replace' => '\\1 E008',
|
'replace' => '\\1 E008',
|
||||||
),
|
),
|
||||||
26 =>
|
26 =>
|
||||||
array (
|
array (
|
||||||
'match' => '((0BAA|0BAF|0B99|0BB5)) 0BBF',
|
'match' => '((0BAA|0BAF|0B99|0BB5)) 0BBF',
|
||||||
'replace' => '\\1 E009',
|
'replace' => '\\1 E009',
|
||||||
),
|
),
|
||||||
27 =>
|
27 =>
|
||||||
array (
|
array (
|
||||||
'match' => '((0BA8|0B9E)) 0BBF',
|
'match' => '((0BA8|0B9E)) 0BBF',
|
||||||
'replace' => '\\1 E00A',
|
'replace' => '\\1 E00A',
|
||||||
),
|
),
|
||||||
28 =>
|
28 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA3 200C 0BC8',
|
'match' => '0BA3 200C 0BC8',
|
||||||
'replace' => 'E01F',
|
'replace' => 'E01F',
|
||||||
),
|
),
|
||||||
29 =>
|
29 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA9 200C 0BC8',
|
'match' => '0BA9 200C 0BC8',
|
||||||
'replace' => 'E027',
|
'replace' => 'E027',
|
||||||
),
|
),
|
||||||
30 =>
|
30 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB2 200C 0BC8',
|
'match' => '0BB2 200C 0BC8',
|
||||||
'replace' => 'E037',
|
'replace' => 'E037',
|
||||||
),
|
),
|
||||||
31 =>
|
31 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB3 200C 0BC8',
|
'match' => '0BB3 200C 0BC8',
|
||||||
'replace' => 'E03A',
|
'replace' => 'E03A',
|
||||||
),
|
),
|
||||||
32 =>
|
32 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9F 0BC0',
|
'match' => '0B9F 0BC0',
|
||||||
'replace' => 'E019',
|
'replace' => 'E019',
|
||||||
),
|
),
|
||||||
33 =>
|
33 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB2 0BC0',
|
'match' => '0BB2 0BC0',
|
||||||
'replace' => 'E034',
|
'replace' => 'E034',
|
||||||
),
|
),
|
||||||
34 =>
|
34 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB7 0BC0',
|
'match' => '0BB7 0BC0',
|
||||||
'replace' => 'E040',
|
'replace' => 'E040',
|
||||||
),
|
),
|
||||||
35 =>
|
35 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB8 0BC0',
|
'match' => '0BB8 0BC0',
|
||||||
'replace' => 'E044',
|
'replace' => 'E044',
|
||||||
),
|
),
|
||||||
36 =>
|
36 =>
|
||||||
array (
|
array (
|
||||||
'match' => 'E005 0BC0',
|
'match' => 'E005 0BC0',
|
||||||
'replace' => 'E048',
|
'replace' => 'E048',
|
||||||
),
|
),
|
||||||
37 =>
|
37 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B95 0BC1',
|
'match' => '0B95 0BC1',
|
||||||
'replace' => 'E00E',
|
'replace' => 'E00E',
|
||||||
),
|
),
|
||||||
38 =>
|
38 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B99 0BC1',
|
'match' => '0B99 0BC1',
|
||||||
'replace' => 'E010',
|
'replace' => 'E010',
|
||||||
),
|
),
|
||||||
39 =>
|
39 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B99 0BC2',
|
'match' => '0B99 0BC2',
|
||||||
'replace' => 'E011',
|
'replace' => 'E011',
|
||||||
),
|
),
|
||||||
40 =>
|
40 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9A 0BC1',
|
'match' => '0B9A 0BC1',
|
||||||
'replace' => 'E012',
|
'replace' => 'E012',
|
||||||
),
|
),
|
||||||
41 =>
|
41 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9A 0BC2',
|
'match' => '0B9A 0BC2',
|
||||||
'replace' => 'E013',
|
'replace' => 'E013',
|
||||||
),
|
),
|
||||||
42 =>
|
42 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9E 0BC1',
|
'match' => '0B9E 0BC1',
|
||||||
'replace' => 'E016',
|
'replace' => 'E016',
|
||||||
),
|
),
|
||||||
43 =>
|
43 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9E 0BC2',
|
'match' => '0B9E 0BC2',
|
||||||
'replace' => 'E017',
|
'replace' => 'E017',
|
||||||
),
|
),
|
||||||
44 =>
|
44 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9F 0BC1',
|
'match' => '0B9F 0BC1',
|
||||||
'replace' => 'E01A',
|
'replace' => 'E01A',
|
||||||
),
|
),
|
||||||
45 =>
|
45 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0B9F 0BC2',
|
'match' => '0B9F 0BC2',
|
||||||
'replace' => 'E01B',
|
'replace' => 'E01B',
|
||||||
),
|
),
|
||||||
46 =>
|
46 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA3 200C 0BBE',
|
'match' => '0BA3 200C 0BBE',
|
||||||
'replace' => 'E01C',
|
'replace' => 'E01C',
|
||||||
),
|
),
|
||||||
47 =>
|
47 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA3 0BC1',
|
'match' => '0BA3 0BC1',
|
||||||
'replace' => 'E01D',
|
'replace' => 'E01D',
|
||||||
),
|
),
|
||||||
48 =>
|
48 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA3 0BC2',
|
'match' => '0BA3 0BC2',
|
||||||
'replace' => 'E01E',
|
'replace' => 'E01E',
|
||||||
),
|
),
|
||||||
49 =>
|
49 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA4 0BC1',
|
'match' => '0BA4 0BC1',
|
||||||
'replace' => 'E020',
|
'replace' => 'E020',
|
||||||
),
|
),
|
||||||
50 =>
|
50 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA4 0BC2',
|
'match' => '0BA4 0BC2',
|
||||||
'replace' => 'E021',
|
'replace' => 'E021',
|
||||||
),
|
),
|
||||||
51 =>
|
51 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA8 0BC1',
|
'match' => '0BA8 0BC1',
|
||||||
'replace' => 'E022',
|
'replace' => 'E022',
|
||||||
),
|
),
|
||||||
52 =>
|
52 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA8 0BC2',
|
'match' => '0BA8 0BC2',
|
||||||
'replace' => 'E023',
|
'replace' => 'E023',
|
||||||
),
|
),
|
||||||
53 =>
|
53 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA9 200C 0BBE',
|
'match' => '0BA9 200C 0BBE',
|
||||||
'replace' => 'E024',
|
'replace' => 'E024',
|
||||||
),
|
),
|
||||||
54 =>
|
54 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA9 0BC1',
|
'match' => '0BA9 0BC1',
|
||||||
'replace' => 'E025',
|
'replace' => 'E025',
|
||||||
),
|
),
|
||||||
55 =>
|
55 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BA9 0BC2',
|
'match' => '0BA9 0BC2',
|
||||||
'replace' => 'E026',
|
'replace' => 'E026',
|
||||||
),
|
),
|
||||||
56 =>
|
56 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BAA 0BC1',
|
'match' => '0BAA 0BC1',
|
||||||
'replace' => 'E028',
|
'replace' => 'E028',
|
||||||
),
|
),
|
||||||
57 =>
|
57 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BAA 0BC2',
|
'match' => '0BAA 0BC2',
|
||||||
'replace' => 'E029',
|
'replace' => 'E029',
|
||||||
),
|
),
|
||||||
58 =>
|
58 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BAE 0BC1',
|
'match' => '0BAE 0BC1',
|
||||||
'replace' => 'E02A',
|
'replace' => 'E02A',
|
||||||
),
|
),
|
||||||
59 =>
|
59 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BAE 0BC2',
|
'match' => '0BAE 0BC2',
|
||||||
'replace' => 'E02B',
|
'replace' => 'E02B',
|
||||||
),
|
),
|
||||||
60 =>
|
60 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BAF 0BC1',
|
'match' => '0BAF 0BC1',
|
||||||
'replace' => 'E02C',
|
'replace' => 'E02C',
|
||||||
),
|
),
|
||||||
61 =>
|
61 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BAF 0BC2',
|
'match' => '0BAF 0BC2',
|
||||||
'replace' => 'E02D',
|
'replace' => 'E02D',
|
||||||
),
|
),
|
||||||
62 =>
|
62 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB0 0BC1',
|
'match' => '0BB0 0BC1',
|
||||||
'replace' => 'E02E',
|
'replace' => 'E02E',
|
||||||
),
|
),
|
||||||
63 =>
|
63 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB0 0BC2',
|
'match' => '0BB0 0BC2',
|
||||||
'replace' => 'E02F',
|
'replace' => 'E02F',
|
||||||
),
|
),
|
||||||
64 =>
|
64 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB1 200C 0BBE',
|
'match' => '0BB1 200C 0BBE',
|
||||||
'replace' => 'E030',
|
'replace' => 'E030',
|
||||||
),
|
),
|
||||||
65 =>
|
65 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB1 0BC1',
|
'match' => '0BB1 0BC1',
|
||||||
'replace' => 'E031',
|
'replace' => 'E031',
|
||||||
),
|
),
|
||||||
66 =>
|
66 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB1 0BC2',
|
'match' => '0BB1 0BC2',
|
||||||
'replace' => 'E032',
|
'replace' => 'E032',
|
||||||
),
|
),
|
||||||
67 =>
|
67 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB2 0BC1',
|
'match' => '0BB2 0BC1',
|
||||||
'replace' => 'E035',
|
'replace' => 'E035',
|
||||||
),
|
),
|
||||||
68 =>
|
68 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB2 0BC2',
|
'match' => '0BB2 0BC2',
|
||||||
'replace' => 'E036',
|
'replace' => 'E036',
|
||||||
),
|
),
|
||||||
69 =>
|
69 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB3 0BC1',
|
'match' => '0BB3 0BC1',
|
||||||
'replace' => 'E038',
|
'replace' => 'E038',
|
||||||
),
|
),
|
||||||
70 =>
|
70 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB3 0BC2',
|
'match' => '0BB3 0BC2',
|
||||||
'replace' => 'E039',
|
'replace' => 'E039',
|
||||||
),
|
),
|
||||||
71 =>
|
71 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB4 0BC1',
|
'match' => '0BB4 0BC1',
|
||||||
'replace' => 'E03B',
|
'replace' => 'E03B',
|
||||||
),
|
),
|
||||||
72 =>
|
72 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB4 0BC2',
|
'match' => '0BB4 0BC2',
|
||||||
'replace' => 'E03C',
|
'replace' => 'E03C',
|
||||||
),
|
),
|
||||||
73 =>
|
73 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB5 0BC1',
|
'match' => '0BB5 0BC1',
|
||||||
'replace' => 'E03D',
|
'replace' => 'E03D',
|
||||||
),
|
),
|
||||||
74 =>
|
74 =>
|
||||||
array (
|
array (
|
||||||
'match' => '0BB5 0BC2',
|
'match' => '0BB5 0BC2',
|
||||||
'replace' => 'E03E',
|
'replace' => 'E03E',
|
||||||
),
|
),
|
||||||
75 =>
|
75 =>
|
||||||
array (
|
array (
|
||||||
'match' => '014B',
|
'match' => '014B',
|
||||||
'replace' => '0BCD',
|
'replace' => '0BCD',
|
||||||
),
|
),
|
||||||
76 =>
|
76 =>
|
||||||
array (
|
array (
|
||||||
'match' => 'E002',
|
'match' => 'E002',
|
||||||
'replace' => '0BCD',
|
'replace' => '0BCD',
|
||||||
),
|
),
|
||||||
77 =>
|
77 =>
|
||||||
array (
|
array (
|
||||||
'match' => '014A',
|
'match' => '014A',
|
||||||
'replace' => '0BCD',
|
'replace' => '0BCD',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
?>
|
?>
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
@@ -1,58 +1,58 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
|
||||||
$tempfilename = $_REQUEST['filename'].'.pdf';
|
$tempfilename = $_REQUEST['filename'].'.pdf';
|
||||||
$opname = $_REQUEST['opname'];
|
$opname = $_REQUEST['opname'];
|
||||||
$path = urldecode($_REQUEST['path']);
|
$path = urldecode($_REQUEST['path']);
|
||||||
$dest = $_REQUEST['dest'];
|
$dest = $_REQUEST['dest'];
|
||||||
if ($tempfilename && file_exists($path.$tempfilename)) {
|
if ($tempfilename && file_exists($path.$tempfilename)) {
|
||||||
// mPDF 5.3.17
|
// mPDF 5.3.17
|
||||||
if ($dest=='I') {
|
if ($dest=='I') {
|
||||||
if(PHP_SAPI!='cli') {
|
if(PHP_SAPI!='cli') {
|
||||||
header('Content-Type: application/pdf');
|
header('Content-Type: application/pdf');
|
||||||
header('Content-disposition: inline; filename="'.$name.'"');
|
header('Content-disposition: inline; filename="'.$name.'"');
|
||||||
header('Cache-Control: public, must-revalidate, max-age=0');
|
header('Cache-Control: public, must-revalidate, max-age=0');
|
||||||
header('Pragma: public');
|
header('Pragma: public');
|
||||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
||||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if ($dest=='D') {
|
else if ($dest=='D') {
|
||||||
header('Content-Description: File Transfer');
|
header('Content-Description: File Transfer');
|
||||||
if (headers_sent())
|
if (headers_sent())
|
||||||
$this->Error('Some data has already been output to browser, can\'t send PDF file');
|
$this->Error('Some data has already been output to browser, can\'t send PDF file');
|
||||||
header('Content-Transfer-Encoding: binary');
|
header('Content-Transfer-Encoding: binary');
|
||||||
header('Cache-Control: public, must-revalidate, max-age=0');
|
header('Cache-Control: public, must-revalidate, max-age=0');
|
||||||
header('Pragma: public');
|
header('Pragma: public');
|
||||||
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
header('Expires: Sat, 26 Jul 1997 05:00:00 GMT');
|
||||||
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
|
||||||
header('Content-Type: application/force-download');
|
header('Content-Type: application/force-download');
|
||||||
header('Content-Type: application/octet-stream', false);
|
header('Content-Type: application/octet-stream', false);
|
||||||
header('Content-Type: application/download', false);
|
header('Content-Type: application/download', false);
|
||||||
header('Content-Type: application/pdf', false);
|
header('Content-Type: application/pdf', false);
|
||||||
header('Content-disposition: attachment; filename="'.$name.'"');
|
header('Content-disposition: attachment; filename="'.$name.'"');
|
||||||
}
|
}
|
||||||
$filesize = filesize($path.$tempfilename);
|
$filesize = filesize($path.$tempfilename);
|
||||||
if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) {
|
if (!isset($_SERVER['HTTP_ACCEPT_ENCODING']) OR empty($_SERVER['HTTP_ACCEPT_ENCODING'])) {
|
||||||
// don't use length if server using compression
|
// don't use length if server using compression
|
||||||
header('Content-Length: '.$filesize);
|
header('Content-Length: '.$filesize);
|
||||||
}
|
}
|
||||||
$fd=fopen($path.$tempfilename,'rb'); // mPDF 5.3.85
|
$fd=fopen($path.$tempfilename,'rb'); // mPDF 5.3.85
|
||||||
fpassthru($fd);
|
fpassthru($fd);
|
||||||
fclose($fd);
|
fclose($fd);
|
||||||
unlink($path.$tempfilename);
|
unlink($path.$tempfilename);
|
||||||
// ====================== DELETE OLD FILES - Housekeeping =========================================
|
// ====================== DELETE OLD FILES - Housekeeping =========================================
|
||||||
// Clear any files in directory that are >24 hrs old
|
// Clear any files in directory that are >24 hrs old
|
||||||
$interval = 86400;
|
$interval = 86400;
|
||||||
if ($handle = opendir(dirname($path.'dummy'))) {
|
if ($handle = opendir(dirname($path.'dummy'))) {
|
||||||
while (false !== ($file = readdir($handle))) {
|
while (false !== ($file = readdir($handle))) {
|
||||||
if (((filemtime($path.$file)+$interval) < time()) && ($file != "..") && ($file != ".") && substr($file, -3)=='pdf') {
|
if (((filemtime($path.$file)+$interval) < time()) && ($file != "..") && ($file != ".") && substr($file, -3)=='pdf') {
|
||||||
unlink($path.$file);
|
unlink($path.$file);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
closedir($handle);
|
closedir($handle);
|
||||||
}
|
}
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
?>
|
?>
|
@@ -1,454 +1,454 @@
|
|||||||
<?php
|
<?php
|
||||||
$aarr = array(
|
$aarr = array(
|
||||||
160 => 160,
|
160 => 160,
|
||||||
161 => 161,
|
161 => 161,
|
||||||
162 => 162,
|
162 => 162,
|
||||||
163 => 163,
|
163 => 163,
|
||||||
164 => 164,
|
164 => 164,
|
||||||
165 => 165,
|
165 => 165,
|
||||||
166 => 166,
|
166 => 166,
|
||||||
167 => 167,
|
167 => 167,
|
||||||
168 => 168,
|
168 => 168,
|
||||||
169 => 169,
|
169 => 169,
|
||||||
170 => 170,
|
170 => 170,
|
||||||
171 => 171,
|
171 => 171,
|
||||||
172 => 172,
|
172 => 172,
|
||||||
173 => 173,
|
173 => 173,
|
||||||
174 => 174,
|
174 => 174,
|
||||||
175 => 175,
|
175 => 175,
|
||||||
176 => 176,
|
176 => 176,
|
||||||
177 => 177,
|
177 => 177,
|
||||||
178 => 178,
|
178 => 178,
|
||||||
179 => 179,
|
179 => 179,
|
||||||
180 => 180,
|
180 => 180,
|
||||||
181 => 181,
|
181 => 181,
|
||||||
182 => 182,
|
182 => 182,
|
||||||
183 => 183,
|
183 => 183,
|
||||||
184 => 184,
|
184 => 184,
|
||||||
185 => 185,
|
185 => 185,
|
||||||
186 => 186,
|
186 => 186,
|
||||||
187 => 187,
|
187 => 187,
|
||||||
188 => 188,
|
188 => 188,
|
||||||
189 => 189,
|
189 => 189,
|
||||||
190 => 190,
|
190 => 190,
|
||||||
191 => 191,
|
191 => 191,
|
||||||
192 => 192,
|
192 => 192,
|
||||||
193 => 193,
|
193 => 193,
|
||||||
194 => 194,
|
194 => 194,
|
||||||
195 => 195,
|
195 => 195,
|
||||||
196 => 196,
|
196 => 196,
|
||||||
197 => 197,
|
197 => 197,
|
||||||
198 => 198,
|
198 => 198,
|
||||||
199 => 199,
|
199 => 199,
|
||||||
200 => 200,
|
200 => 200,
|
||||||
201 => 201,
|
201 => 201,
|
||||||
202 => 202,
|
202 => 202,
|
||||||
203 => 203,
|
203 => 203,
|
||||||
204 => 204,
|
204 => 204,
|
||||||
205 => 205,
|
205 => 205,
|
||||||
206 => 206,
|
206 => 206,
|
||||||
207 => 207,
|
207 => 207,
|
||||||
208 => 208,
|
208 => 208,
|
||||||
209 => 209,
|
209 => 209,
|
||||||
210 => 210,
|
210 => 210,
|
||||||
211 => 211,
|
211 => 211,
|
||||||
212 => 212,
|
212 => 212,
|
||||||
213 => 213,
|
213 => 213,
|
||||||
214 => 214,
|
214 => 214,
|
||||||
215 => 215,
|
215 => 215,
|
||||||
216 => 216,
|
216 => 216,
|
||||||
217 => 217,
|
217 => 217,
|
||||||
218 => 218,
|
218 => 218,
|
||||||
219 => 219,
|
219 => 219,
|
||||||
220 => 220,
|
220 => 220,
|
||||||
221 => 221,
|
221 => 221,
|
||||||
222 => 222,
|
222 => 222,
|
||||||
223 => 223,
|
223 => 223,
|
||||||
224 => 224,
|
224 => 224,
|
||||||
225 => 225,
|
225 => 225,
|
||||||
226 => 226,
|
226 => 226,
|
||||||
227 => 227,
|
227 => 227,
|
||||||
228 => 228,
|
228 => 228,
|
||||||
229 => 229,
|
229 => 229,
|
||||||
230 => 230,
|
230 => 230,
|
||||||
231 => 231,
|
231 => 231,
|
||||||
232 => 232,
|
232 => 232,
|
||||||
233 => 233,
|
233 => 233,
|
||||||
234 => 234,
|
234 => 234,
|
||||||
235 => 235,
|
235 => 235,
|
||||||
236 => 236,
|
236 => 236,
|
||||||
237 => 237,
|
237 => 237,
|
||||||
238 => 238,
|
238 => 238,
|
||||||
239 => 239,
|
239 => 239,
|
||||||
240 => 240,
|
240 => 240,
|
||||||
241 => 241,
|
241 => 241,
|
||||||
242 => 242,
|
242 => 242,
|
||||||
243 => 243,
|
243 => 243,
|
||||||
244 => 244,
|
244 => 244,
|
||||||
245 => 245,
|
245 => 245,
|
||||||
246 => 246,
|
246 => 246,
|
||||||
247 => 247,
|
247 => 247,
|
||||||
248 => 248,
|
248 => 248,
|
||||||
249 => 249,
|
249 => 249,
|
||||||
250 => 250,
|
250 => 250,
|
||||||
251 => 251,
|
251 => 251,
|
||||||
252 => 252,
|
252 => 252,
|
||||||
253 => 253,
|
253 => 253,
|
||||||
254 => 254,
|
254 => 254,
|
||||||
255 => 255,
|
255 => 255,
|
||||||
338 => 140,
|
338 => 140,
|
||||||
339 => 156,
|
339 => 156,
|
||||||
352 => 138,
|
352 => 138,
|
||||||
353 => 154,
|
353 => 154,
|
||||||
376 => 159,
|
376 => 159,
|
||||||
381 => 142,
|
381 => 142,
|
||||||
382 => 158,
|
382 => 158,
|
||||||
402 => 131,
|
402 => 131,
|
||||||
710 => 136,
|
710 => 136,
|
||||||
732 => 152,
|
732 => 152,
|
||||||
8211 => 150,
|
8211 => 150,
|
||||||
8212 => 151,
|
8212 => 151,
|
||||||
8216 => 145,
|
8216 => 145,
|
||||||
8217 => 146,
|
8217 => 146,
|
||||||
8218 => 130,
|
8218 => 130,
|
||||||
8220 => 147,
|
8220 => 147,
|
||||||
8221 => 148,
|
8221 => 148,
|
||||||
8222 => 132,
|
8222 => 132,
|
||||||
8224 => 134,
|
8224 => 134,
|
||||||
8225 => 135,
|
8225 => 135,
|
||||||
8226 => 149,
|
8226 => 149,
|
||||||
8230 => 133,
|
8230 => 133,
|
||||||
8240 => 137,
|
8240 => 137,
|
||||||
8249 => 139,
|
8249 => 139,
|
||||||
8250 => 155,
|
8250 => 155,
|
||||||
8364 => 128,
|
8364 => 128,
|
||||||
8482 => 153
|
8482 => 153
|
||||||
);
|
);
|
||||||
|
|
||||||
$zarr = array(
|
$zarr = array(
|
||||||
8594 => 213,
|
8594 => 213,
|
||||||
8596 => 214,
|
8596 => 214,
|
||||||
8597 => 215,
|
8597 => 215,
|
||||||
9312 => 172,
|
9312 => 172,
|
||||||
9313 => 173,
|
9313 => 173,
|
||||||
9314 => 174,
|
9314 => 174,
|
||||||
9315 => 175,
|
9315 => 175,
|
||||||
9316 => 176,
|
9316 => 176,
|
||||||
9317 => 177,
|
9317 => 177,
|
||||||
9318 => 178,
|
9318 => 178,
|
||||||
9319 => 179,
|
9319 => 179,
|
||||||
9320 => 180,
|
9320 => 180,
|
||||||
9321 => 181,
|
9321 => 181,
|
||||||
9632 => 110,
|
9632 => 110,
|
||||||
9650 => 115,
|
9650 => 115,
|
||||||
9660 => 116,
|
9660 => 116,
|
||||||
9670 => 117,
|
9670 => 117,
|
||||||
9679 => 108,
|
9679 => 108,
|
||||||
9687 => 119,
|
9687 => 119,
|
||||||
9733 => 72,
|
9733 => 72,
|
||||||
9742 => 37,
|
9742 => 37,
|
||||||
9755 => 42,
|
9755 => 42,
|
||||||
9758 => 43,
|
9758 => 43,
|
||||||
9824 => 171,
|
9824 => 171,
|
||||||
9827 => 168,
|
9827 => 168,
|
||||||
9829 => 170,
|
9829 => 170,
|
||||||
9830 => 169,
|
9830 => 169,
|
||||||
9985 => 33,
|
9985 => 33,
|
||||||
9986 => 34,
|
9986 => 34,
|
||||||
9987 => 35,
|
9987 => 35,
|
||||||
9988 => 36,
|
9988 => 36,
|
||||||
9990 => 38,
|
9990 => 38,
|
||||||
9991 => 39,
|
9991 => 39,
|
||||||
9992 => 40,
|
9992 => 40,
|
||||||
9993 => 41,
|
9993 => 41,
|
||||||
9996 => 44,
|
9996 => 44,
|
||||||
9997 => 45,
|
9997 => 45,
|
||||||
9998 => 46,
|
9998 => 46,
|
||||||
9999 => 47,
|
9999 => 47,
|
||||||
10000 => 48,
|
10000 => 48,
|
||||||
10001 => 49,
|
10001 => 49,
|
||||||
10002 => 50,
|
10002 => 50,
|
||||||
10003 => 51,
|
10003 => 51,
|
||||||
10004 => 52,
|
10004 => 52,
|
||||||
10005 => 53,
|
10005 => 53,
|
||||||
10006 => 54,
|
10006 => 54,
|
||||||
10007 => 55,
|
10007 => 55,
|
||||||
10008 => 56,
|
10008 => 56,
|
||||||
10009 => 57,
|
10009 => 57,
|
||||||
10010 => 58,
|
10010 => 58,
|
||||||
10011 => 59,
|
10011 => 59,
|
||||||
10012 => 60,
|
10012 => 60,
|
||||||
10013 => 61,
|
10013 => 61,
|
||||||
10014 => 62,
|
10014 => 62,
|
||||||
10015 => 63,
|
10015 => 63,
|
||||||
10016 => 64,
|
10016 => 64,
|
||||||
10017 => 65,
|
10017 => 65,
|
||||||
10018 => 66,
|
10018 => 66,
|
||||||
10019 => 67,
|
10019 => 67,
|
||||||
10020 => 68,
|
10020 => 68,
|
||||||
10021 => 69,
|
10021 => 69,
|
||||||
10022 => 70,
|
10022 => 70,
|
||||||
10023 => 71,
|
10023 => 71,
|
||||||
10025 => 73,
|
10025 => 73,
|
||||||
10026 => 74,
|
10026 => 74,
|
||||||
10027 => 75,
|
10027 => 75,
|
||||||
10028 => 76,
|
10028 => 76,
|
||||||
10029 => 77,
|
10029 => 77,
|
||||||
10030 => 78,
|
10030 => 78,
|
||||||
10031 => 79,
|
10031 => 79,
|
||||||
10032 => 80,
|
10032 => 80,
|
||||||
10033 => 81,
|
10033 => 81,
|
||||||
10034 => 82,
|
10034 => 82,
|
||||||
10035 => 83,
|
10035 => 83,
|
||||||
10036 => 84,
|
10036 => 84,
|
||||||
10037 => 85,
|
10037 => 85,
|
||||||
10038 => 86,
|
10038 => 86,
|
||||||
10039 => 87,
|
10039 => 87,
|
||||||
10040 => 88,
|
10040 => 88,
|
||||||
10041 => 89,
|
10041 => 89,
|
||||||
10042 => 90,
|
10042 => 90,
|
||||||
10043 => 91,
|
10043 => 91,
|
||||||
10044 => 92,
|
10044 => 92,
|
||||||
10045 => 93,
|
10045 => 93,
|
||||||
10046 => 94,
|
10046 => 94,
|
||||||
10047 => 95,
|
10047 => 95,
|
||||||
10048 => 96,
|
10048 => 96,
|
||||||
10049 => 97,
|
10049 => 97,
|
||||||
10050 => 98,
|
10050 => 98,
|
||||||
10051 => 99,
|
10051 => 99,
|
||||||
10052 => 100,
|
10052 => 100,
|
||||||
10053 => 101,
|
10053 => 101,
|
||||||
10054 => 102,
|
10054 => 102,
|
||||||
10055 => 103,
|
10055 => 103,
|
||||||
10056 => 104,
|
10056 => 104,
|
||||||
10057 => 105,
|
10057 => 105,
|
||||||
10058 => 106,
|
10058 => 106,
|
||||||
10059 => 107,
|
10059 => 107,
|
||||||
10061 => 109,
|
10061 => 109,
|
||||||
10063 => 111,
|
10063 => 111,
|
||||||
10064 => 112,
|
10064 => 112,
|
||||||
10065 => 113,
|
10065 => 113,
|
||||||
10066 => 114,
|
10066 => 114,
|
||||||
10070 => 118,
|
10070 => 118,
|
||||||
10072 => 120,
|
10072 => 120,
|
||||||
10073 => 121,
|
10073 => 121,
|
||||||
10074 => 122,
|
10074 => 122,
|
||||||
10075 => 123,
|
10075 => 123,
|
||||||
10076 => 124,
|
10076 => 124,
|
||||||
10077 => 125,
|
10077 => 125,
|
||||||
10078 => 126,
|
10078 => 126,
|
||||||
10081 => 161,
|
10081 => 161,
|
||||||
10082 => 162,
|
10082 => 162,
|
||||||
10083 => 163,
|
10083 => 163,
|
||||||
10084 => 164,
|
10084 => 164,
|
||||||
10085 => 165,
|
10085 => 165,
|
||||||
10086 => 166,
|
10086 => 166,
|
||||||
10087 => 167,
|
10087 => 167,
|
||||||
10102 => 182,
|
10102 => 182,
|
||||||
10103 => 183,
|
10103 => 183,
|
||||||
10104 => 184,
|
10104 => 184,
|
||||||
10105 => 185,
|
10105 => 185,
|
||||||
10106 => 186,
|
10106 => 186,
|
||||||
10107 => 187,
|
10107 => 187,
|
||||||
10108 => 188,
|
10108 => 188,
|
||||||
10109 => 189,
|
10109 => 189,
|
||||||
10110 => 190,
|
10110 => 190,
|
||||||
10111 => 191,
|
10111 => 191,
|
||||||
10112 => 192,
|
10112 => 192,
|
||||||
10113 => 193,
|
10113 => 193,
|
||||||
10114 => 194,
|
10114 => 194,
|
||||||
10115 => 195,
|
10115 => 195,
|
||||||
10116 => 196,
|
10116 => 196,
|
||||||
10117 => 197,
|
10117 => 197,
|
||||||
10118 => 198,
|
10118 => 198,
|
||||||
10119 => 199,
|
10119 => 199,
|
||||||
10120 => 200,
|
10120 => 200,
|
||||||
10121 => 201,
|
10121 => 201,
|
||||||
10122 => 202,
|
10122 => 202,
|
||||||
10123 => 203,
|
10123 => 203,
|
||||||
10124 => 204,
|
10124 => 204,
|
||||||
10125 => 205,
|
10125 => 205,
|
||||||
10126 => 206,
|
10126 => 206,
|
||||||
10127 => 207,
|
10127 => 207,
|
||||||
10128 => 208,
|
10128 => 208,
|
||||||
10129 => 209,
|
10129 => 209,
|
||||||
10130 => 210,
|
10130 => 210,
|
||||||
10131 => 211,
|
10131 => 211,
|
||||||
10132 => 212,
|
10132 => 212,
|
||||||
10136 => 216,
|
10136 => 216,
|
||||||
10137 => 217,
|
10137 => 217,
|
||||||
10138 => 218,
|
10138 => 218,
|
||||||
10139 => 219,
|
10139 => 219,
|
||||||
10140 => 220,
|
10140 => 220,
|
||||||
10141 => 221,
|
10141 => 221,
|
||||||
10142 => 222,
|
10142 => 222,
|
||||||
10143 => 223,
|
10143 => 223,
|
||||||
10144 => 224,
|
10144 => 224,
|
||||||
10145 => 225,
|
10145 => 225,
|
||||||
10146 => 226,
|
10146 => 226,
|
||||||
10147 => 227,
|
10147 => 227,
|
||||||
10148 => 228,
|
10148 => 228,
|
||||||
10149 => 229,
|
10149 => 229,
|
||||||
10150 => 230,
|
10150 => 230,
|
||||||
10151 => 231,
|
10151 => 231,
|
||||||
10152 => 232,
|
10152 => 232,
|
||||||
10153 => 233,
|
10153 => 233,
|
||||||
10154 => 234,
|
10154 => 234,
|
||||||
10155 => 235,
|
10155 => 235,
|
||||||
10156 => 236,
|
10156 => 236,
|
||||||
10157 => 237,
|
10157 => 237,
|
||||||
10158 => 238,
|
10158 => 238,
|
||||||
10159 => 239,
|
10159 => 239,
|
||||||
10161 => 241,
|
10161 => 241,
|
||||||
10162 => 242,
|
10162 => 242,
|
||||||
10163 => 243,
|
10163 => 243,
|
||||||
10164 => 244,
|
10164 => 244,
|
||||||
10165 => 245,
|
10165 => 245,
|
||||||
10166 => 246,
|
10166 => 246,
|
||||||
10167 => 247,
|
10167 => 247,
|
||||||
10168 => 248,
|
10168 => 248,
|
||||||
10169 => 249,
|
10169 => 249,
|
||||||
10170 => 250,
|
10170 => 250,
|
||||||
10171 => 251,
|
10171 => 251,
|
||||||
10172 => 252,
|
10172 => 252,
|
||||||
10173 => 253,
|
10173 => 253,
|
||||||
10174 => 254
|
10174 => 254
|
||||||
);
|
);
|
||||||
|
|
||||||
$sarr = array(
|
$sarr = array(
|
||||||
169 => 227,
|
169 => 227,
|
||||||
172 => 216,
|
172 => 216,
|
||||||
174 => 226,
|
174 => 226,
|
||||||
176 => 176,
|
176 => 176,
|
||||||
177 => 177,
|
177 => 177,
|
||||||
181 => 109,
|
181 => 109,
|
||||||
215 => 180,
|
215 => 180,
|
||||||
247 => 184,
|
247 => 184,
|
||||||
402 => 166,
|
402 => 166,
|
||||||
913 => 65,
|
913 => 65,
|
||||||
914 => 66,
|
914 => 66,
|
||||||
915 => 71,
|
915 => 71,
|
||||||
916 => 68,
|
916 => 68,
|
||||||
917 => 69,
|
917 => 69,
|
||||||
918 => 90,
|
918 => 90,
|
||||||
919 => 72,
|
919 => 72,
|
||||||
920 => 81,
|
920 => 81,
|
||||||
921 => 73,
|
921 => 73,
|
||||||
922 => 75,
|
922 => 75,
|
||||||
923 => 76,
|
923 => 76,
|
||||||
924 => 77,
|
924 => 77,
|
||||||
925 => 78,
|
925 => 78,
|
||||||
926 => 88,
|
926 => 88,
|
||||||
927 => 79,
|
927 => 79,
|
||||||
928 => 80,
|
928 => 80,
|
||||||
929 => 82,
|
929 => 82,
|
||||||
931 => 83,
|
931 => 83,
|
||||||
932 => 84,
|
932 => 84,
|
||||||
933 => 85,
|
933 => 85,
|
||||||
934 => 70,
|
934 => 70,
|
||||||
935 => 67,
|
935 => 67,
|
||||||
936 => 89,
|
936 => 89,
|
||||||
937 => 87,
|
937 => 87,
|
||||||
945 => 97,
|
945 => 97,
|
||||||
946 => 98,
|
946 => 98,
|
||||||
947 => 103,
|
947 => 103,
|
||||||
948 => 100,
|
948 => 100,
|
||||||
949 => 101,
|
949 => 101,
|
||||||
950 => 122,
|
950 => 122,
|
||||||
951 => 104,
|
951 => 104,
|
||||||
952 => 113,
|
952 => 113,
|
||||||
953 => 105,
|
953 => 105,
|
||||||
954 => 107,
|
954 => 107,
|
||||||
955 => 108,
|
955 => 108,
|
||||||
956 => 109,
|
956 => 109,
|
||||||
957 => 110,
|
957 => 110,
|
||||||
958 => 120,
|
958 => 120,
|
||||||
959 => 111,
|
959 => 111,
|
||||||
960 => 112,
|
960 => 112,
|
||||||
961 => 114,
|
961 => 114,
|
||||||
962 => 86,
|
962 => 86,
|
||||||
963 => 115,
|
963 => 115,
|
||||||
964 => 116,
|
964 => 116,
|
||||||
965 => 117,
|
965 => 117,
|
||||||
966 => 102,
|
966 => 102,
|
||||||
967 => 99,
|
967 => 99,
|
||||||
968 => 121,
|
968 => 121,
|
||||||
969 => 119,
|
969 => 119,
|
||||||
977 => 74,
|
977 => 74,
|
||||||
978 => 161,
|
978 => 161,
|
||||||
981 => 106,
|
981 => 106,
|
||||||
982 => 118,
|
982 => 118,
|
||||||
8226 => 183,
|
8226 => 183,
|
||||||
8230 => 188,
|
8230 => 188,
|
||||||
8242 => 162,
|
8242 => 162,
|
||||||
8243 => 178,
|
8243 => 178,
|
||||||
8260 => 164,
|
8260 => 164,
|
||||||
8465 => 193,
|
8465 => 193,
|
||||||
8472 => 195,
|
8472 => 195,
|
||||||
8476 => 194,
|
8476 => 194,
|
||||||
8482 => 228,
|
8482 => 228,
|
||||||
8486 => 87,
|
8486 => 87,
|
||||||
8501 => 192,
|
8501 => 192,
|
||||||
8592 => 172,
|
8592 => 172,
|
||||||
8593 => 173,
|
8593 => 173,
|
||||||
8594 => 174,
|
8594 => 174,
|
||||||
8595 => 175,
|
8595 => 175,
|
||||||
8596 => 171,
|
8596 => 171,
|
||||||
8629 => 191,
|
8629 => 191,
|
||||||
8656 => 220,
|
8656 => 220,
|
||||||
8657 => 221,
|
8657 => 221,
|
||||||
8658 => 222,
|
8658 => 222,
|
||||||
8659 => 223,
|
8659 => 223,
|
||||||
8660 => 219,
|
8660 => 219,
|
||||||
8704 => 34,
|
8704 => 34,
|
||||||
8706 => 182,
|
8706 => 182,
|
||||||
8707 => 36,
|
8707 => 36,
|
||||||
8709 => 198,
|
8709 => 198,
|
||||||
8710 => 68,
|
8710 => 68,
|
||||||
8711 => 209,
|
8711 => 209,
|
||||||
8712 => 206,
|
8712 => 206,
|
||||||
8713 => 207,
|
8713 => 207,
|
||||||
8715 => 39,
|
8715 => 39,
|
||||||
8719 => 213,
|
8719 => 213,
|
||||||
8721 => 229,
|
8721 => 229,
|
||||||
8722 => 45,
|
8722 => 45,
|
||||||
8725 => 164,
|
8725 => 164,
|
||||||
8727 => 42,
|
8727 => 42,
|
||||||
8730 => 214,
|
8730 => 214,
|
||||||
8733 => 181,
|
8733 => 181,
|
||||||
8734 => 165,
|
8734 => 165,
|
||||||
8736 => 208,
|
8736 => 208,
|
||||||
8743 => 217,
|
8743 => 217,
|
||||||
8744 => 218,
|
8744 => 218,
|
||||||
8745 => 199,
|
8745 => 199,
|
||||||
8746 => 200,
|
8746 => 200,
|
||||||
8747 => 242,
|
8747 => 242,
|
||||||
8756 => 92,
|
8756 => 92,
|
||||||
8764 => 126,
|
8764 => 126,
|
||||||
8773 => 64,
|
8773 => 64,
|
||||||
8776 => 187,
|
8776 => 187,
|
||||||
8800 => 185,
|
8800 => 185,
|
||||||
8801 => 186,
|
8801 => 186,
|
||||||
8804 => 163,
|
8804 => 163,
|
||||||
8805 => 179,
|
8805 => 179,
|
||||||
8834 => 204,
|
8834 => 204,
|
||||||
8835 => 201,
|
8835 => 201,
|
||||||
8836 => 203,
|
8836 => 203,
|
||||||
8838 => 205,
|
8838 => 205,
|
||||||
8839 => 202,
|
8839 => 202,
|
||||||
8853 => 197,
|
8853 => 197,
|
||||||
8855 => 196,
|
8855 => 196,
|
||||||
8869 => 94,
|
8869 => 94,
|
||||||
8901 => 215,
|
8901 => 215,
|
||||||
8992 => 243,
|
8992 => 243,
|
||||||
8993 => 245,
|
8993 => 245,
|
||||||
9001 => 225,
|
9001 => 225,
|
||||||
9002 => 241,
|
9002 => 241,
|
||||||
9674 => 224,
|
9674 => 224,
|
||||||
9824 => 170,
|
9824 => 170,
|
||||||
9827 => 167,
|
9827 => 167,
|
||||||
9829 => 169,
|
9829 => 169,
|
||||||
9830 => 168
|
9830 => 168
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,308 +1,308 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
$subsarray = array (
|
$subsarray = array (
|
||||||
913 => '<tts>65</tts>',
|
913 => '<tts>65</tts>',
|
||||||
914 => '<tts>66</tts>',
|
914 => '<tts>66</tts>',
|
||||||
915 => '<tts>71</tts>',
|
915 => '<tts>71</tts>',
|
||||||
916 => '<tts>68</tts>',
|
916 => '<tts>68</tts>',
|
||||||
917 => '<tts>69</tts>',
|
917 => '<tts>69</tts>',
|
||||||
918 => '<tts>90</tts>',
|
918 => '<tts>90</tts>',
|
||||||
919 => '<tts>72</tts>',
|
919 => '<tts>72</tts>',
|
||||||
920 => '<tts>81</tts>',
|
920 => '<tts>81</tts>',
|
||||||
921 => '<tts>73</tts>',
|
921 => '<tts>73</tts>',
|
||||||
922 => '<tts>75</tts>',
|
922 => '<tts>75</tts>',
|
||||||
923 => '<tts>76</tts>',
|
923 => '<tts>76</tts>',
|
||||||
924 => '<tts>77</tts>',
|
924 => '<tts>77</tts>',
|
||||||
925 => '<tts>78</tts>',
|
925 => '<tts>78</tts>',
|
||||||
926 => '<tts>88</tts>',
|
926 => '<tts>88</tts>',
|
||||||
927 => '<tts>79</tts>',
|
927 => '<tts>79</tts>',
|
||||||
928 => '<tts>80</tts>',
|
928 => '<tts>80</tts>',
|
||||||
929 => '<tts>82</tts>',
|
929 => '<tts>82</tts>',
|
||||||
931 => '<tts>83</tts>',
|
931 => '<tts>83</tts>',
|
||||||
932 => '<tts>84</tts>',
|
932 => '<tts>84</tts>',
|
||||||
933 => '<tts>85</tts>',
|
933 => '<tts>85</tts>',
|
||||||
934 => '<tts>70</tts>',
|
934 => '<tts>70</tts>',
|
||||||
935 => '<tts>67</tts>',
|
935 => '<tts>67</tts>',
|
||||||
936 => '<tts>89</tts>',
|
936 => '<tts>89</tts>',
|
||||||
937 => '<tts>87</tts>',
|
937 => '<tts>87</tts>',
|
||||||
945 => '<tts>97</tts>',
|
945 => '<tts>97</tts>',
|
||||||
946 => '<tts>98</tts>',
|
946 => '<tts>98</tts>',
|
||||||
947 => '<tts>103</tts>',
|
947 => '<tts>103</tts>',
|
||||||
948 => '<tts>100</tts>',
|
948 => '<tts>100</tts>',
|
||||||
949 => '<tts>101</tts>',
|
949 => '<tts>101</tts>',
|
||||||
950 => '<tts>122</tts>',
|
950 => '<tts>122</tts>',
|
||||||
951 => '<tts>104</tts>',
|
951 => '<tts>104</tts>',
|
||||||
952 => '<tts>113</tts>',
|
952 => '<tts>113</tts>',
|
||||||
953 => '<tts>105</tts>',
|
953 => '<tts>105</tts>',
|
||||||
954 => '<tts>107</tts>',
|
954 => '<tts>107</tts>',
|
||||||
955 => '<tts>108</tts>',
|
955 => '<tts>108</tts>',
|
||||||
956 => '<tts>109</tts>',
|
956 => '<tts>109</tts>',
|
||||||
957 => '<tts>110</tts>',
|
957 => '<tts>110</tts>',
|
||||||
958 => '<tts>120</tts>',
|
958 => '<tts>120</tts>',
|
||||||
959 => '<tts>111</tts>',
|
959 => '<tts>111</tts>',
|
||||||
960 => '<tts>112</tts>',
|
960 => '<tts>112</tts>',
|
||||||
961 => '<tts>114</tts>',
|
961 => '<tts>114</tts>',
|
||||||
962 => '<tts>86</tts>',
|
962 => '<tts>86</tts>',
|
||||||
963 => '<tts>115</tts>',
|
963 => '<tts>115</tts>',
|
||||||
964 => '<tts>116</tts>',
|
964 => '<tts>116</tts>',
|
||||||
965 => '<tts>117</tts>',
|
965 => '<tts>117</tts>',
|
||||||
966 => '<tts>102</tts>',
|
966 => '<tts>102</tts>',
|
||||||
967 => '<tts>99</tts>',
|
967 => '<tts>99</tts>',
|
||||||
968 => '<tts>121</tts>',
|
968 => '<tts>121</tts>',
|
||||||
969 => '<tts>119</tts>',
|
969 => '<tts>119</tts>',
|
||||||
977 => '<tts>74</tts>',
|
977 => '<tts>74</tts>',
|
||||||
978 => '<tts>161</tts>',
|
978 => '<tts>161</tts>',
|
||||||
981 => '<tts>106</tts>',
|
981 => '<tts>106</tts>',
|
||||||
982 => '<tts>118</tts>',
|
982 => '<tts>118</tts>',
|
||||||
8242 => '<tts>162</tts>',
|
8242 => '<tts>162</tts>',
|
||||||
8243 => '<tts>178</tts>',
|
8243 => '<tts>178</tts>',
|
||||||
8260 => '<tts>164</tts>',
|
8260 => '<tts>164</tts>',
|
||||||
8465 => '<tts>193</tts>',
|
8465 => '<tts>193</tts>',
|
||||||
8472 => '<tts>195</tts>',
|
8472 => '<tts>195</tts>',
|
||||||
8476 => '<tts>194</tts>',
|
8476 => '<tts>194</tts>',
|
||||||
8486 => '<tts>87</tts>',
|
8486 => '<tts>87</tts>',
|
||||||
8501 => '<tts>192</tts>',
|
8501 => '<tts>192</tts>',
|
||||||
8592 => '<tts>172</tts>',
|
8592 => '<tts>172</tts>',
|
||||||
8593 => '<tts>173</tts>',
|
8593 => '<tts>173</tts>',
|
||||||
8594 => '<tts>174</tts>',
|
8594 => '<tts>174</tts>',
|
||||||
8595 => '<tts>175</tts>',
|
8595 => '<tts>175</tts>',
|
||||||
8596 => '<tts>171</tts>',
|
8596 => '<tts>171</tts>',
|
||||||
8597 => '<ttz>215</ttz>',
|
8597 => '<ttz>215</ttz>',
|
||||||
8629 => '<tts>191</tts>',
|
8629 => '<tts>191</tts>',
|
||||||
8656 => '<tts>220</tts>',
|
8656 => '<tts>220</tts>',
|
||||||
8657 => '<tts>221</tts>',
|
8657 => '<tts>221</tts>',
|
||||||
8658 => '<tts>222</tts>',
|
8658 => '<tts>222</tts>',
|
||||||
8659 => '<tts>223</tts>',
|
8659 => '<tts>223</tts>',
|
||||||
8660 => '<tts>219</tts>',
|
8660 => '<tts>219</tts>',
|
||||||
8704 => '<tts>34</tts>',
|
8704 => '<tts>34</tts>',
|
||||||
8706 => '<tts>182</tts>',
|
8706 => '<tts>182</tts>',
|
||||||
8707 => '<tts>36</tts>',
|
8707 => '<tts>36</tts>',
|
||||||
8709 => '<tts>198</tts>',
|
8709 => '<tts>198</tts>',
|
||||||
8710 => '<tts>68</tts>',
|
8710 => '<tts>68</tts>',
|
||||||
8711 => '<tts>209</tts>',
|
8711 => '<tts>209</tts>',
|
||||||
8712 => '<tts>206</tts>',
|
8712 => '<tts>206</tts>',
|
||||||
8713 => '<tts>207</tts>',
|
8713 => '<tts>207</tts>',
|
||||||
8715 => '<tts>39</tts>',
|
8715 => '<tts>39</tts>',
|
||||||
8719 => '<tts>213</tts>',
|
8719 => '<tts>213</tts>',
|
||||||
8721 => '<tts>229</tts>',
|
8721 => '<tts>229</tts>',
|
||||||
8722 => '<tts>45</tts>',
|
8722 => '<tts>45</tts>',
|
||||||
8725 => '<tts>164</tts>',
|
8725 => '<tts>164</tts>',
|
||||||
8727 => '<tts>42</tts>',
|
8727 => '<tts>42</tts>',
|
||||||
8730 => '<tts>214</tts>',
|
8730 => '<tts>214</tts>',
|
||||||
8733 => '<tts>181</tts>',
|
8733 => '<tts>181</tts>',
|
||||||
8734 => '<tts>165</tts>',
|
8734 => '<tts>165</tts>',
|
||||||
8736 => '<tts>208</tts>',
|
8736 => '<tts>208</tts>',
|
||||||
8743 => '<tts>217</tts>',
|
8743 => '<tts>217</tts>',
|
||||||
8744 => '<tts>218</tts>',
|
8744 => '<tts>218</tts>',
|
||||||
8745 => '<tts>199</tts>',
|
8745 => '<tts>199</tts>',
|
||||||
8746 => '<tts>200</tts>',
|
8746 => '<tts>200</tts>',
|
||||||
8747 => '<tts>242</tts>',
|
8747 => '<tts>242</tts>',
|
||||||
8756 => '<tts>92</tts>',
|
8756 => '<tts>92</tts>',
|
||||||
8764 => '<tts>126</tts>',
|
8764 => '<tts>126</tts>',
|
||||||
8773 => '<tts>64</tts>',
|
8773 => '<tts>64</tts>',
|
||||||
8776 => '<tts>187</tts>',
|
8776 => '<tts>187</tts>',
|
||||||
8800 => '<tts>185</tts>',
|
8800 => '<tts>185</tts>',
|
||||||
8801 => '<tts>186</tts>',
|
8801 => '<tts>186</tts>',
|
||||||
8804 => '<tts>163</tts>',
|
8804 => '<tts>163</tts>',
|
||||||
8805 => '<tts>179</tts>',
|
8805 => '<tts>179</tts>',
|
||||||
8834 => '<tts>204</tts>',
|
8834 => '<tts>204</tts>',
|
||||||
8835 => '<tts>201</tts>',
|
8835 => '<tts>201</tts>',
|
||||||
8836 => '<tts>203</tts>',
|
8836 => '<tts>203</tts>',
|
||||||
8838 => '<tts>205</tts>',
|
8838 => '<tts>205</tts>',
|
||||||
8839 => '<tts>202</tts>',
|
8839 => '<tts>202</tts>',
|
||||||
8853 => '<tts>197</tts>',
|
8853 => '<tts>197</tts>',
|
||||||
8855 => '<tts>196</tts>',
|
8855 => '<tts>196</tts>',
|
||||||
8869 => '<tts>94</tts>',
|
8869 => '<tts>94</tts>',
|
||||||
8901 => '<tts>215</tts>',
|
8901 => '<tts>215</tts>',
|
||||||
8992 => '<tts>243</tts>',
|
8992 => '<tts>243</tts>',
|
||||||
8993 => '<tts>245</tts>',
|
8993 => '<tts>245</tts>',
|
||||||
9001 => '<tts>225</tts>',
|
9001 => '<tts>225</tts>',
|
||||||
9002 => '<tts>241</tts>',
|
9002 => '<tts>241</tts>',
|
||||||
9312 => '<ttz>172</ttz>',
|
9312 => '<ttz>172</ttz>',
|
||||||
9313 => '<ttz>173</ttz>',
|
9313 => '<ttz>173</ttz>',
|
||||||
9314 => '<ttz>174</ttz>',
|
9314 => '<ttz>174</ttz>',
|
||||||
9315 => '<ttz>175</ttz>',
|
9315 => '<ttz>175</ttz>',
|
||||||
9316 => '<ttz>176</ttz>',
|
9316 => '<ttz>176</ttz>',
|
||||||
9317 => '<ttz>177</ttz>',
|
9317 => '<ttz>177</ttz>',
|
||||||
9318 => '<ttz>178</ttz>',
|
9318 => '<ttz>178</ttz>',
|
||||||
9319 => '<ttz>179</ttz>',
|
9319 => '<ttz>179</ttz>',
|
||||||
9320 => '<ttz>180</ttz>',
|
9320 => '<ttz>180</ttz>',
|
||||||
9321 => '<ttz>181</ttz>',
|
9321 => '<ttz>181</ttz>',
|
||||||
9632 => '<ttz>110</ttz>',
|
9632 => '<ttz>110</ttz>',
|
||||||
9650 => '<ttz>115</ttz>',
|
9650 => '<ttz>115</ttz>',
|
||||||
9660 => '<ttz>116</ttz>',
|
9660 => '<ttz>116</ttz>',
|
||||||
9670 => '<ttz>117</ttz>',
|
9670 => '<ttz>117</ttz>',
|
||||||
9674 => '<tts>224</tts>',
|
9674 => '<tts>224</tts>',
|
||||||
9679 => '<ttz>108</ttz>',
|
9679 => '<ttz>108</ttz>',
|
||||||
9687 => '<ttz>119</ttz>',
|
9687 => '<ttz>119</ttz>',
|
||||||
9733 => '<ttz>72</ttz>',
|
9733 => '<ttz>72</ttz>',
|
||||||
9742 => '<ttz>37</ttz>',
|
9742 => '<ttz>37</ttz>',
|
||||||
9755 => '<ttz>42</ttz>',
|
9755 => '<ttz>42</ttz>',
|
||||||
9758 => '<ttz>43</ttz>',
|
9758 => '<ttz>43</ttz>',
|
||||||
9824 => '<tts>170</tts>',
|
9824 => '<tts>170</tts>',
|
||||||
9827 => '<tts>167</tts>',
|
9827 => '<tts>167</tts>',
|
||||||
9829 => '<tts>169</tts>',
|
9829 => '<tts>169</tts>',
|
||||||
9830 => '<tts>168</tts>',
|
9830 => '<tts>168</tts>',
|
||||||
9985 => '<ttz>33</ttz>',
|
9985 => '<ttz>33</ttz>',
|
||||||
9986 => '<ttz>34</ttz>',
|
9986 => '<ttz>34</ttz>',
|
||||||
9987 => '<ttz>35</ttz>',
|
9987 => '<ttz>35</ttz>',
|
||||||
9988 => '<ttz>36</ttz>',
|
9988 => '<ttz>36</ttz>',
|
||||||
9990 => '<ttz>38</ttz>',
|
9990 => '<ttz>38</ttz>',
|
||||||
9991 => '<ttz>39</ttz>',
|
9991 => '<ttz>39</ttz>',
|
||||||
9992 => '<ttz>40</ttz>',
|
9992 => '<ttz>40</ttz>',
|
||||||
9993 => '<ttz>41</ttz>',
|
9993 => '<ttz>41</ttz>',
|
||||||
9996 => '<ttz>44</ttz>',
|
9996 => '<ttz>44</ttz>',
|
||||||
9997 => '<ttz>45</ttz>',
|
9997 => '<ttz>45</ttz>',
|
||||||
9998 => '<ttz>46</ttz>',
|
9998 => '<ttz>46</ttz>',
|
||||||
9999 => '<ttz>47</ttz>',
|
9999 => '<ttz>47</ttz>',
|
||||||
10000 => '<ttz>48</ttz>',
|
10000 => '<ttz>48</ttz>',
|
||||||
10001 => '<ttz>49</ttz>',
|
10001 => '<ttz>49</ttz>',
|
||||||
10002 => '<ttz>50</ttz>',
|
10002 => '<ttz>50</ttz>',
|
||||||
10003 => '<ttz>51</ttz>',
|
10003 => '<ttz>51</ttz>',
|
||||||
10004 => '<ttz>52</ttz>',
|
10004 => '<ttz>52</ttz>',
|
||||||
10005 => '<ttz>53</ttz>',
|
10005 => '<ttz>53</ttz>',
|
||||||
10006 => '<ttz>54</ttz>',
|
10006 => '<ttz>54</ttz>',
|
||||||
10007 => '<ttz>55</ttz>',
|
10007 => '<ttz>55</ttz>',
|
||||||
10008 => '<ttz>56</ttz>',
|
10008 => '<ttz>56</ttz>',
|
||||||
10009 => '<ttz>57</ttz>',
|
10009 => '<ttz>57</ttz>',
|
||||||
10010 => '<ttz>58</ttz>',
|
10010 => '<ttz>58</ttz>',
|
||||||
10011 => '<ttz>59</ttz>',
|
10011 => '<ttz>59</ttz>',
|
||||||
10012 => '<ttz>60</ttz>',
|
10012 => '<ttz>60</ttz>',
|
||||||
10013 => '<ttz>61</ttz>',
|
10013 => '<ttz>61</ttz>',
|
||||||
10014 => '<ttz>62</ttz>',
|
10014 => '<ttz>62</ttz>',
|
||||||
10015 => '<ttz>63</ttz>',
|
10015 => '<ttz>63</ttz>',
|
||||||
10016 => '<ttz>64</ttz>',
|
10016 => '<ttz>64</ttz>',
|
||||||
10017 => '<ttz>65</ttz>',
|
10017 => '<ttz>65</ttz>',
|
||||||
10018 => '<ttz>66</ttz>',
|
10018 => '<ttz>66</ttz>',
|
||||||
10019 => '<ttz>67</ttz>',
|
10019 => '<ttz>67</ttz>',
|
||||||
10020 => '<ttz>68</ttz>',
|
10020 => '<ttz>68</ttz>',
|
||||||
10021 => '<ttz>69</ttz>',
|
10021 => '<ttz>69</ttz>',
|
||||||
10022 => '<ttz>70</ttz>',
|
10022 => '<ttz>70</ttz>',
|
||||||
10023 => '<ttz>71</ttz>',
|
10023 => '<ttz>71</ttz>',
|
||||||
10025 => '<ttz>73</ttz>',
|
10025 => '<ttz>73</ttz>',
|
||||||
10026 => '<ttz>74</ttz>',
|
10026 => '<ttz>74</ttz>',
|
||||||
10027 => '<ttz>75</ttz>',
|
10027 => '<ttz>75</ttz>',
|
||||||
10028 => '<ttz>76</ttz>',
|
10028 => '<ttz>76</ttz>',
|
||||||
10029 => '<ttz>77</ttz>',
|
10029 => '<ttz>77</ttz>',
|
||||||
10030 => '<ttz>78</ttz>',
|
10030 => '<ttz>78</ttz>',
|
||||||
10031 => '<ttz>79</ttz>',
|
10031 => '<ttz>79</ttz>',
|
||||||
10032 => '<ttz>80</ttz>',
|
10032 => '<ttz>80</ttz>',
|
||||||
10033 => '<ttz>81</ttz>',
|
10033 => '<ttz>81</ttz>',
|
||||||
10034 => '<ttz>82</ttz>',
|
10034 => '<ttz>82</ttz>',
|
||||||
10035 => '<ttz>83</ttz>',
|
10035 => '<ttz>83</ttz>',
|
||||||
10036 => '<ttz>84</ttz>',
|
10036 => '<ttz>84</ttz>',
|
||||||
10037 => '<ttz>85</ttz>',
|
10037 => '<ttz>85</ttz>',
|
||||||
10038 => '<ttz>86</ttz>',
|
10038 => '<ttz>86</ttz>',
|
||||||
10039 => '<ttz>87</ttz>',
|
10039 => '<ttz>87</ttz>',
|
||||||
10040 => '<ttz>88</ttz>',
|
10040 => '<ttz>88</ttz>',
|
||||||
10041 => '<ttz>89</ttz>',
|
10041 => '<ttz>89</ttz>',
|
||||||
10042 => '<ttz>90</ttz>',
|
10042 => '<ttz>90</ttz>',
|
||||||
10043 => '<ttz>91</ttz>',
|
10043 => '<ttz>91</ttz>',
|
||||||
10044 => '<ttz>92</ttz>',
|
10044 => '<ttz>92</ttz>',
|
||||||
10045 => '<ttz>93</ttz>',
|
10045 => '<ttz>93</ttz>',
|
||||||
10046 => '<ttz>94</ttz>',
|
10046 => '<ttz>94</ttz>',
|
||||||
10047 => '<ttz>95</ttz>',
|
10047 => '<ttz>95</ttz>',
|
||||||
10048 => '<ttz>96</ttz>',
|
10048 => '<ttz>96</ttz>',
|
||||||
10049 => '<ttz>97</ttz>',
|
10049 => '<ttz>97</ttz>',
|
||||||
10050 => '<ttz>98</ttz>',
|
10050 => '<ttz>98</ttz>',
|
||||||
10051 => '<ttz>99</ttz>',
|
10051 => '<ttz>99</ttz>',
|
||||||
10052 => '<ttz>100</ttz>',
|
10052 => '<ttz>100</ttz>',
|
||||||
10053 => '<ttz>101</ttz>',
|
10053 => '<ttz>101</ttz>',
|
||||||
10054 => '<ttz>102</ttz>',
|
10054 => '<ttz>102</ttz>',
|
||||||
10055 => '<ttz>103</ttz>',
|
10055 => '<ttz>103</ttz>',
|
||||||
10056 => '<ttz>104</ttz>',
|
10056 => '<ttz>104</ttz>',
|
||||||
10057 => '<ttz>105</ttz>',
|
10057 => '<ttz>105</ttz>',
|
||||||
10058 => '<ttz>106</ttz>',
|
10058 => '<ttz>106</ttz>',
|
||||||
10059 => '<ttz>107</ttz>',
|
10059 => '<ttz>107</ttz>',
|
||||||
10061 => '<ttz>109</ttz>',
|
10061 => '<ttz>109</ttz>',
|
||||||
10063 => '<ttz>111</ttz>',
|
10063 => '<ttz>111</ttz>',
|
||||||
10064 => '<ttz>112</ttz>',
|
10064 => '<ttz>112</ttz>',
|
||||||
10065 => '<ttz>113</ttz>',
|
10065 => '<ttz>113</ttz>',
|
||||||
10066 => '<ttz>114</ttz>',
|
10066 => '<ttz>114</ttz>',
|
||||||
10070 => '<ttz>118</ttz>',
|
10070 => '<ttz>118</ttz>',
|
||||||
10072 => '<ttz>120</ttz>',
|
10072 => '<ttz>120</ttz>',
|
||||||
10073 => '<ttz>121</ttz>',
|
10073 => '<ttz>121</ttz>',
|
||||||
10074 => '<ttz>122</ttz>',
|
10074 => '<ttz>122</ttz>',
|
||||||
10075 => '<ttz>123</ttz>',
|
10075 => '<ttz>123</ttz>',
|
||||||
10076 => '<ttz>124</ttz>',
|
10076 => '<ttz>124</ttz>',
|
||||||
10077 => '<ttz>125</ttz>',
|
10077 => '<ttz>125</ttz>',
|
||||||
10078 => '<ttz>126</ttz>',
|
10078 => '<ttz>126</ttz>',
|
||||||
10081 => '<ttz>161</ttz>',
|
10081 => '<ttz>161</ttz>',
|
||||||
10082 => '<ttz>162</ttz>',
|
10082 => '<ttz>162</ttz>',
|
||||||
10083 => '<ttz>163</ttz>',
|
10083 => '<ttz>163</ttz>',
|
||||||
10084 => '<ttz>164</ttz>',
|
10084 => '<ttz>164</ttz>',
|
||||||
10085 => '<ttz>165</ttz>',
|
10085 => '<ttz>165</ttz>',
|
||||||
10086 => '<ttz>166</ttz>',
|
10086 => '<ttz>166</ttz>',
|
||||||
10087 => '<ttz>167</ttz>',
|
10087 => '<ttz>167</ttz>',
|
||||||
10102 => '<ttz>182</ttz>',
|
10102 => '<ttz>182</ttz>',
|
||||||
10103 => '<ttz>183</ttz>',
|
10103 => '<ttz>183</ttz>',
|
||||||
10104 => '<ttz>184</ttz>',
|
10104 => '<ttz>184</ttz>',
|
||||||
10105 => '<ttz>185</ttz>',
|
10105 => '<ttz>185</ttz>',
|
||||||
10106 => '<ttz>186</ttz>',
|
10106 => '<ttz>186</ttz>',
|
||||||
10107 => '<ttz>187</ttz>',
|
10107 => '<ttz>187</ttz>',
|
||||||
10108 => '<ttz>188</ttz>',
|
10108 => '<ttz>188</ttz>',
|
||||||
10109 => '<ttz>189</ttz>',
|
10109 => '<ttz>189</ttz>',
|
||||||
10110 => '<ttz>190</ttz>',
|
10110 => '<ttz>190</ttz>',
|
||||||
10111 => '<ttz>191</ttz>',
|
10111 => '<ttz>191</ttz>',
|
||||||
10112 => '<ttz>192</ttz>',
|
10112 => '<ttz>192</ttz>',
|
||||||
10113 => '<ttz>193</ttz>',
|
10113 => '<ttz>193</ttz>',
|
||||||
10114 => '<ttz>194</ttz>',
|
10114 => '<ttz>194</ttz>',
|
||||||
10115 => '<ttz>195</ttz>',
|
10115 => '<ttz>195</ttz>',
|
||||||
10116 => '<ttz>196</ttz>',
|
10116 => '<ttz>196</ttz>',
|
||||||
10117 => '<ttz>197</ttz>',
|
10117 => '<ttz>197</ttz>',
|
||||||
10118 => '<ttz>198</ttz>',
|
10118 => '<ttz>198</ttz>',
|
||||||
10119 => '<ttz>199</ttz>',
|
10119 => '<ttz>199</ttz>',
|
||||||
10120 => '<ttz>200</ttz>',
|
10120 => '<ttz>200</ttz>',
|
||||||
10121 => '<ttz>201</ttz>',
|
10121 => '<ttz>201</ttz>',
|
||||||
10122 => '<ttz>202</ttz>',
|
10122 => '<ttz>202</ttz>',
|
||||||
10123 => '<ttz>203</ttz>',
|
10123 => '<ttz>203</ttz>',
|
||||||
10124 => '<ttz>204</ttz>',
|
10124 => '<ttz>204</ttz>',
|
||||||
10125 => '<ttz>205</ttz>',
|
10125 => '<ttz>205</ttz>',
|
||||||
10126 => '<ttz>206</ttz>',
|
10126 => '<ttz>206</ttz>',
|
||||||
10127 => '<ttz>207</ttz>',
|
10127 => '<ttz>207</ttz>',
|
||||||
10128 => '<ttz>208</ttz>',
|
10128 => '<ttz>208</ttz>',
|
||||||
10129 => '<ttz>209</ttz>',
|
10129 => '<ttz>209</ttz>',
|
||||||
10130 => '<ttz>210</ttz>',
|
10130 => '<ttz>210</ttz>',
|
||||||
10131 => '<ttz>211</ttz>',
|
10131 => '<ttz>211</ttz>',
|
||||||
10132 => '<ttz>212</ttz>',
|
10132 => '<ttz>212</ttz>',
|
||||||
10136 => '<ttz>216</ttz>',
|
10136 => '<ttz>216</ttz>',
|
||||||
10137 => '<ttz>217</ttz>',
|
10137 => '<ttz>217</ttz>',
|
||||||
10138 => '<ttz>218</ttz>',
|
10138 => '<ttz>218</ttz>',
|
||||||
10139 => '<ttz>219</ttz>',
|
10139 => '<ttz>219</ttz>',
|
||||||
10140 => '<ttz>220</ttz>',
|
10140 => '<ttz>220</ttz>',
|
||||||
10141 => '<ttz>221</ttz>',
|
10141 => '<ttz>221</ttz>',
|
||||||
10142 => '<ttz>222</ttz>',
|
10142 => '<ttz>222</ttz>',
|
||||||
10143 => '<ttz>223</ttz>',
|
10143 => '<ttz>223</ttz>',
|
||||||
10144 => '<ttz>224</ttz>',
|
10144 => '<ttz>224</ttz>',
|
||||||
10145 => '<ttz>225</ttz>',
|
10145 => '<ttz>225</ttz>',
|
||||||
10146 => '<ttz>226</ttz>',
|
10146 => '<ttz>226</ttz>',
|
||||||
10147 => '<ttz>227</ttz>',
|
10147 => '<ttz>227</ttz>',
|
||||||
10148 => '<ttz>228</ttz>',
|
10148 => '<ttz>228</ttz>',
|
||||||
10149 => '<ttz>229</ttz>',
|
10149 => '<ttz>229</ttz>',
|
||||||
10150 => '<ttz>230</ttz>',
|
10150 => '<ttz>230</ttz>',
|
||||||
10151 => '<ttz>231</ttz>',
|
10151 => '<ttz>231</ttz>',
|
||||||
10152 => '<ttz>232</ttz>',
|
10152 => '<ttz>232</ttz>',
|
||||||
10153 => '<ttz>233</ttz>',
|
10153 => '<ttz>233</ttz>',
|
||||||
10154 => '<ttz>234</ttz>',
|
10154 => '<ttz>234</ttz>',
|
||||||
10155 => '<ttz>235</ttz>',
|
10155 => '<ttz>235</ttz>',
|
||||||
10156 => '<ttz>236</ttz>',
|
10156 => '<ttz>236</ttz>',
|
||||||
10157 => '<ttz>237</ttz>',
|
10157 => '<ttz>237</ttz>',
|
||||||
10158 => '<ttz>238</ttz>',
|
10158 => '<ttz>238</ttz>',
|
||||||
10159 => '<ttz>239</ttz>',
|
10159 => '<ttz>239</ttz>',
|
||||||
10161 => '<ttz>241</ttz>',
|
10161 => '<ttz>241</ttz>',
|
||||||
10162 => '<ttz>242</ttz>',
|
10162 => '<ttz>242</ttz>',
|
||||||
10163 => '<ttz>243</ttz>',
|
10163 => '<ttz>243</ttz>',
|
||||||
10164 => '<ttz>244</ttz>',
|
10164 => '<ttz>244</ttz>',
|
||||||
10165 => '<ttz>245</ttz>',
|
10165 => '<ttz>245</ttz>',
|
||||||
10166 => '<ttz>246</ttz>',
|
10166 => '<ttz>246</ttz>',
|
||||||
10167 => '<ttz>247</ttz>',
|
10167 => '<ttz>247</ttz>',
|
||||||
10168 => '<ttz>248</ttz>',
|
10168 => '<ttz>248</ttz>',
|
||||||
10169 => '<ttz>249</ttz>',
|
10169 => '<ttz>249</ttz>',
|
||||||
10170 => '<ttz>250</ttz>',
|
10170 => '<ttz>250</ttz>',
|
||||||
10171 => '<ttz>251</ttz>',
|
10171 => '<ttz>251</ttz>',
|
||||||
10172 => '<ttz>252</ttz>',
|
10172 => '<ttz>252</ttz>',
|
||||||
10173 => '<ttz>253</ttz>',
|
10173 => '<ttz>253</ttz>',
|
||||||
10174 => '<ttz>254</ttz>',
|
10174 => '<ttz>254</ttz>',
|
||||||
);
|
);
|
||||||
|
|
||||||
?>
|
?>
|
@@ -1,20 +1,20 @@
|
|||||||
/*
|
/*
|
||||||
This is a secondary default stylesheet for mPDF
|
This is a secondary default stylesheet for mPDF
|
||||||
It will only parse element-level CSS here
|
It will only parse element-level CSS here
|
||||||
Remove the comment marks below and edit as required
|
Remove the comment marks below and edit as required
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
These values used to be the default prior to mPDF 4.2
|
These values used to be the default prior to mPDF 4.2
|
||||||
Altered to make appearance closer to that of browsers
|
Altered to make appearance closer to that of browsers
|
||||||
Uncomment these lines to return to behaviour prior to v4.2
|
Uncomment these lines to return to behaviour prior to v4.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
img { margin: 0.83em 0; vertical-align: bottom; }
|
img { margin: 0.83em 0; vertical-align: bottom; }
|
||||||
table { margin: 0.5em; }
|
table { margin: 0.5em; }
|
||||||
textarea { vertical-align: top; }
|
textarea { vertical-align: top; }
|
||||||
*/
|
*/
|