First commit
This commit is contained in:
commit
c6e2478c40
13918 changed files with 2303184 additions and 0 deletions
12
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.gitattributes
vendored
Normal file
12
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.gitattributes
vendored
Normal file
|
@ -0,0 +1,12 @@
|
|||
*.json text
|
||||
*.xml text
|
||||
*.php text
|
||||
*.LGPL text
|
||||
*.md text
|
||||
*.skel text
|
||||
*.css text
|
||||
*.inc text
|
||||
*.js text
|
||||
*.html text
|
||||
*.txt text
|
||||
*.svg text
|
5
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.gitignore
vendored
Normal file
5
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.gitignore
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
.DS_Store
|
||||
composer.lock
|
||||
vendor
|
||||
.idea
|
||||
.project
|
1
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.htaccess
vendored
Normal file
1
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.htaccess
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
#deny from all
|
29
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.travis.yml
vendored
Normal file
29
sites/all/modules/civicrm/vendor/phenx/php-font-lib/.travis.yml
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
language: php
|
||||
|
||||
env:
|
||||
- PREFER_LOWEST="--prefer-lowest"
|
||||
- PREFER_LOWEST=""
|
||||
|
||||
php:
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- 7.0
|
||||
- hhvm
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- php: hhvm
|
||||
fast_finish: true
|
||||
|
||||
before_script:
|
||||
- composer dump-autoload
|
||||
- composer self-update
|
||||
- composer update --prefer-source $PREFER_LOWEST
|
||||
|
||||
script: bin/phpunit
|
||||
|
||||
|
||||
# Use Travis' new container-based infrastructure.
|
||||
# See http://docs.travis-ci.com/user/migrating-from-legacy/#How-can-I-use-container-based-infrastructure%3F
|
||||
sudo: false
|
456
sites/all/modules/civicrm/vendor/phenx/php-font-lib/LICENSE
vendored
Normal file
456
sites/all/modules/civicrm/vendor/phenx/php-font-lib/LICENSE
vendored
Normal file
|
@ -0,0 +1,456 @@
|
|||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
[This is the first released version of the Lesser GPL. It also counts
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
Licenses are intended to guarantee your freedom to share and change
|
||||
free software--to make sure the software is free for all its users.
|
||||
|
||||
This license, the Lesser General Public License, applies to some
|
||||
specially designated software packages--typically libraries--of the
|
||||
Free Software Foundation and other authors who decide to use it. You
|
||||
can use it too, but we suggest you first think carefully about whether
|
||||
this license or the ordinary General Public License is the better
|
||||
strategy to use in any particular case, based on the explanations below.
|
||||
|
||||
When we speak of free software, we are referring to freedom of use,
|
||||
not price. Our General Public Licenses are designed to make sure that
|
||||
you 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 if you want it; that you can change the software and use pieces of
|
||||
it in new free programs; and that you are informed that you can do
|
||||
these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
distributors to deny you these rights or to ask you to surrender these
|
||||
rights. These restrictions translate to certain responsibilities for
|
||||
you if you distribute copies of the library or if you modify it.
|
||||
|
||||
For example, if you distribute copies of the library, whether gratis
|
||||
or for a fee, you must give the recipients all the rights that we gave
|
||||
you. You must make sure that they, too, receive or can get the source
|
||||
code. If you link other code with the library, you must provide
|
||||
complete object files to the recipients, so that they can relink them
|
||||
with the library after making changes to the library and recompiling
|
||||
it. And you must show them these terms so they know their rights.
|
||||
|
||||
We protect your rights with a two-step method: (1) we copyright the
|
||||
library, and (2) we offer you this license, which gives you legal
|
||||
permission to copy, distribute and/or modify the library.
|
||||
|
||||
To protect each distributor, we want to make it very clear that
|
||||
there is no warranty for the free library. Also, if the library is
|
||||
modified by someone else and passed on, the recipients should know
|
||||
that what they have is not the original version, so that the original
|
||||
author's reputation will not be affected by problems that might be
|
||||
introduced by others.
|
||||
|
||||
Finally, software patents pose a constant threat to the existence of
|
||||
any free program. We wish to make sure that a company cannot
|
||||
effectively restrict the users of a free program by obtaining a
|
||||
restrictive license from a patent holder. Therefore, we insist that
|
||||
any patent license obtained for a version of the library must be
|
||||
consistent with the full freedom of use specified in this license.
|
||||
|
||||
Most GNU software, including some libraries, is covered by the
|
||||
ordinary GNU General Public License. This license, the GNU Lesser
|
||||
General Public License, applies to certain designated libraries, and
|
||||
is quite different from the ordinary General Public License. We use
|
||||
this license for certain libraries in order to permit linking those
|
||||
libraries into non-free programs.
|
||||
|
||||
When a program is linked with a library, whether statically or using
|
||||
a shared library, the combination of the two is legally speaking a
|
||||
combined work, a derivative of the original library. The ordinary
|
||||
General Public License therefore permits such linking only if the
|
||||
entire combination fits its criteria of freedom. The Lesser General
|
||||
Public License permits more lax criteria for linking other code with
|
||||
the library.
|
||||
|
||||
We call this license the "Lesser" General Public License because it
|
||||
does Less to protect the user's freedom than the ordinary General
|
||||
Public License. It also provides other free software developers Less
|
||||
of an advantage over competing non-free programs. These disadvantages
|
||||
are the reason we use the ordinary General Public License for many
|
||||
libraries. However, the Lesser license provides advantages in certain
|
||||
special circumstances.
|
||||
|
||||
For example, on rare occasions, there may be a special need to
|
||||
encourage the widest possible use of a certain library, so that it becomes
|
||||
a de-facto standard. To achieve this, non-free programs must be
|
||||
allowed to use the library. A more frequent case is that a free
|
||||
library does the same job as widely used non-free libraries. In this
|
||||
case, there is little to gain by limiting the free library to free
|
||||
software only, so we use the Lesser General Public License.
|
||||
|
||||
In other cases, permission to use a particular library in non-free
|
||||
programs enables a greater number of people to use a large body of
|
||||
free software. For example, permission to use the GNU C Library in
|
||||
non-free programs enables many more people to use the whole GNU
|
||||
operating system, as well as its variant, the GNU/Linux operating
|
||||
system.
|
||||
|
||||
Although the Lesser General Public License is Less protective of the
|
||||
users' freedom, it does ensure that the user of a program that is
|
||||
linked with the Library has the freedom and the wherewithal to run
|
||||
that program using a modified version of the Library.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow. Pay close attention to the difference between a
|
||||
"work based on the library" and a "work that uses the library". The
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
program which contains a notice placed by the copyright holder or
|
||||
other authorized party saying it may be distributed under the terms of
|
||||
this Lesser General Public License (also called "this License").
|
||||
Each licensee is addressed as "you".
|
||||
|
||||
A "library" means a collection of software functions and/or data
|
||||
prepared so as to be conveniently linked with application programs
|
||||
(which use some of those functions and data) to form executables.
|
||||
|
||||
The "Library", below, refers to any such software library or work
|
||||
which has been distributed under these terms. A "work based on the
|
||||
Library" means either the Library or any derivative work under
|
||||
copyright law: that is to say, a work containing the Library or a
|
||||
portion of it, either verbatim or with modifications and/or translated
|
||||
straightforwardly into another language. (Hereinafter, translation is
|
||||
included without limitation in the term "modification".)
|
||||
|
||||
"Source code" for a work means the preferred form of the work for
|
||||
making modifications to it. For a library, complete source code means
|
||||
all the source code for all modules it contains, plus any associated
|
||||
interface definition files, plus the scripts used to control compilation
|
||||
and installation of the library.
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running a program using the Library is not restricted, and output from
|
||||
such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
||||
all the notices that refer to this License and to the absence of any
|
||||
warranty; and distribute a copy of this License along with the
|
||||
Library.
|
||||
|
||||
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.
|
||||
|
||||
2. You may modify your copy or copies of the Library or any portion
|
||||
of it, thus forming a work based on the Library, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) The modified work must itself be a software library.
|
||||
|
||||
b) You must cause the files modified to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
c) You must cause the whole of the work to be licensed at no
|
||||
charge to all third parties under the terms of this License.
|
||||
|
||||
d) If a facility in the modified Library refers to a function or a
|
||||
table of data to be supplied by an application program that uses
|
||||
the facility, other than as an argument passed when the facility
|
||||
is invoked, then you must make a good faith effort to ensure that,
|
||||
in the event an application does not supply such function or
|
||||
table, the facility still operates, and performs whatever part of
|
||||
its purpose remains meaningful.
|
||||
|
||||
(For example, a function in a library to compute square roots has
|
||||
a purpose that is entirely well-defined independent of the
|
||||
application. Therefore, Subsection 2d requires that any
|
||||
application-supplied function or table used by this function must
|
||||
be optional: if the application does not supply it, the square
|
||||
root function must still compute square roots.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Library,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
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
|
||||
on the Library, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
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
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Library.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Library
|
||||
with the Library (or with a work based on the Library) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
||||
License instead of this License to a given copy of the Library. To do
|
||||
this, you must alter all the notices that refer to this License, so
|
||||
that they refer to the ordinary GNU General Public License, version 2,
|
||||
instead of to this License. (If a newer version than version 2 of the
|
||||
ordinary GNU General Public License has appeared, then you can specify
|
||||
that version instead if you wish.) Do not make any other change in
|
||||
these notices.
|
||||
|
||||
Once this change is made in a given copy, it is irreversible for
|
||||
that copy, so the ordinary GNU General Public License applies to all
|
||||
subsequent copies and derivative works made from that copy.
|
||||
|
||||
This option is useful when you wish to copy part of the code of
|
||||
the Library into a program that is not a library.
|
||||
|
||||
4. You may copy and distribute the Library (or a portion or
|
||||
derivative of it, under Section 2) in object code or executable form
|
||||
under the terms of Sections 1 and 2 above provided that you accompany
|
||||
it with the complete corresponding machine-readable source code, which
|
||||
must be distributed under the terms of Sections 1 and 2 above on a
|
||||
medium customarily used for software interchange.
|
||||
|
||||
If distribution of object code is made by offering access to copy
|
||||
from a designated place, then offering equivalent access to copy the
|
||||
source code from the same place satisfies the requirement to
|
||||
distribute the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
5. A program that contains no derivative of any portion of the
|
||||
Library, but is designed to work with the Library by being compiled or
|
||||
linked with it, is called a "work that uses the Library". Such a
|
||||
work, in isolation, is not a derivative work of the Library, and
|
||||
therefore falls outside the scope of this License.
|
||||
|
||||
However, linking a "work that uses the Library" with the Library
|
||||
creates an executable that is a derivative of the Library (because it
|
||||
contains portions of the Library), rather than a "work that uses the
|
||||
library". The executable is therefore covered by this License.
|
||||
Section 6 states terms for distribution of such executables.
|
||||
|
||||
When a "work that uses the Library" uses material from a header file
|
||||
that is part of the Library, the object code for the work may be a
|
||||
derivative work of the Library even though the source code is not.
|
||||
Whether this is true is especially significant if the work can be
|
||||
linked without the Library, or if the work is itself a library. The
|
||||
threshold for this to be true is not precisely defined by law.
|
||||
|
||||
If such an object file uses only numerical parameters, data
|
||||
structure layouts and accessors, and small macros and small inline
|
||||
functions (ten lines or less in length), then the use of the object
|
||||
file is unrestricted, regardless of whether it is legally a derivative
|
||||
work. (Executables containing this object code plus portions of the
|
||||
Library will still fall under Section 6.)
|
||||
|
||||
Otherwise, if the work is a derivative of the Library, you may
|
||||
distribute the object code for the work under the terms of Section 6.
|
||||
Any executables containing that work also fall under Section 6,
|
||||
whether or not they are linked directly with the Library itself.
|
||||
|
||||
6. As an exception to the Sections above, you may also combine or
|
||||
link a "work that uses the Library" with the Library to produce a
|
||||
work containing portions of the Library, and distribute that work
|
||||
under terms of your choice, provided that the terms permit
|
||||
modification of the work for the customer's own use and reverse
|
||||
engineering for debugging such modifications.
|
||||
|
||||
You must give prominent notice with each copy of the work that the
|
||||
Library is used in it and that the Library and its use are covered by
|
||||
this License. You must supply a copy of this License. If the work
|
||||
during execution displays copyright notices, you must include the
|
||||
copyright notice for the Library among them, as well as a reference
|
||||
directing the user to the copy of this License. Also, you must do one
|
||||
of these things:
|
||||
|
||||
a) Accompany the work with the complete corresponding
|
||||
machine-readable source code for the Library including whatever
|
||||
changes were used in the work (which must be distributed under
|
||||
Sections 1 and 2 above); and, if the work is an executable linked
|
||||
with the Library, with the complete machine-readable "work that
|
||||
uses the Library", as object code and/or source code, so that the
|
||||
user can modify the Library and then relink to produce a modified
|
||||
executable containing the modified Library. (It is understood
|
||||
that the user who changes the contents of definitions files in the
|
||||
Library will not necessarily be able to recompile the application
|
||||
to use the modified definitions.)
|
||||
|
||||
b) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (1) uses at run time a
|
||||
copy of the library already present on the user's computer system,
|
||||
rather than copying library functions into the executable, and (2)
|
||||
will operate properly with a modified version of the library, if
|
||||
the user installs one, as long as the modified version is
|
||||
interface-compatible with the version that the work was made with.
|
||||
|
||||
c) Accompany the work with a written offer, valid for at
|
||||
least three years, to give the same user the materials
|
||||
specified in Subsection 6a, above, for a charge no more
|
||||
than the cost of performing this distribution.
|
||||
|
||||
d) If distribution of the work is made by offering access to copy
|
||||
from a designated place, offer equivalent access to copy the above
|
||||
specified materials from the same place.
|
||||
|
||||
e) Verify that the user has already received a copy of these
|
||||
materials or that you have already sent this user a copy.
|
||||
|
||||
For an executable, the required form of the "work that uses the
|
||||
Library" must include any data and utility programs needed for
|
||||
reproducing the executable from it. However, as a special exception,
|
||||
the materials to be distributed need not include anything that is
|
||||
normally distributed (in either source or binary form) with the major
|
||||
components (compiler, kernel, and so on) of the operating system on
|
||||
which the executable runs, unless that component itself accompanies
|
||||
the executable.
|
||||
|
||||
It may happen that this requirement contradicts the license
|
||||
restrictions of other proprietary libraries that do not normally
|
||||
accompany the operating system. Such a contradiction means you cannot
|
||||
use both them and the Library together in an executable that you
|
||||
distribute.
|
||||
|
||||
7. You may place library facilities that are a work based on the
|
||||
Library side-by-side in a single library together with other library
|
||||
facilities not covered by this License, and distribute such a combined
|
||||
library, provided that the separate distribution of the work based on
|
||||
the Library and of the other library facilities is otherwise
|
||||
permitted, and provided that you do these two things:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work
|
||||
based on the Library, uncombined with any other library
|
||||
facilities. This must be distributed under the terms of the
|
||||
Sections above.
|
||||
|
||||
b) Give prominent notice with the combined library of the fact
|
||||
that part of it is a work based on the Library, and explaining
|
||||
where to find the accompanying uncombined form of the same work.
|
||||
|
||||
8. You may not copy, modify, sublicense, link with, or distribute
|
||||
the Library except as expressly provided under this License. Any
|
||||
attempt otherwise to copy, modify, sublicense, link with, or
|
||||
distribute the Library is void, and will automatically terminate your
|
||||
rights under this License. However, parties who have received copies,
|
||||
or rights, from you under this License will not have their licenses
|
||||
terminated so long as such parties remain in full compliance.
|
||||
|
||||
9. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Library or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Library (or any work based on the
|
||||
Library), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Library or works based on it.
|
||||
|
||||
10. Each time you redistribute the Library (or any work based on the
|
||||
Library), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute, link with or modify the Library
|
||||
subject to these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties with
|
||||
this License.
|
||||
|
||||
11. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Library at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Library by
|
||||
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
|
||||
refrain entirely from distribution of the Library.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under any
|
||||
particular circumstance, the balance of the section is intended to apply,
|
||||
and the section as a whole is intended to apply in other circumstances.
|
||||
|
||||
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
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
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
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
12. If the distribution and/or use of the Library is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Library under this License may add
|
||||
an explicit geographical distribution limitation excluding those countries,
|
||||
so that distribution is permitted only in or among countries not thus
|
||||
excluded. In such case, this License incorporates the limitation as if
|
||||
written in the body of this License.
|
||||
|
||||
13. The Free Software Foundation may publish revised and/or new
|
||||
versions of the Lesser 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 address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Library
|
||||
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 either of that version or of any later version published by
|
||||
the Free Software Foundation. If the Library does not specify a
|
||||
license version number, you may choose any version ever published by
|
||||
the Free Software Foundation.
|
||||
|
||||
14. If you wish to incorporate parts of the Library into other free
|
||||
programs whose distribution conditions are incompatible with these,
|
||||
write to the author to ask for permission. For software which is
|
||||
copyrighted by the Free Software Foundation, write to the Free
|
||||
Software Foundation; we sometimes 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 promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. 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 REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
29
sites/all/modules/civicrm/vendor/phenx/php-font-lib/README.md
vendored
Normal file
29
sites/all/modules/civicrm/vendor/phenx/php-font-lib/README.md
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
# PHP Font Lib
|
||||
|
||||
[](https://travis-ci.org/PhenX/php-font-lib)
|
||||
|
||||
|
||||
This library can be used to:
|
||||
* Read TrueType, OpenType (with TrueType glyphs), WOFF font files
|
||||
* Extract basic info (name, style, etc)
|
||||
* Extract advanced info (horizontal metrics, glyph names, glyph shapes, etc)
|
||||
* Make an Adobe Font Metrics (AFM) file from a font
|
||||
|
||||
You can find a demo GUI [here](http://pxd.me/php-font-lib/www/font_explorer.html).
|
||||
|
||||
This project was initiated by the need to read font files in the [DOMPDF project](https://github.com/dompdf/dompdf).
|
||||
|
||||
Usage Example
|
||||
-------------
|
||||
|
||||
```
|
||||
$font = \FontLib\Font::load('../../fontfile.ttf');
|
||||
$font->parse(); // for getFontWeight() to work this call must be done first!
|
||||
echo $font->getFontName() .'<br>';
|
||||
echo $font->getFontSubfamily() .'<br>';
|
||||
echo $font->getFontSubfamilyID() .'<br>';
|
||||
echo $font->getFontFullName() .'<br>';
|
||||
echo $font->getFontVersion() .'<br>';
|
||||
echo $font->getFontWeight() .'<br>';
|
||||
echo $font->getFontPostscriptName() .'<br>';
|
||||
```
|
23
sites/all/modules/civicrm/vendor/phenx/php-font-lib/bower.json
vendored
Normal file
23
sites/all/modules/civicrm/vendor/phenx/php-font-lib/bower.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"name": "php-font-lib",
|
||||
"version": "0.3.1",
|
||||
"license": "LGPL-3.0",
|
||||
"keywords": [
|
||||
"font",
|
||||
"parse",
|
||||
"export",
|
||||
"truetype",
|
||||
"opentype",
|
||||
"woff"
|
||||
],
|
||||
"homepage": "https://github.com/PhenX/php-font-lib",
|
||||
"_release": "0.3.1",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "v0.3.1",
|
||||
"commit": "d13682b7e27d14a6323c441426f3dde1cd86c751"
|
||||
},
|
||||
"_source": "https://github.com/PhenX/php-font-lib.git",
|
||||
"_target": "*",
|
||||
"_originalSource": "https://github.com/PhenX/php-font-lib.git"
|
||||
}
|
24
sites/all/modules/civicrm/vendor/phenx/php-font-lib/composer.json
vendored
Normal file
24
sites/all/modules/civicrm/vendor/phenx/php-font-lib/composer.json
vendored
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "phenx/php-font-lib",
|
||||
"type": "library",
|
||||
"description": "A library to read, parse, export and make subsets of different types of font files.",
|
||||
"homepage": "https://github.com/PhenX/php-font-lib",
|
||||
"license": "LGPL-3.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Ménager",
|
||||
"email": "fabien.menager@gmail.com"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"FontLib\\": "src/FontLib"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"bin-dir": "bin"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8"
|
||||
}
|
||||
}
|
1
sites/all/modules/civicrm/vendor/phenx/php-font-lib/index.php
vendored
Normal file
1
sites/all/modules/civicrm/vendor/phenx/php-font-lib/index.php
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
<?php header("Location: www/"); ?>
|
231
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map
vendored
Normal file
231
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/adobe-standard-encoding.map
vendored
Normal file
|
@ -0,0 +1,231 @@
|
|||
// Adobe Standard Encoding table for ttf2pt1
|
||||
// Thomas Henlich <Thomas.Henlich@mailbox.tu-dresden.de>
|
||||
|
||||
=20 U+0020 SPACE
|
||||
=21 U+0021 EXCLAMATION MARK
|
||||
=22 U+0022 QUOTATION MARK
|
||||
=23 U+0023 NUMBER SIGN
|
||||
=24 U+0024 DOLLAR SIGN
|
||||
=25 U+0025 PERCENT SIGN
|
||||
=26 U+0026 AMPERSAND
|
||||
=27 U+2019 RIGHT SINGLE QUOTATION MARK
|
||||
=28 U+0028 LEFT PARENTHESIS
|
||||
=29 U+0029 RIGHT PARENTHESIS
|
||||
=2A U+002A ASTERISK
|
||||
=2B U+002B PLUS SIGN
|
||||
=2C U+002C COMMA
|
||||
=2D U+002D HYPHEN-MINUS
|
||||
=2E U+002E FULL STOP
|
||||
=2F U+002F SOLIDUS
|
||||
=30 U+0030 DIGIT ZERO
|
||||
=31 U+0031 DIGIT ONE
|
||||
=32 U+0032 DIGIT TWO
|
||||
=33 U+0033 DIGIT THREE
|
||||
=34 U+0034 DIGIT FOUR
|
||||
=35 U+0035 DIGIT FIVE
|
||||
=36 U+0036 DIGIT SIX
|
||||
=37 U+0037 DIGIT SEVEN
|
||||
=38 U+0038 DIGIT EIGHT
|
||||
=39 U+0039 DIGIT NINE
|
||||
=3A U+003A COLON
|
||||
=3B U+003B SEMICOLON
|
||||
=3C U+003C LESS-THAN SIGN
|
||||
=3D U+003D EQUALS SIGN
|
||||
=3E U+003E GREATER-THAN SIGN
|
||||
=3F U+003F QUESTION MARK
|
||||
=40 U+0040 COMMERCIAL AT
|
||||
=41 U+0041 LATIN CAPITAL LETTER A
|
||||
=42 U+0042 LATIN CAPITAL LETTER B
|
||||
=43 U+0043 LATIN CAPITAL LETTER C
|
||||
=44 U+0044 LATIN CAPITAL LETTER D
|
||||
=45 U+0045 LATIN CAPITAL LETTER E
|
||||
=46 U+0046 LATIN CAPITAL LETTER F
|
||||
=47 U+0047 LATIN CAPITAL LETTER G
|
||||
=48 U+0048 LATIN CAPITAL LETTER H
|
||||
=49 U+0049 LATIN CAPITAL LETTER I
|
||||
=4A U+004A LATIN CAPITAL LETTER J
|
||||
=4B U+004B LATIN CAPITAL LETTER K
|
||||
=4C U+004C LATIN CAPITAL LETTER L
|
||||
=4D U+004D LATIN CAPITAL LETTER M
|
||||
=4E U+004E LATIN CAPITAL LETTER N
|
||||
=4F U+004F LATIN CAPITAL LETTER O
|
||||
=50 U+0050 LATIN CAPITAL LETTER P
|
||||
=51 U+0051 LATIN CAPITAL LETTER Q
|
||||
=52 U+0052 LATIN CAPITAL LETTER R
|
||||
=53 U+0053 LATIN CAPITAL LETTER S
|
||||
=54 U+0054 LATIN CAPITAL LETTER T
|
||||
=55 U+0055 LATIN CAPITAL LETTER U
|
||||
=56 U+0056 LATIN CAPITAL LETTER V
|
||||
=57 U+0057 LATIN CAPITAL LETTER W
|
||||
=58 U+0058 LATIN CAPITAL LETTER X
|
||||
=59 U+0059 LATIN CAPITAL LETTER Y
|
||||
=5A U+005A LATIN CAPITAL LETTER Z
|
||||
=5B U+005B LEFT SQUARE BRACKET
|
||||
=5C U+005C REVERSE SOLIDUS
|
||||
=5D U+005D RIGHT SQUARE BRACKET
|
||||
=5E U+005E CIRCUMFLEX ACCENT
|
||||
=5F U+005F LOW LINE
|
||||
=60 U+2018 LEFT SINGLE QUOTATION MARK
|
||||
=61 U+0061 LATIN SMALL LETTER A
|
||||
=62 U+0062 LATIN SMALL LETTER B
|
||||
=63 U+0063 LATIN SMALL LETTER C
|
||||
=64 U+0064 LATIN SMALL LETTER D
|
||||
=65 U+0065 LATIN SMALL LETTER E
|
||||
=66 U+0066 LATIN SMALL LETTER F
|
||||
=67 U+0067 LATIN SMALL LETTER G
|
||||
=68 U+0068 LATIN SMALL LETTER H
|
||||
=69 U+0069 LATIN SMALL LETTER I
|
||||
=6A U+006A LATIN SMALL LETTER J
|
||||
=6B U+006B LATIN SMALL LETTER K
|
||||
=6C U+006C LATIN SMALL LETTER L
|
||||
=6D U+006D LATIN SMALL LETTER M
|
||||
=6E U+006E LATIN SMALL LETTER N
|
||||
=6F U+006F LATIN SMALL LETTER O
|
||||
=70 U+0070 LATIN SMALL LETTER P
|
||||
=71 U+0071 LATIN SMALL LETTER Q
|
||||
=72 U+0072 LATIN SMALL LETTER R
|
||||
=73 U+0073 LATIN SMALL LETTER S
|
||||
=74 U+0074 LATIN SMALL LETTER T
|
||||
=75 U+0075 LATIN SMALL LETTER U
|
||||
=76 U+0076 LATIN SMALL LETTER V
|
||||
=77 U+0077 LATIN SMALL LETTER W
|
||||
=78 U+0078 LATIN SMALL LETTER X
|
||||
=79 U+0079 LATIN SMALL LETTER Y
|
||||
=7A U+007A LATIN SMALL LETTER Z
|
||||
=7B U+007B LEFT CURLY BRACKET
|
||||
=7C U+007C VERTICAL LINE
|
||||
=7D U+007D RIGHT CURLY BRACKET
|
||||
=7E U+007E TILDE
|
||||
=A1 U+00A1 INVERTED EXCLAMATION MARK
|
||||
=A2 U+00A2 CENT SIGN
|
||||
=A3 U+00A3 POUND SIGN
|
||||
=A4 U+2044 FRACTION SLASH
|
||||
=A5 U+00A5 YEN SIGN
|
||||
=A6 U+0192 LATIN SMALL LETTER F WITH HOOK
|
||||
=A7 U+00A7 SECTION SIGN
|
||||
=A8 U+00A4 CURRENCY SIGN
|
||||
=A9 U+0027 APOSTROPHE
|
||||
=AA U+201C LEFT DOUBLE QUOTATION MARK
|
||||
=AB U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
=AC U+2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
=AD U+203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
=AE U+FB01 LATIN SMALL LIGATURE FI
|
||||
=AF U+FB02 LATIN SMALL LIGATURE FL
|
||||
=B1 U+2013 EN DASH
|
||||
=B2 U+2020 DAGGER
|
||||
=B3 U+2021 DOUBLE DAGGER
|
||||
=B4 U+00B7 MIDDLE DOT
|
||||
=B6 U+00B6 PILCROW SIGN
|
||||
=B7 U+2022 BULLET
|
||||
=B8 U+201A SINGLE LOW-9 QUOTATION MARK
|
||||
=B9 U+201E DOUBLE LOW-9 QUOTATION MARK
|
||||
=BA U+201D RIGHT DOUBLE QUOTATION MARK
|
||||
=BB U+00BB RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
=BC U+2026 HORIZONTAL ELLIPSIS
|
||||
=BD U+2030 PER MILLE SIGN
|
||||
=BF U+00BF INVERTED QUESTION MARK
|
||||
=C1 U+0060 GRAVE ACCENT
|
||||
=C2 U+00B4 ACUTE ACCENT
|
||||
=C3 U+02C6 MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
=C4 U+02DC SMALL TILDE
|
||||
=C5 U+00AF MACRON
|
||||
=C6 U+02D8 BREVE
|
||||
=C7 U+02D9 DOT ABOVE
|
||||
=C8 U+00A8 DIAERESIS
|
||||
=CA U+02DA RING ABOVE
|
||||
=CB U+00B8 CEDILLA
|
||||
=CD U+02DD DOUBLE ACUTE ACCENT
|
||||
=CE U+02DB OGONEK
|
||||
=CF U+02C7 CARON
|
||||
=D0 U+2014 EM DASH
|
||||
=E1 U+00C6 LATIN CAPITAL LETTER AE
|
||||
=E3 U+00AA FEMININE ORDINAL INDICATOR
|
||||
=E8 U+0141 LATIN CAPITAL LETTER L WITH STROKE
|
||||
=E9 U+00D8 LATIN CAPITAL LETTER O WITH STROKE
|
||||
=EA U+0152 LATIN CAPITAL LIGATURE OE
|
||||
=EB U+00BA MASCULINE ORDINAL INDICATOR
|
||||
=F1 U+00E6 LATIN SMALL LETTER AE
|
||||
=F5 U+0131 LATIN SMALL LETTER DOTLESS I
|
||||
=F8 U+0142 LATIN SMALL LETTER L WITH STROKE
|
||||
=F9 U+00F8 LATIN SMALL LETTER O WITH STROKE
|
||||
=FA U+0153 LATIN SMALL LIGATURE OE
|
||||
=FB U+00DF LATIN SMALL LETTER SHARP S
|
||||
|
||||
// unencoded characters:
|
||||
=100 U+00E7 LATIN SMALL LETTER C WITH CEDILLA
|
||||
=101 U+00FF LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
=102 U+00E3 LATIN SMALL LETTER A WITH TILDE
|
||||
=103 U+00EE LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
=104 U+00B3 SUPERSCRIPT THREE
|
||||
=105 U+00EA LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
=106 U+00FE LATIN SMALL LETTER THORN
|
||||
=107 U+00E8 LATIN SMALL LETTER E WITH GRAVE
|
||||
=108 U+00B2 SUPERSCRIPT TWO
|
||||
=109 U+00E9 LATIN SMALL LETTER E WITH ACUTE
|
||||
=10A U+00F5 LATIN SMALL LETTER O WITH TILDE
|
||||
=10B U+00C1 LATIN CAPITAL LETTER A WITH ACUTE
|
||||
=10C U+00F4 LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
=10D U+00FD LATIN SMALL LETTER Y WITH ACUTE
|
||||
=10E U+00FC LATIN SMALL LETTER U WITH DIAERESIS
|
||||
=10F U+00BE VULGAR FRACTION THREE QUARTERS
|
||||
=110 U+00E2 LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
=111 U+00D0 LATIN CAPITAL LETTER ETH
|
||||
=112 U+00EB LATIN SMALL LETTER E WITH DIAERESIS
|
||||
=113 U+00F9 LATIN SMALL LETTER U WITH GRAVE
|
||||
=114 U+2122 TRADE MARK SIGN
|
||||
=115 U+00F2 LATIN SMALL LETTER O WITH GRAVE
|
||||
=116 U+0161 LATIN SMALL LETTER S WITH CARON
|
||||
=117 U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
=118 U+00FA LATIN SMALL LETTER U WITH ACUTE
|
||||
=119 U+00E0 LATIN SMALL LETTER A WITH GRAVE
|
||||
=11A U+00F1 LATIN SMALL LETTER N WITH TILDE
|
||||
=11B U+00E5 LATIN SMALL LETTER A WITH RING ABOVE
|
||||
=11C U+017E LATIN SMALL LETTER Z WITH CARON
|
||||
=11D U+00CE LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
=11E U+00D1 LATIN CAPITAL LETTER N WITH TILDE
|
||||
=11F U+00FB LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
=120 U+00CA LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
=121 U+00CD LATIN CAPITAL LETTER I WITH ACUTE
|
||||
=122 U+00C7 LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
=123 U+00D6 LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
=124 U+0160 LATIN CAPITAL LETTER S WITH CARON
|
||||
=125 U+00CC LATIN CAPITAL LETTER I WITH GRAVE
|
||||
=126 U+00E4 LATIN SMALL LETTER A WITH DIAERESIS
|
||||
=127 U+00D2 LATIN CAPITAL LETTER O WITH GRAVE
|
||||
=128 U+00C8 LATIN CAPITAL LETTER E WITH GRAVE
|
||||
=129 U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
=12A U+00AE REGISTERED SIGN
|
||||
=12B U+00D5 LATIN CAPITAL LETTER O WITH TILDE
|
||||
=12C U+00BC VULGAR FRACTION ONE QUARTER
|
||||
=12D U+00D9 LATIN CAPITAL LETTER U WITH GRAVE
|
||||
=12E U+00DB LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
=12F U+00DE LATIN CAPITAL LETTER THORN
|
||||
=130 U+00F7 DIVISION SIGN
|
||||
=131 U+00C3 LATIN CAPITAL LETTER A WITH TILDE
|
||||
=132 U+00DA LATIN CAPITAL LETTER U WITH ACUTE
|
||||
=133 U+00D4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
=134 U+00AC NOT SIGN
|
||||
=135 U+00C5 LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
=136 U+00EF LATIN SMALL LETTER I WITH DIAERESIS
|
||||
=137 U+00ED LATIN SMALL LETTER I WITH ACUTE
|
||||
=138 U+00E1 LATIN SMALL LETTER A WITH ACUTE
|
||||
=139 U+00B1 PLUS-MINUS SIGN
|
||||
=13A U+00D7 MULTIPLICATION SIGN
|
||||
=13B U+00DC LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
=13C U+2212 MINUS SIGN
|
||||
=13D U+00B9 SUPERSCRIPT ONE
|
||||
=13E U+00C9 LATIN CAPITAL LETTER E WITH ACUTE
|
||||
=13F U+00C2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
=140 U+00A9 COPYRIGHT SIGN
|
||||
=141 U+00C0 LATIN CAPITAL LETTER A WITH GRAVE
|
||||
=142 U+00F6 LATIN SMALL LETTER O WITH DIAERESIS
|
||||
=143 U+00F3 LATIN SMALL LETTER O WITH ACUTE
|
||||
=144 U+00B0 DEGREE SIGN
|
||||
=145 U+00EC LATIN SMALL LETTER I WITH GRAVE
|
||||
=146 U+00B5 MICRO SIGN
|
||||
=147 U+00D3 LATIN CAPITAL LETTER O WITH ACUTE
|
||||
=148 U+00F0 LATIN SMALL LETTER ETH
|
||||
=149 U+00C4 LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
=14A U+00DD LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
=14B U+00A6 BROKEN BAR
|
||||
=14C U+00BD VULGAR FRACTION ONE HALF
|
251
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1250.map
vendored
Normal file
251
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1250.map
vendored
Normal file
|
@ -0,0 +1,251 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!89 U+2030 perthousand
|
||||
!8A U+0160 Scaron
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+015A Sacute
|
||||
!8D U+0164 Tcaron
|
||||
!8E U+017D Zcaron
|
||||
!8F U+0179 Zacute
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!99 U+2122 trademark
|
||||
!9A U+0161 scaron
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+015B sacute
|
||||
!9D U+0165 tcaron
|
||||
!9E U+017E zcaron
|
||||
!9F U+017A zacute
|
||||
!A0 U+00A0 space
|
||||
!A1 U+02C7 caron
|
||||
!A2 U+02D8 breve
|
||||
!A3 U+0141 Lslash
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+0104 Aogonek
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+015E Scedilla
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+017B Zdotaccent
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+02DB ogonek
|
||||
!B3 U+0142 lslash
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+0105 aogonek
|
||||
!BA U+015F scedilla
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+013D Lcaron
|
||||
!BD U+02DD hungarumlaut
|
||||
!BE U+013E lcaron
|
||||
!BF U+017C zdotaccent
|
||||
!C0 U+0154 Racute
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+0102 Abreve
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+0139 Lacute
|
||||
!C6 U+0106 Cacute
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+010C Ccaron
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+0118 Eogonek
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+011A Ecaron
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+010E Dcaron
|
||||
!D0 U+0110 Dcroat
|
||||
!D1 U+0143 Nacute
|
||||
!D2 U+0147 Ncaron
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+0150 Ohungarumlaut
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+0158 Rcaron
|
||||
!D9 U+016E Uring
|
||||
!DA U+00DA Uacute
|
||||
!DB U+0170 Uhungarumlaut
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+00DD Yacute
|
||||
!DE U+0162 Tcommaaccent
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+0155 racute
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+0103 abreve
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+013A lacute
|
||||
!E6 U+0107 cacute
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+010D ccaron
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+0119 eogonek
|
||||
!EB U+00EB edieresis
|
||||
!EC U+011B ecaron
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+010F dcaron
|
||||
!F0 U+0111 dcroat
|
||||
!F1 U+0144 nacute
|
||||
!F2 U+0148 ncaron
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+0151 ohungarumlaut
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+0159 rcaron
|
||||
!F9 U+016F uring
|
||||
!FA U+00FA uacute
|
||||
!FB U+0171 uhungarumlaut
|
||||
!FC U+00FC udieresis
|
||||
!FD U+00FD yacute
|
||||
!FE U+0163 tcommaaccent
|
||||
!FF U+02D9 dotaccent
|
255
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1251.map
vendored
Normal file
255
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1251.map
vendored
Normal file
|
@ -0,0 +1,255 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0402 afii10051
|
||||
!81 U+0403 afii10052
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0453 afii10100
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!88 U+20AC Euro
|
||||
!89 U+2030 perthousand
|
||||
!8A U+0409 afii10058
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+040A afii10059
|
||||
!8D U+040C afii10061
|
||||
!8E U+040B afii10060
|
||||
!8F U+040F afii10145
|
||||
!90 U+0452 afii10099
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!99 U+2122 trademark
|
||||
!9A U+0459 afii10106
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+045A afii10107
|
||||
!9D U+045C afii10109
|
||||
!9E U+045B afii10108
|
||||
!9F U+045F afii10193
|
||||
!A0 U+00A0 space
|
||||
!A1 U+040E afii10062
|
||||
!A2 U+045E afii10110
|
||||
!A3 U+0408 afii10057
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+0490 afii10050
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+0401 afii10023
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+0404 afii10053
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+0407 afii10056
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+0406 afii10055
|
||||
!B3 U+0456 afii10103
|
||||
!B4 U+0491 afii10098
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+0451 afii10071
|
||||
!B9 U+2116 afii61352
|
||||
!BA U+0454 afii10101
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+0458 afii10105
|
||||
!BD U+0405 afii10054
|
||||
!BE U+0455 afii10102
|
||||
!BF U+0457 afii10104
|
||||
!C0 U+0410 afii10017
|
||||
!C1 U+0411 afii10018
|
||||
!C2 U+0412 afii10019
|
||||
!C3 U+0413 afii10020
|
||||
!C4 U+0414 afii10021
|
||||
!C5 U+0415 afii10022
|
||||
!C6 U+0416 afii10024
|
||||
!C7 U+0417 afii10025
|
||||
!C8 U+0418 afii10026
|
||||
!C9 U+0419 afii10027
|
||||
!CA U+041A afii10028
|
||||
!CB U+041B afii10029
|
||||
!CC U+041C afii10030
|
||||
!CD U+041D afii10031
|
||||
!CE U+041E afii10032
|
||||
!CF U+041F afii10033
|
||||
!D0 U+0420 afii10034
|
||||
!D1 U+0421 afii10035
|
||||
!D2 U+0422 afii10036
|
||||
!D3 U+0423 afii10037
|
||||
!D4 U+0424 afii10038
|
||||
!D5 U+0425 afii10039
|
||||
!D6 U+0426 afii10040
|
||||
!D7 U+0427 afii10041
|
||||
!D8 U+0428 afii10042
|
||||
!D9 U+0429 afii10043
|
||||
!DA U+042A afii10044
|
||||
!DB U+042B afii10045
|
||||
!DC U+042C afii10046
|
||||
!DD U+042D afii10047
|
||||
!DE U+042E afii10048
|
||||
!DF U+042F afii10049
|
||||
!E0 U+0430 afii10065
|
||||
!E1 U+0431 afii10066
|
||||
!E2 U+0432 afii10067
|
||||
!E3 U+0433 afii10068
|
||||
!E4 U+0434 afii10069
|
||||
!E5 U+0435 afii10070
|
||||
!E6 U+0436 afii10072
|
||||
!E7 U+0437 afii10073
|
||||
!E8 U+0438 afii10074
|
||||
!E9 U+0439 afii10075
|
||||
!EA U+043A afii10076
|
||||
!EB U+043B afii10077
|
||||
!EC U+043C afii10078
|
||||
!ED U+043D afii10079
|
||||
!EE U+043E afii10080
|
||||
!EF U+043F afii10081
|
||||
!F0 U+0440 afii10082
|
||||
!F1 U+0441 afii10083
|
||||
!F2 U+0442 afii10084
|
||||
!F3 U+0443 afii10085
|
||||
!F4 U+0444 afii10086
|
||||
!F5 U+0445 afii10087
|
||||
!F6 U+0446 afii10088
|
||||
!F7 U+0447 afii10089
|
||||
!F8 U+0448 afii10090
|
||||
!F9 U+0449 afii10091
|
||||
!FA U+044A afii10092
|
||||
!FB U+044B afii10093
|
||||
!FC U+044C afii10094
|
||||
!FD U+044D afii10095
|
||||
!FE U+044E afii10096
|
||||
!FF U+044F afii10097
|
251
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1252.map
vendored
Normal file
251
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1252.map
vendored
Normal file
|
@ -0,0 +1,251 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0192 florin
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!88 U+02C6 circumflex
|
||||
!89 U+2030 perthousand
|
||||
!8A U+0160 Scaron
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+0152 OE
|
||||
!8E U+017D Zcaron
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!98 U+02DC tilde
|
||||
!99 U+2122 trademark
|
||||
!9A U+0161 scaron
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+0153 oe
|
||||
!9E U+017E zcaron
|
||||
!9F U+0178 Ydieresis
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00AA ordfeminine
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00BA ordmasculine
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+00C3 Atilde
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+00CC Igrave
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+00D0 Eth
|
||||
!D1 U+00D1 Ntilde
|
||||
!D2 U+00D2 Ograve
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+00DD Yacute
|
||||
!DE U+00DE Thorn
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+00E3 atilde
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+00EC igrave
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+00F0 eth
|
||||
!F1 U+00F1 ntilde
|
||||
!F2 U+00F2 ograve
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+00FD yacute
|
||||
!FE U+00FE thorn
|
||||
!FF U+00FF ydieresis
|
239
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1253.map
vendored
Normal file
239
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1253.map
vendored
Normal file
|
@ -0,0 +1,239 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0192 florin
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!89 U+2030 perthousand
|
||||
!8B U+2039 guilsinglleft
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!99 U+2122 trademark
|
||||
!9B U+203A guilsinglright
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0385 dieresistonos
|
||||
!A2 U+0386 Alphatonos
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+2015 afii00208
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+0384 tonos
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+0388 Epsilontonos
|
||||
!B9 U+0389 Etatonos
|
||||
!BA U+038A Iotatonos
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+038C Omicrontonos
|
||||
!BD U+00BD onehalf
|
||||
!BE U+038E Upsilontonos
|
||||
!BF U+038F Omegatonos
|
||||
!C0 U+0390 iotadieresistonos
|
||||
!C1 U+0391 Alpha
|
||||
!C2 U+0392 Beta
|
||||
!C3 U+0393 Gamma
|
||||
!C4 U+0394 Delta
|
||||
!C5 U+0395 Epsilon
|
||||
!C6 U+0396 Zeta
|
||||
!C7 U+0397 Eta
|
||||
!C8 U+0398 Theta
|
||||
!C9 U+0399 Iota
|
||||
!CA U+039A Kappa
|
||||
!CB U+039B Lambda
|
||||
!CC U+039C Mu
|
||||
!CD U+039D Nu
|
||||
!CE U+039E Xi
|
||||
!CF U+039F Omicron
|
||||
!D0 U+03A0 Pi
|
||||
!D1 U+03A1 Rho
|
||||
!D3 U+03A3 Sigma
|
||||
!D4 U+03A4 Tau
|
||||
!D5 U+03A5 Upsilon
|
||||
!D6 U+03A6 Phi
|
||||
!D7 U+03A7 Chi
|
||||
!D8 U+03A8 Psi
|
||||
!D9 U+03A9 Omega
|
||||
!DA U+03AA Iotadieresis
|
||||
!DB U+03AB Upsilondieresis
|
||||
!DC U+03AC alphatonos
|
||||
!DD U+03AD epsilontonos
|
||||
!DE U+03AE etatonos
|
||||
!DF U+03AF iotatonos
|
||||
!E0 U+03B0 upsilondieresistonos
|
||||
!E1 U+03B1 alpha
|
||||
!E2 U+03B2 beta
|
||||
!E3 U+03B3 gamma
|
||||
!E4 U+03B4 delta
|
||||
!E5 U+03B5 epsilon
|
||||
!E6 U+03B6 zeta
|
||||
!E7 U+03B7 eta
|
||||
!E8 U+03B8 theta
|
||||
!E9 U+03B9 iota
|
||||
!EA U+03BA kappa
|
||||
!EB U+03BB lambda
|
||||
!EC U+03BC mu
|
||||
!ED U+03BD nu
|
||||
!EE U+03BE xi
|
||||
!EF U+03BF omicron
|
||||
!F0 U+03C0 pi
|
||||
!F1 U+03C1 rho
|
||||
!F2 U+03C2 sigma1
|
||||
!F3 U+03C3 sigma
|
||||
!F4 U+03C4 tau
|
||||
!F5 U+03C5 upsilon
|
||||
!F6 U+03C6 phi
|
||||
!F7 U+03C7 chi
|
||||
!F8 U+03C8 psi
|
||||
!F9 U+03C9 omega
|
||||
!FA U+03CA iotadieresis
|
||||
!FB U+03CB upsilondieresis
|
||||
!FC U+03CC omicrontonos
|
||||
!FD U+03CD upsilontonos
|
||||
!FE U+03CE omegatonos
|
249
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1254.map
vendored
Normal file
249
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1254.map
vendored
Normal file
|
@ -0,0 +1,249 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0192 florin
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!88 U+02C6 circumflex
|
||||
!89 U+2030 perthousand
|
||||
!8A U+0160 Scaron
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+0152 OE
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!98 U+02DC tilde
|
||||
!99 U+2122 trademark
|
||||
!9A U+0161 scaron
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+0153 oe
|
||||
!9F U+0178 Ydieresis
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00AA ordfeminine
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00BA ordmasculine
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+00C3 Atilde
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+00CC Igrave
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+011E Gbreve
|
||||
!D1 U+00D1 Ntilde
|
||||
!D2 U+00D2 Ograve
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+0130 Idotaccent
|
||||
!DE U+015E Scedilla
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+00E3 atilde
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+00EC igrave
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+011F gbreve
|
||||
!F1 U+00F1 ntilde
|
||||
!F2 U+00F2 ograve
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+0131 dotlessi
|
||||
!FE U+015F scedilla
|
||||
!FF U+00FF ydieresis
|
233
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1255.map
vendored
Normal file
233
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1255.map
vendored
Normal file
|
@ -0,0 +1,233 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0192 florin
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!88 U+02C6 circumflex
|
||||
!89 U+2030 perthousand
|
||||
!8B U+2039 guilsinglleft
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!98 U+02DC tilde
|
||||
!99 U+2122 trademark
|
||||
!9B U+203A guilsinglright
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+20AA afii57636
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00D7 multiply
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD sfthyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 middot
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00F7 divide
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+05B0 afii57799
|
||||
!C1 U+05B1 afii57801
|
||||
!C2 U+05B2 afii57800
|
||||
!C3 U+05B3 afii57802
|
||||
!C4 U+05B4 afii57793
|
||||
!C5 U+05B5 afii57794
|
||||
!C6 U+05B6 afii57795
|
||||
!C7 U+05B7 afii57798
|
||||
!C8 U+05B8 afii57797
|
||||
!C9 U+05B9 afii57806
|
||||
!CB U+05BB afii57796
|
||||
!CC U+05BC afii57807
|
||||
!CD U+05BD afii57839
|
||||
!CE U+05BE afii57645
|
||||
!CF U+05BF afii57841
|
||||
!D0 U+05C0 afii57842
|
||||
!D1 U+05C1 afii57804
|
||||
!D2 U+05C2 afii57803
|
||||
!D3 U+05C3 afii57658
|
||||
!D4 U+05F0 afii57716
|
||||
!D5 U+05F1 afii57717
|
||||
!D6 U+05F2 afii57718
|
||||
!D7 U+05F3 gereshhebrew
|
||||
!D8 U+05F4 gershayimhebrew
|
||||
!E0 U+05D0 afii57664
|
||||
!E1 U+05D1 afii57665
|
||||
!E2 U+05D2 afii57666
|
||||
!E3 U+05D3 afii57667
|
||||
!E4 U+05D4 afii57668
|
||||
!E5 U+05D5 afii57669
|
||||
!E6 U+05D6 afii57670
|
||||
!E7 U+05D7 afii57671
|
||||
!E8 U+05D8 afii57672
|
||||
!E9 U+05D9 afii57673
|
||||
!EA U+05DA afii57674
|
||||
!EB U+05DB afii57675
|
||||
!EC U+05DC afii57676
|
||||
!ED U+05DD afii57677
|
||||
!EE U+05DE afii57678
|
||||
!EF U+05DF afii57679
|
||||
!F0 U+05E0 afii57680
|
||||
!F1 U+05E1 afii57681
|
||||
!F2 U+05E2 afii57682
|
||||
!F3 U+05E3 afii57683
|
||||
!F4 U+05E4 afii57684
|
||||
!F5 U+05E5 afii57685
|
||||
!F6 U+05E6 afii57686
|
||||
!F7 U+05E7 afii57687
|
||||
!F8 U+05E8 afii57688
|
||||
!F9 U+05E9 afii57689
|
||||
!FA U+05EA afii57690
|
||||
!FD U+200E afii299
|
||||
!FE U+200F afii300
|
244
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1257.map
vendored
Normal file
244
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1257.map
vendored
Normal file
|
@ -0,0 +1,244 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!89 U+2030 perthousand
|
||||
!8B U+2039 guilsinglleft
|
||||
!8D U+00A8 dieresis
|
||||
!8E U+02C7 caron
|
||||
!8F U+00B8 cedilla
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!99 U+2122 trademark
|
||||
!9B U+203A guilsinglright
|
||||
!9D U+00AF macron
|
||||
!9E U+02DB ogonek
|
||||
!A0 U+00A0 space
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00D8 Oslash
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+0156 Rcommaaccent
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00C6 AE
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00F8 oslash
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+0157 rcommaaccent
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00E6 ae
|
||||
!C0 U+0104 Aogonek
|
||||
!C1 U+012E Iogonek
|
||||
!C2 U+0100 Amacron
|
||||
!C3 U+0106 Cacute
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+0118 Eogonek
|
||||
!C7 U+0112 Emacron
|
||||
!C8 U+010C Ccaron
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+0179 Zacute
|
||||
!CB U+0116 Edotaccent
|
||||
!CC U+0122 Gcommaaccent
|
||||
!CD U+0136 Kcommaaccent
|
||||
!CE U+012A Imacron
|
||||
!CF U+013B Lcommaaccent
|
||||
!D0 U+0160 Scaron
|
||||
!D1 U+0143 Nacute
|
||||
!D2 U+0145 Ncommaaccent
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+014C Omacron
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+0172 Uogonek
|
||||
!D9 U+0141 Lslash
|
||||
!DA U+015A Sacute
|
||||
!DB U+016A Umacron
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+017B Zdotaccent
|
||||
!DE U+017D Zcaron
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+0105 aogonek
|
||||
!E1 U+012F iogonek
|
||||
!E2 U+0101 amacron
|
||||
!E3 U+0107 cacute
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+0119 eogonek
|
||||
!E7 U+0113 emacron
|
||||
!E8 U+010D ccaron
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+017A zacute
|
||||
!EB U+0117 edotaccent
|
||||
!EC U+0123 gcommaaccent
|
||||
!ED U+0137 kcommaaccent
|
||||
!EE U+012B imacron
|
||||
!EF U+013C lcommaaccent
|
||||
!F0 U+0161 scaron
|
||||
!F1 U+0144 nacute
|
||||
!F2 U+0146 ncommaaccent
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+014D omacron
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+0173 uogonek
|
||||
!F9 U+0142 lslash
|
||||
!FA U+015B sacute
|
||||
!FB U+016B umacron
|
||||
!FC U+00FC udieresis
|
||||
!FD U+017C zdotaccent
|
||||
!FE U+017E zcaron
|
||||
!FF U+02D9 dotaccent
|
247
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1258.map
vendored
Normal file
247
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp1258.map
vendored
Normal file
|
@ -0,0 +1,247 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!82 U+201A quotesinglbase
|
||||
!83 U+0192 florin
|
||||
!84 U+201E quotedblbase
|
||||
!85 U+2026 ellipsis
|
||||
!86 U+2020 dagger
|
||||
!87 U+2021 daggerdbl
|
||||
!88 U+02C6 circumflex
|
||||
!89 U+2030 perthousand
|
||||
!8B U+2039 guilsinglleft
|
||||
!8C U+0152 OE
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!98 U+02DC tilde
|
||||
!99 U+2122 trademark
|
||||
!9B U+203A guilsinglright
|
||||
!9C U+0153 oe
|
||||
!9F U+0178 Ydieresis
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00AA ordfeminine
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00BA ordmasculine
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+0102 Abreve
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+0300 gravecomb
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+0110 Dcroat
|
||||
!D1 U+00D1 Ntilde
|
||||
!D2 U+0309 hookabovecomb
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+01A0 Ohorn
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+01AF Uhorn
|
||||
!DE U+0303 tildecomb
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+0103 abreve
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+0301 acutecomb
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+0111 dcroat
|
||||
!F1 U+00F1 ntilde
|
||||
!F2 U+0323 dotbelowcomb
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+01A1 ohorn
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+01B0 uhorn
|
||||
!FE U+20AB dong
|
||||
!FF U+00FF ydieresis
|
225
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp874.map
vendored
Normal file
225
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/cp874.map
vendored
Normal file
|
@ -0,0 +1,225 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+20AC Euro
|
||||
!85 U+2026 ellipsis
|
||||
!91 U+2018 quoteleft
|
||||
!92 U+2019 quoteright
|
||||
!93 U+201C quotedblleft
|
||||
!94 U+201D quotedblright
|
||||
!95 U+2022 bullet
|
||||
!96 U+2013 endash
|
||||
!97 U+2014 emdash
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0E01 kokaithai
|
||||
!A2 U+0E02 khokhaithai
|
||||
!A3 U+0E03 khokhuatthai
|
||||
!A4 U+0E04 khokhwaithai
|
||||
!A5 U+0E05 khokhonthai
|
||||
!A6 U+0E06 khorakhangthai
|
||||
!A7 U+0E07 ngonguthai
|
||||
!A8 U+0E08 chochanthai
|
||||
!A9 U+0E09 chochingthai
|
||||
!AA U+0E0A chochangthai
|
||||
!AB U+0E0B sosothai
|
||||
!AC U+0E0C chochoethai
|
||||
!AD U+0E0D yoyingthai
|
||||
!AE U+0E0E dochadathai
|
||||
!AF U+0E0F topatakthai
|
||||
!B0 U+0E10 thothanthai
|
||||
!B1 U+0E11 thonangmonthothai
|
||||
!B2 U+0E12 thophuthaothai
|
||||
!B3 U+0E13 nonenthai
|
||||
!B4 U+0E14 dodekthai
|
||||
!B5 U+0E15 totaothai
|
||||
!B6 U+0E16 thothungthai
|
||||
!B7 U+0E17 thothahanthai
|
||||
!B8 U+0E18 thothongthai
|
||||
!B9 U+0E19 nonuthai
|
||||
!BA U+0E1A bobaimaithai
|
||||
!BB U+0E1B poplathai
|
||||
!BC U+0E1C phophungthai
|
||||
!BD U+0E1D fofathai
|
||||
!BE U+0E1E phophanthai
|
||||
!BF U+0E1F fofanthai
|
||||
!C0 U+0E20 phosamphaothai
|
||||
!C1 U+0E21 momathai
|
||||
!C2 U+0E22 yoyakthai
|
||||
!C3 U+0E23 roruathai
|
||||
!C4 U+0E24 ruthai
|
||||
!C5 U+0E25 lolingthai
|
||||
!C6 U+0E26 luthai
|
||||
!C7 U+0E27 wowaenthai
|
||||
!C8 U+0E28 sosalathai
|
||||
!C9 U+0E29 sorusithai
|
||||
!CA U+0E2A sosuathai
|
||||
!CB U+0E2B hohipthai
|
||||
!CC U+0E2C lochulathai
|
||||
!CD U+0E2D oangthai
|
||||
!CE U+0E2E honokhukthai
|
||||
!CF U+0E2F paiyannoithai
|
||||
!D0 U+0E30 saraathai
|
||||
!D1 U+0E31 maihanakatthai
|
||||
!D2 U+0E32 saraaathai
|
||||
!D3 U+0E33 saraamthai
|
||||
!D4 U+0E34 saraithai
|
||||
!D5 U+0E35 saraiithai
|
||||
!D6 U+0E36 sarauethai
|
||||
!D7 U+0E37 saraueethai
|
||||
!D8 U+0E38 sarauthai
|
||||
!D9 U+0E39 sarauuthai
|
||||
!DA U+0E3A phinthuthai
|
||||
!DF U+0E3F bahtthai
|
||||
!E0 U+0E40 saraethai
|
||||
!E1 U+0E41 saraaethai
|
||||
!E2 U+0E42 saraothai
|
||||
!E3 U+0E43 saraaimaimuanthai
|
||||
!E4 U+0E44 saraaimaimalaithai
|
||||
!E5 U+0E45 lakkhangyaothai
|
||||
!E6 U+0E46 maiyamokthai
|
||||
!E7 U+0E47 maitaikhuthai
|
||||
!E8 U+0E48 maiekthai
|
||||
!E9 U+0E49 maithothai
|
||||
!EA U+0E4A maitrithai
|
||||
!EB U+0E4B maichattawathai
|
||||
!EC U+0E4C thanthakhatthai
|
||||
!ED U+0E4D nikhahitthai
|
||||
!EE U+0E4E yamakkanthai
|
||||
!EF U+0E4F fongmanthai
|
||||
!F0 U+0E50 zerothai
|
||||
!F1 U+0E51 onethai
|
||||
!F2 U+0E52 twothai
|
||||
!F3 U+0E53 threethai
|
||||
!F4 U+0E54 fourthai
|
||||
!F5 U+0E55 fivethai
|
||||
!F6 U+0E56 sixthai
|
||||
!F7 U+0E57 seventhai
|
||||
!F8 U+0E58 eightthai
|
||||
!F9 U+0E59 ninethai
|
||||
!FA U+0E5A angkhankhuthai
|
||||
!FB U+0E5B khomutthai
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-1.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-1.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00AA ordfeminine
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00BA ordmasculine
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+00C3 Atilde
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+00CC Igrave
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+00D0 Eth
|
||||
!D1 U+00D1 Ntilde
|
||||
!D2 U+00D2 Ograve
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+00DD Yacute
|
||||
!DE U+00DE Thorn
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+00E3 atilde
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+00EC igrave
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+00F0 eth
|
||||
!F1 U+00F1 ntilde
|
||||
!F2 U+00F2 ograve
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+00FD yacute
|
||||
!FE U+00FE thorn
|
||||
!FF U+00FF ydieresis
|
248
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-11.map
vendored
Normal file
248
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-11.map
vendored
Normal file
|
@ -0,0 +1,248 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0E01 kokaithai
|
||||
!A2 U+0E02 khokhaithai
|
||||
!A3 U+0E03 khokhuatthai
|
||||
!A4 U+0E04 khokhwaithai
|
||||
!A5 U+0E05 khokhonthai
|
||||
!A6 U+0E06 khorakhangthai
|
||||
!A7 U+0E07 ngonguthai
|
||||
!A8 U+0E08 chochanthai
|
||||
!A9 U+0E09 chochingthai
|
||||
!AA U+0E0A chochangthai
|
||||
!AB U+0E0B sosothai
|
||||
!AC U+0E0C chochoethai
|
||||
!AD U+0E0D yoyingthai
|
||||
!AE U+0E0E dochadathai
|
||||
!AF U+0E0F topatakthai
|
||||
!B0 U+0E10 thothanthai
|
||||
!B1 U+0E11 thonangmonthothai
|
||||
!B2 U+0E12 thophuthaothai
|
||||
!B3 U+0E13 nonenthai
|
||||
!B4 U+0E14 dodekthai
|
||||
!B5 U+0E15 totaothai
|
||||
!B6 U+0E16 thothungthai
|
||||
!B7 U+0E17 thothahanthai
|
||||
!B8 U+0E18 thothongthai
|
||||
!B9 U+0E19 nonuthai
|
||||
!BA U+0E1A bobaimaithai
|
||||
!BB U+0E1B poplathai
|
||||
!BC U+0E1C phophungthai
|
||||
!BD U+0E1D fofathai
|
||||
!BE U+0E1E phophanthai
|
||||
!BF U+0E1F fofanthai
|
||||
!C0 U+0E20 phosamphaothai
|
||||
!C1 U+0E21 momathai
|
||||
!C2 U+0E22 yoyakthai
|
||||
!C3 U+0E23 roruathai
|
||||
!C4 U+0E24 ruthai
|
||||
!C5 U+0E25 lolingthai
|
||||
!C6 U+0E26 luthai
|
||||
!C7 U+0E27 wowaenthai
|
||||
!C8 U+0E28 sosalathai
|
||||
!C9 U+0E29 sorusithai
|
||||
!CA U+0E2A sosuathai
|
||||
!CB U+0E2B hohipthai
|
||||
!CC U+0E2C lochulathai
|
||||
!CD U+0E2D oangthai
|
||||
!CE U+0E2E honokhukthai
|
||||
!CF U+0E2F paiyannoithai
|
||||
!D0 U+0E30 saraathai
|
||||
!D1 U+0E31 maihanakatthai
|
||||
!D2 U+0E32 saraaathai
|
||||
!D3 U+0E33 saraamthai
|
||||
!D4 U+0E34 saraithai
|
||||
!D5 U+0E35 saraiithai
|
||||
!D6 U+0E36 sarauethai
|
||||
!D7 U+0E37 saraueethai
|
||||
!D8 U+0E38 sarauthai
|
||||
!D9 U+0E39 sarauuthai
|
||||
!DA U+0E3A phinthuthai
|
||||
!DF U+0E3F bahtthai
|
||||
!E0 U+0E40 saraethai
|
||||
!E1 U+0E41 saraaethai
|
||||
!E2 U+0E42 saraothai
|
||||
!E3 U+0E43 saraaimaimuanthai
|
||||
!E4 U+0E44 saraaimaimalaithai
|
||||
!E5 U+0E45 lakkhangyaothai
|
||||
!E6 U+0E46 maiyamokthai
|
||||
!E7 U+0E47 maitaikhuthai
|
||||
!E8 U+0E48 maiekthai
|
||||
!E9 U+0E49 maithothai
|
||||
!EA U+0E4A maitrithai
|
||||
!EB U+0E4B maichattawathai
|
||||
!EC U+0E4C thanthakhatthai
|
||||
!ED U+0E4D nikhahitthai
|
||||
!EE U+0E4E yamakkanthai
|
||||
!EF U+0E4F fongmanthai
|
||||
!F0 U+0E50 zerothai
|
||||
!F1 U+0E51 onethai
|
||||
!F2 U+0E52 twothai
|
||||
!F3 U+0E53 threethai
|
||||
!F4 U+0E54 fourthai
|
||||
!F5 U+0E55 fivethai
|
||||
!F6 U+0E56 sixthai
|
||||
!F7 U+0E57 seventhai
|
||||
!F8 U+0E58 eightthai
|
||||
!F9 U+0E59 ninethai
|
||||
!FA U+0E5A angkhankhuthai
|
||||
!FB U+0E5B khomutthai
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-15.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-15.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+20AC Euro
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+0160 Scaron
|
||||
!A7 U+00A7 section
|
||||
!A8 U+0161 scaron
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00AA ordfeminine
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+017D Zcaron
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+017E zcaron
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00BA ordmasculine
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+0152 OE
|
||||
!BD U+0153 oe
|
||||
!BE U+0178 Ydieresis
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+00C3 Atilde
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+00CC Igrave
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+00D0 Eth
|
||||
!D1 U+00D1 Ntilde
|
||||
!D2 U+00D2 Ograve
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+00DD Yacute
|
||||
!DE U+00DE Thorn
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+00E3 atilde
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+00EC igrave
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+00F0 eth
|
||||
!F1 U+00F1 ntilde
|
||||
!F2 U+00F2 ograve
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+00FD yacute
|
||||
!FE U+00FE thorn
|
||||
!FF U+00FF ydieresis
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-16.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-16.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0104 Aogonek
|
||||
!A2 U+0105 aogonek
|
||||
!A3 U+0141 Lslash
|
||||
!A4 U+20AC Euro
|
||||
!A5 U+201E quotedblbase
|
||||
!A6 U+0160 Scaron
|
||||
!A7 U+00A7 section
|
||||
!A8 U+0161 scaron
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+0218 Scommaaccent
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+0179 Zacute
|
||||
!AD U+00AD hyphen
|
||||
!AE U+017A zacute
|
||||
!AF U+017B Zdotaccent
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+010C Ccaron
|
||||
!B3 U+0142 lslash
|
||||
!B4 U+017D Zcaron
|
||||
!B5 U+201D quotedblright
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+017E zcaron
|
||||
!B9 U+010D ccaron
|
||||
!BA U+0219 scommaaccent
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+0152 OE
|
||||
!BD U+0153 oe
|
||||
!BE U+0178 Ydieresis
|
||||
!BF U+017C zdotaccent
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+0102 Abreve
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+0106 Cacute
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+00CC Igrave
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+0110 Dcroat
|
||||
!D1 U+0143 Nacute
|
||||
!D2 U+00D2 Ograve
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+0150 Ohungarumlaut
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+015A Sacute
|
||||
!D8 U+0170 Uhungarumlaut
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+0118 Eogonek
|
||||
!DE U+021A Tcommaaccent
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+0103 abreve
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+0107 cacute
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+00EC igrave
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+0111 dcroat
|
||||
!F1 U+0144 nacute
|
||||
!F2 U+00F2 ograve
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+0151 ohungarumlaut
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+015B sacute
|
||||
!F8 U+0171 uhungarumlaut
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+0119 eogonek
|
||||
!FE U+021B tcommaaccent
|
||||
!FF U+00FF ydieresis
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-2.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-2.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0104 Aogonek
|
||||
!A2 U+02D8 breve
|
||||
!A3 U+0141 Lslash
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+013D Lcaron
|
||||
!A6 U+015A Sacute
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+0160 Scaron
|
||||
!AA U+015E Scedilla
|
||||
!AB U+0164 Tcaron
|
||||
!AC U+0179 Zacute
|
||||
!AD U+00AD hyphen
|
||||
!AE U+017D Zcaron
|
||||
!AF U+017B Zdotaccent
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+0105 aogonek
|
||||
!B2 U+02DB ogonek
|
||||
!B3 U+0142 lslash
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+013E lcaron
|
||||
!B6 U+015B sacute
|
||||
!B7 U+02C7 caron
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+0161 scaron
|
||||
!BA U+015F scedilla
|
||||
!BB U+0165 tcaron
|
||||
!BC U+017A zacute
|
||||
!BD U+02DD hungarumlaut
|
||||
!BE U+017E zcaron
|
||||
!BF U+017C zdotaccent
|
||||
!C0 U+0154 Racute
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+0102 Abreve
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+0139 Lacute
|
||||
!C6 U+0106 Cacute
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+010C Ccaron
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+0118 Eogonek
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+011A Ecaron
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+010E Dcaron
|
||||
!D0 U+0110 Dcroat
|
||||
!D1 U+0143 Nacute
|
||||
!D2 U+0147 Ncaron
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+0150 Ohungarumlaut
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+0158 Rcaron
|
||||
!D9 U+016E Uring
|
||||
!DA U+00DA Uacute
|
||||
!DB U+0170 Uhungarumlaut
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+00DD Yacute
|
||||
!DE U+0162 Tcommaaccent
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+0155 racute
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+0103 abreve
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+013A lacute
|
||||
!E6 U+0107 cacute
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+010D ccaron
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+0119 eogonek
|
||||
!EB U+00EB edieresis
|
||||
!EC U+011B ecaron
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+010F dcaron
|
||||
!F0 U+0111 dcroat
|
||||
!F1 U+0144 nacute
|
||||
!F2 U+0148 ncaron
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+0151 ohungarumlaut
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+0159 rcaron
|
||||
!F9 U+016F uring
|
||||
!FA U+00FA uacute
|
||||
!FB U+0171 uhungarumlaut
|
||||
!FC U+00FC udieresis
|
||||
!FD U+00FD yacute
|
||||
!FE U+0163 tcommaaccent
|
||||
!FF U+02D9 dotaccent
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-4.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-4.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0104 Aogonek
|
||||
!A2 U+0138 kgreenlandic
|
||||
!A3 U+0156 Rcommaaccent
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+0128 Itilde
|
||||
!A6 U+013B Lcommaaccent
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+0160 Scaron
|
||||
!AA U+0112 Emacron
|
||||
!AB U+0122 Gcommaaccent
|
||||
!AC U+0166 Tbar
|
||||
!AD U+00AD hyphen
|
||||
!AE U+017D Zcaron
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+0105 aogonek
|
||||
!B2 U+02DB ogonek
|
||||
!B3 U+0157 rcommaaccent
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+0129 itilde
|
||||
!B6 U+013C lcommaaccent
|
||||
!B7 U+02C7 caron
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+0161 scaron
|
||||
!BA U+0113 emacron
|
||||
!BB U+0123 gcommaaccent
|
||||
!BC U+0167 tbar
|
||||
!BD U+014A Eng
|
||||
!BE U+017E zcaron
|
||||
!BF U+014B eng
|
||||
!C0 U+0100 Amacron
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+00C3 Atilde
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+012E Iogonek
|
||||
!C8 U+010C Ccaron
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+0118 Eogonek
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+0116 Edotaccent
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+012A Imacron
|
||||
!D0 U+0110 Dcroat
|
||||
!D1 U+0145 Ncommaaccent
|
||||
!D2 U+014C Omacron
|
||||
!D3 U+0136 Kcommaaccent
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+0172 Uogonek
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+0168 Utilde
|
||||
!DE U+016A Umacron
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+0101 amacron
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+00E3 atilde
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+012F iogonek
|
||||
!E8 U+010D ccaron
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+0119 eogonek
|
||||
!EB U+00EB edieresis
|
||||
!EC U+0117 edotaccent
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+012B imacron
|
||||
!F0 U+0111 dcroat
|
||||
!F1 U+0146 ncommaaccent
|
||||
!F2 U+014D omacron
|
||||
!F3 U+0137 kcommaaccent
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+0173 uogonek
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+0169 utilde
|
||||
!FE U+016B umacron
|
||||
!FF U+02D9 dotaccent
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-5.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-5.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+0401 afii10023
|
||||
!A2 U+0402 afii10051
|
||||
!A3 U+0403 afii10052
|
||||
!A4 U+0404 afii10053
|
||||
!A5 U+0405 afii10054
|
||||
!A6 U+0406 afii10055
|
||||
!A7 U+0407 afii10056
|
||||
!A8 U+0408 afii10057
|
||||
!A9 U+0409 afii10058
|
||||
!AA U+040A afii10059
|
||||
!AB U+040B afii10060
|
||||
!AC U+040C afii10061
|
||||
!AD U+00AD hyphen
|
||||
!AE U+040E afii10062
|
||||
!AF U+040F afii10145
|
||||
!B0 U+0410 afii10017
|
||||
!B1 U+0411 afii10018
|
||||
!B2 U+0412 afii10019
|
||||
!B3 U+0413 afii10020
|
||||
!B4 U+0414 afii10021
|
||||
!B5 U+0415 afii10022
|
||||
!B6 U+0416 afii10024
|
||||
!B7 U+0417 afii10025
|
||||
!B8 U+0418 afii10026
|
||||
!B9 U+0419 afii10027
|
||||
!BA U+041A afii10028
|
||||
!BB U+041B afii10029
|
||||
!BC U+041C afii10030
|
||||
!BD U+041D afii10031
|
||||
!BE U+041E afii10032
|
||||
!BF U+041F afii10033
|
||||
!C0 U+0420 afii10034
|
||||
!C1 U+0421 afii10035
|
||||
!C2 U+0422 afii10036
|
||||
!C3 U+0423 afii10037
|
||||
!C4 U+0424 afii10038
|
||||
!C5 U+0425 afii10039
|
||||
!C6 U+0426 afii10040
|
||||
!C7 U+0427 afii10041
|
||||
!C8 U+0428 afii10042
|
||||
!C9 U+0429 afii10043
|
||||
!CA U+042A afii10044
|
||||
!CB U+042B afii10045
|
||||
!CC U+042C afii10046
|
||||
!CD U+042D afii10047
|
||||
!CE U+042E afii10048
|
||||
!CF U+042F afii10049
|
||||
!D0 U+0430 afii10065
|
||||
!D1 U+0431 afii10066
|
||||
!D2 U+0432 afii10067
|
||||
!D3 U+0433 afii10068
|
||||
!D4 U+0434 afii10069
|
||||
!D5 U+0435 afii10070
|
||||
!D6 U+0436 afii10072
|
||||
!D7 U+0437 afii10073
|
||||
!D8 U+0438 afii10074
|
||||
!D9 U+0439 afii10075
|
||||
!DA U+043A afii10076
|
||||
!DB U+043B afii10077
|
||||
!DC U+043C afii10078
|
||||
!DD U+043D afii10079
|
||||
!DE U+043E afii10080
|
||||
!DF U+043F afii10081
|
||||
!E0 U+0440 afii10082
|
||||
!E1 U+0441 afii10083
|
||||
!E2 U+0442 afii10084
|
||||
!E3 U+0443 afii10085
|
||||
!E4 U+0444 afii10086
|
||||
!E5 U+0445 afii10087
|
||||
!E6 U+0446 afii10088
|
||||
!E7 U+0447 afii10089
|
||||
!E8 U+0448 afii10090
|
||||
!E9 U+0449 afii10091
|
||||
!EA U+044A afii10092
|
||||
!EB U+044B afii10093
|
||||
!EC U+044C afii10094
|
||||
!ED U+044D afii10095
|
||||
!EE U+044E afii10096
|
||||
!EF U+044F afii10097
|
||||
!F0 U+2116 afii61352
|
||||
!F1 U+0451 afii10071
|
||||
!F2 U+0452 afii10099
|
||||
!F3 U+0453 afii10100
|
||||
!F4 U+0454 afii10101
|
||||
!F5 U+0455 afii10102
|
||||
!F6 U+0456 afii10103
|
||||
!F7 U+0457 afii10104
|
||||
!F8 U+0458 afii10105
|
||||
!F9 U+0459 afii10106
|
||||
!FA U+045A afii10107
|
||||
!FB U+045B afii10108
|
||||
!FC U+045C afii10109
|
||||
!FD U+00A7 section
|
||||
!FE U+045E afii10110
|
||||
!FF U+045F afii10193
|
250
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-7.map
vendored
Normal file
250
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-7.map
vendored
Normal file
|
@ -0,0 +1,250 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+2018 quoteleft
|
||||
!A2 U+2019 quoteright
|
||||
!A3 U+00A3 sterling
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AF U+2015 afii00208
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+0384 tonos
|
||||
!B5 U+0385 dieresistonos
|
||||
!B6 U+0386 Alphatonos
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+0388 Epsilontonos
|
||||
!B9 U+0389 Etatonos
|
||||
!BA U+038A Iotatonos
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+038C Omicrontonos
|
||||
!BD U+00BD onehalf
|
||||
!BE U+038E Upsilontonos
|
||||
!BF U+038F Omegatonos
|
||||
!C0 U+0390 iotadieresistonos
|
||||
!C1 U+0391 Alpha
|
||||
!C2 U+0392 Beta
|
||||
!C3 U+0393 Gamma
|
||||
!C4 U+0394 Delta
|
||||
!C5 U+0395 Epsilon
|
||||
!C6 U+0396 Zeta
|
||||
!C7 U+0397 Eta
|
||||
!C8 U+0398 Theta
|
||||
!C9 U+0399 Iota
|
||||
!CA U+039A Kappa
|
||||
!CB U+039B Lambda
|
||||
!CC U+039C Mu
|
||||
!CD U+039D Nu
|
||||
!CE U+039E Xi
|
||||
!CF U+039F Omicron
|
||||
!D0 U+03A0 Pi
|
||||
!D1 U+03A1 Rho
|
||||
!D3 U+03A3 Sigma
|
||||
!D4 U+03A4 Tau
|
||||
!D5 U+03A5 Upsilon
|
||||
!D6 U+03A6 Phi
|
||||
!D7 U+03A7 Chi
|
||||
!D8 U+03A8 Psi
|
||||
!D9 U+03A9 Omega
|
||||
!DA U+03AA Iotadieresis
|
||||
!DB U+03AB Upsilondieresis
|
||||
!DC U+03AC alphatonos
|
||||
!DD U+03AD epsilontonos
|
||||
!DE U+03AE etatonos
|
||||
!DF U+03AF iotatonos
|
||||
!E0 U+03B0 upsilondieresistonos
|
||||
!E1 U+03B1 alpha
|
||||
!E2 U+03B2 beta
|
||||
!E3 U+03B3 gamma
|
||||
!E4 U+03B4 delta
|
||||
!E5 U+03B5 epsilon
|
||||
!E6 U+03B6 zeta
|
||||
!E7 U+03B7 eta
|
||||
!E8 U+03B8 theta
|
||||
!E9 U+03B9 iota
|
||||
!EA U+03BA kappa
|
||||
!EB U+03BB lambda
|
||||
!EC U+03BC mu
|
||||
!ED U+03BD nu
|
||||
!EE U+03BE xi
|
||||
!EF U+03BF omicron
|
||||
!F0 U+03C0 pi
|
||||
!F1 U+03C1 rho
|
||||
!F2 U+03C2 sigma1
|
||||
!F3 U+03C3 sigma
|
||||
!F4 U+03C4 tau
|
||||
!F5 U+03C5 upsilon
|
||||
!F6 U+03C6 phi
|
||||
!F7 U+03C7 chi
|
||||
!F8 U+03C8 psi
|
||||
!F9 U+03C9 omega
|
||||
!FA U+03CA iotadieresis
|
||||
!FB U+03CB upsilondieresis
|
||||
!FC U+03CC omicrontonos
|
||||
!FD U+03CD upsilontonos
|
||||
!FE U+03CE omegatonos
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-9.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/iso-8859-9.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+0080 .notdef
|
||||
!81 U+0081 .notdef
|
||||
!82 U+0082 .notdef
|
||||
!83 U+0083 .notdef
|
||||
!84 U+0084 .notdef
|
||||
!85 U+0085 .notdef
|
||||
!86 U+0086 .notdef
|
||||
!87 U+0087 .notdef
|
||||
!88 U+0088 .notdef
|
||||
!89 U+0089 .notdef
|
||||
!8A U+008A .notdef
|
||||
!8B U+008B .notdef
|
||||
!8C U+008C .notdef
|
||||
!8D U+008D .notdef
|
||||
!8E U+008E .notdef
|
||||
!8F U+008F .notdef
|
||||
!90 U+0090 .notdef
|
||||
!91 U+0091 .notdef
|
||||
!92 U+0092 .notdef
|
||||
!93 U+0093 .notdef
|
||||
!94 U+0094 .notdef
|
||||
!95 U+0095 .notdef
|
||||
!96 U+0096 .notdef
|
||||
!97 U+0097 .notdef
|
||||
!98 U+0098 .notdef
|
||||
!99 U+0099 .notdef
|
||||
!9A U+009A .notdef
|
||||
!9B U+009B .notdef
|
||||
!9C U+009C .notdef
|
||||
!9D U+009D .notdef
|
||||
!9E U+009E .notdef
|
||||
!9F U+009F .notdef
|
||||
!A0 U+00A0 space
|
||||
!A1 U+00A1 exclamdown
|
||||
!A2 U+00A2 cent
|
||||
!A3 U+00A3 sterling
|
||||
!A4 U+00A4 currency
|
||||
!A5 U+00A5 yen
|
||||
!A6 U+00A6 brokenbar
|
||||
!A7 U+00A7 section
|
||||
!A8 U+00A8 dieresis
|
||||
!A9 U+00A9 copyright
|
||||
!AA U+00AA ordfeminine
|
||||
!AB U+00AB guillemotleft
|
||||
!AC U+00AC logicalnot
|
||||
!AD U+00AD hyphen
|
||||
!AE U+00AE registered
|
||||
!AF U+00AF macron
|
||||
!B0 U+00B0 degree
|
||||
!B1 U+00B1 plusminus
|
||||
!B2 U+00B2 twosuperior
|
||||
!B3 U+00B3 threesuperior
|
||||
!B4 U+00B4 acute
|
||||
!B5 U+00B5 mu
|
||||
!B6 U+00B6 paragraph
|
||||
!B7 U+00B7 periodcentered
|
||||
!B8 U+00B8 cedilla
|
||||
!B9 U+00B9 onesuperior
|
||||
!BA U+00BA ordmasculine
|
||||
!BB U+00BB guillemotright
|
||||
!BC U+00BC onequarter
|
||||
!BD U+00BD onehalf
|
||||
!BE U+00BE threequarters
|
||||
!BF U+00BF questiondown
|
||||
!C0 U+00C0 Agrave
|
||||
!C1 U+00C1 Aacute
|
||||
!C2 U+00C2 Acircumflex
|
||||
!C3 U+00C3 Atilde
|
||||
!C4 U+00C4 Adieresis
|
||||
!C5 U+00C5 Aring
|
||||
!C6 U+00C6 AE
|
||||
!C7 U+00C7 Ccedilla
|
||||
!C8 U+00C8 Egrave
|
||||
!C9 U+00C9 Eacute
|
||||
!CA U+00CA Ecircumflex
|
||||
!CB U+00CB Edieresis
|
||||
!CC U+00CC Igrave
|
||||
!CD U+00CD Iacute
|
||||
!CE U+00CE Icircumflex
|
||||
!CF U+00CF Idieresis
|
||||
!D0 U+011E Gbreve
|
||||
!D1 U+00D1 Ntilde
|
||||
!D2 U+00D2 Ograve
|
||||
!D3 U+00D3 Oacute
|
||||
!D4 U+00D4 Ocircumflex
|
||||
!D5 U+00D5 Otilde
|
||||
!D6 U+00D6 Odieresis
|
||||
!D7 U+00D7 multiply
|
||||
!D8 U+00D8 Oslash
|
||||
!D9 U+00D9 Ugrave
|
||||
!DA U+00DA Uacute
|
||||
!DB U+00DB Ucircumflex
|
||||
!DC U+00DC Udieresis
|
||||
!DD U+0130 Idotaccent
|
||||
!DE U+015E Scedilla
|
||||
!DF U+00DF germandbls
|
||||
!E0 U+00E0 agrave
|
||||
!E1 U+00E1 aacute
|
||||
!E2 U+00E2 acircumflex
|
||||
!E3 U+00E3 atilde
|
||||
!E4 U+00E4 adieresis
|
||||
!E5 U+00E5 aring
|
||||
!E6 U+00E6 ae
|
||||
!E7 U+00E7 ccedilla
|
||||
!E8 U+00E8 egrave
|
||||
!E9 U+00E9 eacute
|
||||
!EA U+00EA ecircumflex
|
||||
!EB U+00EB edieresis
|
||||
!EC U+00EC igrave
|
||||
!ED U+00ED iacute
|
||||
!EE U+00EE icircumflex
|
||||
!EF U+00EF idieresis
|
||||
!F0 U+011F gbreve
|
||||
!F1 U+00F1 ntilde
|
||||
!F2 U+00F2 ograve
|
||||
!F3 U+00F3 oacute
|
||||
!F4 U+00F4 ocircumflex
|
||||
!F5 U+00F5 otilde
|
||||
!F6 U+00F6 odieresis
|
||||
!F7 U+00F7 divide
|
||||
!F8 U+00F8 oslash
|
||||
!F9 U+00F9 ugrave
|
||||
!FA U+00FA uacute
|
||||
!FB U+00FB ucircumflex
|
||||
!FC U+00FC udieresis
|
||||
!FD U+0131 dotlessi
|
||||
!FE U+015F scedilla
|
||||
!FF U+00FF ydieresis
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/koi8-r.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/koi8-r.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+2500 SF100000
|
||||
!81 U+2502 SF110000
|
||||
!82 U+250C SF010000
|
||||
!83 U+2510 SF030000
|
||||
!84 U+2514 SF020000
|
||||
!85 U+2518 SF040000
|
||||
!86 U+251C SF080000
|
||||
!87 U+2524 SF090000
|
||||
!88 U+252C SF060000
|
||||
!89 U+2534 SF070000
|
||||
!8A U+253C SF050000
|
||||
!8B U+2580 upblock
|
||||
!8C U+2584 dnblock
|
||||
!8D U+2588 block
|
||||
!8E U+258C lfblock
|
||||
!8F U+2590 rtblock
|
||||
!90 U+2591 ltshade
|
||||
!91 U+2592 shade
|
||||
!92 U+2593 dkshade
|
||||
!93 U+2320 integraltp
|
||||
!94 U+25A0 filledbox
|
||||
!95 U+2219 periodcentered
|
||||
!96 U+221A radical
|
||||
!97 U+2248 approxequal
|
||||
!98 U+2264 lessequal
|
||||
!99 U+2265 greaterequal
|
||||
!9A U+00A0 space
|
||||
!9B U+2321 integralbt
|
||||
!9C U+00B0 degree
|
||||
!9D U+00B2 twosuperior
|
||||
!9E U+00B7 periodcentered
|
||||
!9F U+00F7 divide
|
||||
!A0 U+2550 SF430000
|
||||
!A1 U+2551 SF240000
|
||||
!A2 U+2552 SF510000
|
||||
!A3 U+0451 afii10071
|
||||
!A4 U+2553 SF520000
|
||||
!A5 U+2554 SF390000
|
||||
!A6 U+2555 SF220000
|
||||
!A7 U+2556 SF210000
|
||||
!A8 U+2557 SF250000
|
||||
!A9 U+2558 SF500000
|
||||
!AA U+2559 SF490000
|
||||
!AB U+255A SF380000
|
||||
!AC U+255B SF280000
|
||||
!AD U+255C SF270000
|
||||
!AE U+255D SF260000
|
||||
!AF U+255E SF360000
|
||||
!B0 U+255F SF370000
|
||||
!B1 U+2560 SF420000
|
||||
!B2 U+2561 SF190000
|
||||
!B3 U+0401 afii10023
|
||||
!B4 U+2562 SF200000
|
||||
!B5 U+2563 SF230000
|
||||
!B6 U+2564 SF470000
|
||||
!B7 U+2565 SF480000
|
||||
!B8 U+2566 SF410000
|
||||
!B9 U+2567 SF450000
|
||||
!BA U+2568 SF460000
|
||||
!BB U+2569 SF400000
|
||||
!BC U+256A SF540000
|
||||
!BD U+256B SF530000
|
||||
!BE U+256C SF440000
|
||||
!BF U+00A9 copyright
|
||||
!C0 U+044E afii10096
|
||||
!C1 U+0430 afii10065
|
||||
!C2 U+0431 afii10066
|
||||
!C3 U+0446 afii10088
|
||||
!C4 U+0434 afii10069
|
||||
!C5 U+0435 afii10070
|
||||
!C6 U+0444 afii10086
|
||||
!C7 U+0433 afii10068
|
||||
!C8 U+0445 afii10087
|
||||
!C9 U+0438 afii10074
|
||||
!CA U+0439 afii10075
|
||||
!CB U+043A afii10076
|
||||
!CC U+043B afii10077
|
||||
!CD U+043C afii10078
|
||||
!CE U+043D afii10079
|
||||
!CF U+043E afii10080
|
||||
!D0 U+043F afii10081
|
||||
!D1 U+044F afii10097
|
||||
!D2 U+0440 afii10082
|
||||
!D3 U+0441 afii10083
|
||||
!D4 U+0442 afii10084
|
||||
!D5 U+0443 afii10085
|
||||
!D6 U+0436 afii10072
|
||||
!D7 U+0432 afii10067
|
||||
!D8 U+044C afii10094
|
||||
!D9 U+044B afii10093
|
||||
!DA U+0437 afii10073
|
||||
!DB U+0448 afii10090
|
||||
!DC U+044D afii10095
|
||||
!DD U+0449 afii10091
|
||||
!DE U+0447 afii10089
|
||||
!DF U+044A afii10092
|
||||
!E0 U+042E afii10048
|
||||
!E1 U+0410 afii10017
|
||||
!E2 U+0411 afii10018
|
||||
!E3 U+0426 afii10040
|
||||
!E4 U+0414 afii10021
|
||||
!E5 U+0415 afii10022
|
||||
!E6 U+0424 afii10038
|
||||
!E7 U+0413 afii10020
|
||||
!E8 U+0425 afii10039
|
||||
!E9 U+0418 afii10026
|
||||
!EA U+0419 afii10027
|
||||
!EB U+041A afii10028
|
||||
!EC U+041B afii10029
|
||||
!ED U+041C afii10030
|
||||
!EE U+041D afii10031
|
||||
!EF U+041E afii10032
|
||||
!F0 U+041F afii10033
|
||||
!F1 U+042F afii10049
|
||||
!F2 U+0420 afii10034
|
||||
!F3 U+0421 afii10035
|
||||
!F4 U+0422 afii10036
|
||||
!F5 U+0423 afii10037
|
||||
!F6 U+0416 afii10024
|
||||
!F7 U+0412 afii10019
|
||||
!F8 U+042C afii10046
|
||||
!F9 U+042B afii10045
|
||||
!FA U+0417 afii10025
|
||||
!FB U+0428 afii10042
|
||||
!FC U+042D afii10047
|
||||
!FD U+0429 afii10043
|
||||
!FE U+0427 afii10041
|
||||
!FF U+042A afii10044
|
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/koi8-u.map
vendored
Normal file
256
sites/all/modules/civicrm/vendor/phenx/php-font-lib/maps/koi8-u.map
vendored
Normal file
|
@ -0,0 +1,256 @@
|
|||
!00 U+0000 .notdef
|
||||
!01 U+0001 .notdef
|
||||
!02 U+0002 .notdef
|
||||
!03 U+0003 .notdef
|
||||
!04 U+0004 .notdef
|
||||
!05 U+0005 .notdef
|
||||
!06 U+0006 .notdef
|
||||
!07 U+0007 .notdef
|
||||
!08 U+0008 .notdef
|
||||
!09 U+0009 .notdef
|
||||
!0A U+000A .notdef
|
||||
!0B U+000B .notdef
|
||||
!0C U+000C .notdef
|
||||
!0D U+000D .notdef
|
||||
!0E U+000E .notdef
|
||||
!0F U+000F .notdef
|
||||
!10 U+0010 .notdef
|
||||
!11 U+0011 .notdef
|
||||
!12 U+0012 .notdef
|
||||
!13 U+0013 .notdef
|
||||
!14 U+0014 .notdef
|
||||
!15 U+0015 .notdef
|
||||
!16 U+0016 .notdef
|
||||
!17 U+0017 .notdef
|
||||
!18 U+0018 .notdef
|
||||
!19 U+0019 .notdef
|
||||
!1A U+001A .notdef
|
||||
!1B U+001B .notdef
|
||||
!1C U+001C .notdef
|
||||
!1D U+001D .notdef
|
||||
!1E U+001E .notdef
|
||||
!1F U+001F .notdef
|
||||
!20 U+0020 space
|
||||
!21 U+0021 exclam
|
||||
!22 U+0022 quotedbl
|
||||
!23 U+0023 numbersign
|
||||
!24 U+0024 dollar
|
||||
!25 U+0025 percent
|
||||
!26 U+0026 ampersand
|
||||
!27 U+0027 quotesingle
|
||||
!28 U+0028 parenleft
|
||||
!29 U+0029 parenright
|
||||
!2A U+002A asterisk
|
||||
!2B U+002B plus
|
||||
!2C U+002C comma
|
||||
!2D U+002D hyphen
|
||||
!2E U+002E period
|
||||
!2F U+002F slash
|
||||
!30 U+0030 zero
|
||||
!31 U+0031 one
|
||||
!32 U+0032 two
|
||||
!33 U+0033 three
|
||||
!34 U+0034 four
|
||||
!35 U+0035 five
|
||||
!36 U+0036 six
|
||||
!37 U+0037 seven
|
||||
!38 U+0038 eight
|
||||
!39 U+0039 nine
|
||||
!3A U+003A colon
|
||||
!3B U+003B semicolon
|
||||
!3C U+003C less
|
||||
!3D U+003D equal
|
||||
!3E U+003E greater
|
||||
!3F U+003F question
|
||||
!40 U+0040 at
|
||||
!41 U+0041 A
|
||||
!42 U+0042 B
|
||||
!43 U+0043 C
|
||||
!44 U+0044 D
|
||||
!45 U+0045 E
|
||||
!46 U+0046 F
|
||||
!47 U+0047 G
|
||||
!48 U+0048 H
|
||||
!49 U+0049 I
|
||||
!4A U+004A J
|
||||
!4B U+004B K
|
||||
!4C U+004C L
|
||||
!4D U+004D M
|
||||
!4E U+004E N
|
||||
!4F U+004F O
|
||||
!50 U+0050 P
|
||||
!51 U+0051 Q
|
||||
!52 U+0052 R
|
||||
!53 U+0053 S
|
||||
!54 U+0054 T
|
||||
!55 U+0055 U
|
||||
!56 U+0056 V
|
||||
!57 U+0057 W
|
||||
!58 U+0058 X
|
||||
!59 U+0059 Y
|
||||
!5A U+005A Z
|
||||
!5B U+005B bracketleft
|
||||
!5C U+005C backslash
|
||||
!5D U+005D bracketright
|
||||
!5E U+005E asciicircum
|
||||
!5F U+005F underscore
|
||||
!60 U+0060 grave
|
||||
!61 U+0061 a
|
||||
!62 U+0062 b
|
||||
!63 U+0063 c
|
||||
!64 U+0064 d
|
||||
!65 U+0065 e
|
||||
!66 U+0066 f
|
||||
!67 U+0067 g
|
||||
!68 U+0068 h
|
||||
!69 U+0069 i
|
||||
!6A U+006A j
|
||||
!6B U+006B k
|
||||
!6C U+006C l
|
||||
!6D U+006D m
|
||||
!6E U+006E n
|
||||
!6F U+006F o
|
||||
!70 U+0070 p
|
||||
!71 U+0071 q
|
||||
!72 U+0072 r
|
||||
!73 U+0073 s
|
||||
!74 U+0074 t
|
||||
!75 U+0075 u
|
||||
!76 U+0076 v
|
||||
!77 U+0077 w
|
||||
!78 U+0078 x
|
||||
!79 U+0079 y
|
||||
!7A U+007A z
|
||||
!7B U+007B braceleft
|
||||
!7C U+007C bar
|
||||
!7D U+007D braceright
|
||||
!7E U+007E asciitilde
|
||||
!7F U+007F .notdef
|
||||
!80 U+2500 SF100000
|
||||
!81 U+2502 SF110000
|
||||
!82 U+250C SF010000
|
||||
!83 U+2510 SF030000
|
||||
!84 U+2514 SF020000
|
||||
!85 U+2518 SF040000
|
||||
!86 U+251C SF080000
|
||||
!87 U+2524 SF090000
|
||||
!88 U+252C SF060000
|
||||
!89 U+2534 SF070000
|
||||
!8A U+253C SF050000
|
||||
!8B U+2580 upblock
|
||||
!8C U+2584 dnblock
|
||||
!8D U+2588 block
|
||||
!8E U+258C lfblock
|
||||
!8F U+2590 rtblock
|
||||
!90 U+2591 ltshade
|
||||
!91 U+2592 shade
|
||||
!92 U+2593 dkshade
|
||||
!93 U+2320 integraltp
|
||||
!94 U+25A0 filledbox
|
||||
!95 U+2022 bullet
|
||||
!96 U+221A radical
|
||||
!97 U+2248 approxequal
|
||||
!98 U+2264 lessequal
|
||||
!99 U+2265 greaterequal
|
||||
!9A U+00A0 space
|
||||
!9B U+2321 integralbt
|
||||
!9C U+00B0 degree
|
||||
!9D U+00B2 twosuperior
|
||||
!9E U+00B7 periodcentered
|
||||
!9F U+00F7 divide
|
||||
!A0 U+2550 SF430000
|
||||
!A1 U+2551 SF240000
|
||||
!A2 U+2552 SF510000
|
||||
!A3 U+0451 afii10071
|
||||
!A4 U+0454 afii10101
|
||||
!A5 U+2554 SF390000
|
||||
!A6 U+0456 afii10103
|
||||
!A7 U+0457 afii10104
|
||||
!A8 U+2557 SF250000
|
||||
!A9 U+2558 SF500000
|
||||
!AA U+2559 SF490000
|
||||
!AB U+255A SF380000
|
||||
!AC U+255B SF280000
|
||||
!AD U+0491 afii10098
|
||||
!AE U+255D SF260000
|
||||
!AF U+255E SF360000
|
||||
!B0 U+255F SF370000
|
||||
!B1 U+2560 SF420000
|
||||
!B2 U+2561 SF190000
|
||||
!B3 U+0401 afii10023
|
||||
!B4 U+0404 afii10053
|
||||
!B5 U+2563 SF230000
|
||||
!B6 U+0406 afii10055
|
||||
!B7 U+0407 afii10056
|
||||
!B8 U+2566 SF410000
|
||||
!B9 U+2567 SF450000
|
||||
!BA U+2568 SF460000
|
||||
!BB U+2569 SF400000
|
||||
!BC U+256A SF540000
|
||||
!BD U+0490 afii10050
|
||||
!BE U+256C SF440000
|
||||
!BF U+00A9 copyright
|
||||
!C0 U+044E afii10096
|
||||
!C1 U+0430 afii10065
|
||||
!C2 U+0431 afii10066
|
||||
!C3 U+0446 afii10088
|
||||
!C4 U+0434 afii10069
|
||||
!C5 U+0435 afii10070
|
||||
!C6 U+0444 afii10086
|
||||
!C7 U+0433 afii10068
|
||||
!C8 U+0445 afii10087
|
||||
!C9 U+0438 afii10074
|
||||
!CA U+0439 afii10075
|
||||
!CB U+043A afii10076
|
||||
!CC U+043B afii10077
|
||||
!CD U+043C afii10078
|
||||
!CE U+043D afii10079
|
||||
!CF U+043E afii10080
|
||||
!D0 U+043F afii10081
|
||||
!D1 U+044F afii10097
|
||||
!D2 U+0440 afii10082
|
||||
!D3 U+0441 afii10083
|
||||
!D4 U+0442 afii10084
|
||||
!D5 U+0443 afii10085
|
||||
!D6 U+0436 afii10072
|
||||
!D7 U+0432 afii10067
|
||||
!D8 U+044C afii10094
|
||||
!D9 U+044B afii10093
|
||||
!DA U+0437 afii10073
|
||||
!DB U+0448 afii10090
|
||||
!DC U+044D afii10095
|
||||
!DD U+0449 afii10091
|
||||
!DE U+0447 afii10089
|
||||
!DF U+044A afii10092
|
||||
!E0 U+042E afii10048
|
||||
!E1 U+0410 afii10017
|
||||
!E2 U+0411 afii10018
|
||||
!E3 U+0426 afii10040
|
||||
!E4 U+0414 afii10021
|
||||
!E5 U+0415 afii10022
|
||||
!E6 U+0424 afii10038
|
||||
!E7 U+0413 afii10020
|
||||
!E8 U+0425 afii10039
|
||||
!E9 U+0418 afii10026
|
||||
!EA U+0419 afii10027
|
||||
!EB U+041A afii10028
|
||||
!EC U+041B afii10029
|
||||
!ED U+041C afii10030
|
||||
!EE U+041D afii10031
|
||||
!EF U+041E afii10032
|
||||
!F0 U+041F afii10033
|
||||
!F1 U+042F afii10049
|
||||
!F2 U+0420 afii10034
|
||||
!F3 U+0421 afii10035
|
||||
!F4 U+0422 afii10036
|
||||
!F5 U+0423 afii10037
|
||||
!F6 U+0416 afii10024
|
||||
!F7 U+0412 afii10019
|
||||
!F8 U+042C afii10046
|
||||
!F9 U+042B afii10045
|
||||
!FA U+0417 afii10025
|
||||
!FB U+0428 afii10042
|
||||
!FC U+042D afii10047
|
||||
!FD U+0429 afii10043
|
||||
!FE U+0427 afii10041
|
||||
!FF U+042A afii10044
|
19
sites/all/modules/civicrm/vendor/phenx/php-font-lib/phpunit.xml.dist
vendored
Normal file
19
sites/all/modules/civicrm/vendor/phenx/php-font-lib/phpunit.xml.dist
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
colors="false"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
stopOnFailure="false"
|
||||
syntaxCheck="false"
|
||||
bootstrap="vendor/autoload.php"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="PHP Font Lib Test Suite">
|
||||
<directory>./tests/FontLib/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
</phpunit>
|
BIN
sites/all/modules/civicrm/vendor/phenx/php-font-lib/sample-fonts/IntelClear-Light.ttf
vendored
Normal file
BIN
sites/all/modules/civicrm/vendor/phenx/php-font-lib/sample-fonts/IntelClear-Light.ttf
vendored
Normal file
Binary file not shown.
217
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php
vendored
Normal file
217
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/AdobeFontMetrics.php
vendored
Normal file
|
@ -0,0 +1,217 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib;
|
||||
|
||||
use FontLib\Table\Type\name;
|
||||
use FontLib\TrueType\File;
|
||||
|
||||
/**
|
||||
* Adobe Font Metrics file creation utility class.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class AdobeFontMetrics {
|
||||
private $f;
|
||||
|
||||
/**
|
||||
* @var File
|
||||
*/
|
||||
private $font;
|
||||
|
||||
function __construct(File $font) {
|
||||
$this->font = $font;
|
||||
}
|
||||
|
||||
function write($file, $encoding = null) {
|
||||
$map_data = array();
|
||||
|
||||
if ($encoding) {
|
||||
$encoding = preg_replace("/[^a-z0-9-_]/", "", $encoding);
|
||||
$map_file = dirname(__FILE__) . "/../maps/$encoding.map";
|
||||
if (!file_exists($map_file)) {
|
||||
throw new \Exception("Unkown encoding ($encoding)");
|
||||
}
|
||||
|
||||
$map = new EncodingMap($map_file);
|
||||
$map_data = $map->parse();
|
||||
}
|
||||
|
||||
$this->f = fopen($file, "w+");
|
||||
|
||||
$font = $this->font;
|
||||
|
||||
$this->startSection("FontMetrics", 4.1);
|
||||
$this->addPair("Notice", "Converted by PHP-font-lib");
|
||||
$this->addPair("Comment", "https://github.com/PhenX/php-font-lib");
|
||||
|
||||
$encoding_scheme = ($encoding ? $encoding : "FontSpecific");
|
||||
$this->addPair("EncodingScheme", $encoding_scheme);
|
||||
|
||||
$records = $font->getData("name", "records");
|
||||
foreach ($records as $id => $record) {
|
||||
if (!isset(name::$nameIdCodes[$id]) || preg_match("/[\r\n]/", $record->string)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->addPair(name::$nameIdCodes[$id], $record->string);
|
||||
}
|
||||
|
||||
$os2 = $font->getData("OS/2");
|
||||
$this->addPair("Weight", ($os2["usWeightClass"] > 400 ? "Bold" : "Medium"));
|
||||
|
||||
$post = $font->getData("post");
|
||||
$this->addPair("ItalicAngle", $post["italicAngle"]);
|
||||
$this->addPair("IsFixedPitch", ($post["isFixedPitch"] ? "true" : "false"));
|
||||
$this->addPair("UnderlineThickness", $font->normalizeFUnit($post["underlineThickness"]));
|
||||
$this->addPair("UnderlinePosition", $font->normalizeFUnit($post["underlinePosition"]));
|
||||
|
||||
$hhea = $font->getData("hhea");
|
||||
|
||||
if (isset($hhea["ascent"])) {
|
||||
$this->addPair("FontHeightOffset", $font->normalizeFUnit($hhea["lineGap"]));
|
||||
$this->addPair("Ascender", $font->normalizeFUnit($hhea["ascent"]));
|
||||
$this->addPair("Descender", $font->normalizeFUnit($hhea["descent"]));
|
||||
}
|
||||
else {
|
||||
$this->addPair("FontHeightOffset", $font->normalizeFUnit($os2["typoLineGap"]));
|
||||
$this->addPair("Ascender", $font->normalizeFUnit($os2["typoAscender"]));
|
||||
$this->addPair("Descender", -abs($font->normalizeFUnit($os2["typoDescender"])));
|
||||
}
|
||||
|
||||
$head = $font->getData("head");
|
||||
$this->addArray("FontBBox", array(
|
||||
$font->normalizeFUnit($head["xMin"]),
|
||||
$font->normalizeFUnit($head["yMin"]),
|
||||
$font->normalizeFUnit($head["xMax"]),
|
||||
$font->normalizeFUnit($head["yMax"]),
|
||||
));
|
||||
|
||||
$glyphIndexArray = $font->getUnicodeCharMap();
|
||||
|
||||
if ($glyphIndexArray) {
|
||||
$hmtx = $font->getData("hmtx");
|
||||
$names = $font->getData("post", "names");
|
||||
|
||||
$this->startSection("CharMetrics", count($hmtx));
|
||||
|
||||
if ($encoding) {
|
||||
foreach ($map_data as $code => $value) {
|
||||
list($c, $name) = $value;
|
||||
|
||||
if (!isset($glyphIndexArray[$c])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$g = $glyphIndexArray[$c];
|
||||
|
||||
if (!isset($hmtx[$g])) {
|
||||
$hmtx[$g] = $hmtx[0];
|
||||
}
|
||||
|
||||
$this->addMetric(array(
|
||||
"C" => ($code > 255 ? -1 : $code),
|
||||
"WX" => $font->normalizeFUnit($hmtx[$g][0]),
|
||||
"N" => $name,
|
||||
));
|
||||
}
|
||||
}
|
||||
else {
|
||||
foreach ($glyphIndexArray as $c => $g) {
|
||||
if (!isset($hmtx[$g])) {
|
||||
$hmtx[$g] = $hmtx[0];
|
||||
}
|
||||
|
||||
$this->addMetric(array(
|
||||
"U" => $c,
|
||||
"WX" => $font->normalizeFUnit($hmtx[$g][0]),
|
||||
"N" => (isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $c)),
|
||||
"G" => $g,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
$this->endSection("CharMetrics");
|
||||
|
||||
$kern = $font->getData("kern", "subtable");
|
||||
$tree = $kern["tree"];
|
||||
|
||||
if (!$encoding && is_array($tree)) {
|
||||
$this->startSection("KernData");
|
||||
$this->startSection("KernPairs", count($tree, COUNT_RECURSIVE) - count($tree));
|
||||
|
||||
foreach ($tree as $left => $values) {
|
||||
if (!is_array($values)) {
|
||||
continue;
|
||||
}
|
||||
if (!isset($glyphIndexArray[$left])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$left_gid = $glyphIndexArray[$left];
|
||||
|
||||
if (!isset($names[$left_gid])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$left_name = $names[$left_gid];
|
||||
|
||||
$this->addLine("");
|
||||
|
||||
foreach ($values as $right => $value) {
|
||||
if (!isset($glyphIndexArray[$right])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$right_gid = $glyphIndexArray[$right];
|
||||
|
||||
if (!isset($names[$right_gid])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$right_name = $names[$right_gid];
|
||||
$this->addPair("KPX", "$left_name $right_name $value");
|
||||
}
|
||||
}
|
||||
|
||||
$this->endSection("KernPairs");
|
||||
$this->endSection("KernData");
|
||||
}
|
||||
}
|
||||
|
||||
$this->endSection("FontMetrics");
|
||||
}
|
||||
|
||||
function addLine($line) {
|
||||
fwrite($this->f, "$line\n");
|
||||
}
|
||||
|
||||
function addPair($key, $value) {
|
||||
$this->addLine("$key $value");
|
||||
}
|
||||
|
||||
function addArray($key, $array) {
|
||||
$this->addLine("$key " . implode(" ", $array));
|
||||
}
|
||||
|
||||
function addMetric($data) {
|
||||
$array = array();
|
||||
foreach ($data as $key => $value) {
|
||||
$array[] = "$key $value";
|
||||
}
|
||||
$this->addLine(implode(" ; ", $array));
|
||||
}
|
||||
|
||||
function startSection($name, $value = "") {
|
||||
$this->addLine("Start$name $value");
|
||||
}
|
||||
|
||||
function endSection($name) {
|
||||
$this->addLine("End$name");
|
||||
}
|
||||
}
|
43
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php
vendored
Normal file
43
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Autoloader.php
vendored
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib;
|
||||
|
||||
/**
|
||||
* Autoloads FontLib classes
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Autoloader {
|
||||
const PREFIX = 'FontLib';
|
||||
|
||||
/**
|
||||
* Register the autoloader
|
||||
*/
|
||||
public static function register() {
|
||||
spl_autoload_register(array(new self, 'autoload'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Autoloader
|
||||
*
|
||||
* @param string
|
||||
*/
|
||||
public static function autoload($class) {
|
||||
$prefixLength = strlen(self::PREFIX);
|
||||
if (0 === strncmp(self::PREFIX, $class, $prefixLength)) {
|
||||
$file = str_replace('\\', DIRECTORY_SEPARATOR, substr($class, $prefixLength));
|
||||
$file = realpath(__DIR__ . (empty($file) ? '' : DIRECTORY_SEPARATOR) . $file . '.php');
|
||||
if (file_exists($file)) {
|
||||
require_once $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Autoloader::register();
|
444
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php
vendored
Normal file
444
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/BinaryStream.php
vendored
Normal file
|
@ -0,0 +1,444 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib;
|
||||
|
||||
/**
|
||||
* Generic font file binary stream.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class BinaryStream {
|
||||
/**
|
||||
* @var resource The file pointer
|
||||
*/
|
||||
protected $f;
|
||||
|
||||
const uint8 = 1;
|
||||
const int8 = 2;
|
||||
const uint16 = 3;
|
||||
const int16 = 4;
|
||||
const uint32 = 5;
|
||||
const int32 = 6;
|
||||
const shortFrac = 7;
|
||||
const Fixed = 8;
|
||||
const FWord = 9;
|
||||
const uFWord = 10;
|
||||
const F2Dot14 = 11;
|
||||
const longDateTime = 12;
|
||||
const char = 13;
|
||||
|
||||
const modeRead = "rb";
|
||||
const modeWrite = "wb";
|
||||
const modeReadWrite = "rb+";
|
||||
|
||||
static function backtrace() {
|
||||
var_dump(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS));
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a font file in read mode
|
||||
*
|
||||
* @param string $filename The file name of the font to open
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function load($filename) {
|
||||
return $this->open($filename, self::modeRead);
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a font file in a chosen mode
|
||||
*
|
||||
* @param string $filename The file name of the font to open
|
||||
* @param string $mode The opening mode
|
||||
*
|
||||
* @throws \Exception
|
||||
* @return bool
|
||||
*/
|
||||
public function open($filename, $mode = self::modeRead) {
|
||||
if (!in_array($mode, array(self::modeRead, self::modeWrite, self::modeReadWrite))) {
|
||||
throw new \Exception("Unkown file open mode");
|
||||
}
|
||||
|
||||
$this->f = fopen($filename, $mode);
|
||||
|
||||
return $this->f != false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Close the internal file pointer
|
||||
*/
|
||||
public function close() {
|
||||
return fclose($this->f) != false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Change the internal file pointer
|
||||
*
|
||||
* @param resource $fp
|
||||
*
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function setFile($fp) {
|
||||
if (!is_resource($fp)) {
|
||||
throw new \Exception('$fp is not a valid resource');
|
||||
}
|
||||
|
||||
$this->f = $fp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a temporary file in write mode
|
||||
*
|
||||
* @param bool $allow_memory Allow in-memory files
|
||||
*
|
||||
* @return resource the temporary file pointer resource
|
||||
*/
|
||||
public static function getTempFile($allow_memory = true) {
|
||||
$f = null;
|
||||
|
||||
if ($allow_memory) {
|
||||
$f = fopen("php://temp", "rb+");
|
||||
}
|
||||
else {
|
||||
$f = fopen(tempnam(sys_get_temp_dir(), "fnt"), "rb+");
|
||||
}
|
||||
|
||||
return $f;
|
||||
}
|
||||
|
||||
/**
|
||||
* Move the internal file pinter to $offset bytes
|
||||
*
|
||||
* @param int $offset
|
||||
*
|
||||
* @return bool True if the $offset position exists in the file
|
||||
*/
|
||||
public function seek($offset) {
|
||||
return fseek($this->f, $offset, SEEK_SET) == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gives the current position in the file
|
||||
*
|
||||
* @return int The current position
|
||||
*/
|
||||
public function pos() {
|
||||
return ftell($this->f);
|
||||
}
|
||||
|
||||
public function skip($n) {
|
||||
fseek($this->f, $n, SEEK_CUR);
|
||||
}
|
||||
|
||||
public function read($n) {
|
||||
if ($n < 1) {
|
||||
return "";
|
||||
}
|
||||
|
||||
return fread($this->f, $n);
|
||||
}
|
||||
|
||||
public function write($data, $length = null) {
|
||||
if ($data === null || $data === "" || $data === false) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return fwrite($this->f, $data, $length);
|
||||
}
|
||||
|
||||
public function readUInt8() {
|
||||
return ord($this->read(1));
|
||||
}
|
||||
|
||||
public function readUInt8Many($count) {
|
||||
return array_values(unpack("C*", $this->read($count)));
|
||||
}
|
||||
|
||||
public function writeUInt8($data) {
|
||||
return $this->write(chr($data), 1);
|
||||
}
|
||||
|
||||
public function readInt8() {
|
||||
$v = $this->readUInt8();
|
||||
|
||||
if ($v >= 0x80) {
|
||||
$v -= 0x100;
|
||||
}
|
||||
|
||||
return $v;
|
||||
}
|
||||
|
||||
public function readInt8Many($count) {
|
||||
return array_values(unpack("c*", $this->read($count)));
|
||||
}
|
||||
|
||||
public function writeInt8($data) {
|
||||
if ($data < 0) {
|
||||
$data += 0x100;
|
||||
}
|
||||
|
||||
return $this->writeUInt8($data);
|
||||
}
|
||||
|
||||
public function readUInt16() {
|
||||
$a = unpack("nn", $this->read(2));
|
||||
|
||||
return $a["n"];
|
||||
}
|
||||
|
||||
public function readUInt16Many($count) {
|
||||
return array_values(unpack("n*", $this->read($count * 2)));
|
||||
}
|
||||
|
||||
public function readUFWord() {
|
||||
return $this->readUInt16();
|
||||
}
|
||||
|
||||
public function writeUInt16($data) {
|
||||
return $this->write(pack("n", $data), 2);
|
||||
}
|
||||
|
||||
public function writeUFWord($data) {
|
||||
return $this->writeUInt16($data);
|
||||
}
|
||||
|
||||
public function readInt16() {
|
||||
$a = unpack("nn", $this->read(2));
|
||||
$v = $a["n"];
|
||||
|
||||
if ($v >= 0x8000) {
|
||||
$v -= 0x10000;
|
||||
}
|
||||
|
||||
return $v;
|
||||
}
|
||||
|
||||
public function readInt16Many($count) {
|
||||
$vals = array_values(unpack("n*", $this->read($count * 2)));
|
||||
foreach ($vals as &$v) {
|
||||
if ($v >= 0x8000) {
|
||||
$v -= 0x10000;
|
||||
}
|
||||
}
|
||||
|
||||
return $vals;
|
||||
}
|
||||
|
||||
public function readFWord() {
|
||||
return $this->readInt16();
|
||||
}
|
||||
|
||||
public function writeInt16($data) {
|
||||
if ($data < 0) {
|
||||
$data += 0x10000;
|
||||
}
|
||||
|
||||
return $this->writeUInt16($data);
|
||||
}
|
||||
|
||||
public function writeFWord($data) {
|
||||
return $this->writeInt16($data);
|
||||
}
|
||||
|
||||
public function readUInt32() {
|
||||
$a = unpack("NN", $this->read(4));
|
||||
|
||||
return $a["N"];
|
||||
}
|
||||
|
||||
public function writeUInt32($data) {
|
||||
return $this->write(pack("N", $data), 4);
|
||||
}
|
||||
|
||||
public function readFixed() {
|
||||
$d = $this->readInt16();
|
||||
$d2 = $this->readUInt16();
|
||||
|
||||
return round($d + $d2 / 0x10000, 4);
|
||||
}
|
||||
|
||||
public function writeFixed($data) {
|
||||
$left = floor($data);
|
||||
$right = ($data - $left) * 0x10000;
|
||||
|
||||
return $this->writeInt16($left) + $this->writeUInt16($right);
|
||||
}
|
||||
|
||||
public function readLongDateTime() {
|
||||
$this->readUInt32(); // ignored
|
||||
$date = $this->readUInt32() - 2082844800;
|
||||
|
||||
# PHP_INT_MIN isn't defined in PHP < 7.0
|
||||
$php_int_min = defined("PHP_INT_MIN") ? PHP_INT_MIN : ~PHP_INT_MAX;
|
||||
|
||||
if (is_string($date) || $date > PHP_INT_MAX || $date < $php_int_min) {
|
||||
$date = 0;
|
||||
}
|
||||
|
||||
return strftime("%Y-%m-%d %H:%M:%S", $date);
|
||||
}
|
||||
|
||||
public function writeLongDateTime($data) {
|
||||
$date = strtotime($data);
|
||||
$date += 2082844800;
|
||||
|
||||
return $this->writeUInt32(0) + $this->writeUInt32($date);
|
||||
}
|
||||
|
||||
public function unpack($def) {
|
||||
$d = array();
|
||||
foreach ($def as $name => $type) {
|
||||
$d[$name] = $this->r($type);
|
||||
}
|
||||
|
||||
return $d;
|
||||
}
|
||||
|
||||
public function pack($def, $data) {
|
||||
$bytes = 0;
|
||||
foreach ($def as $name => $type) {
|
||||
$bytes += $this->w($type, $data[$name]);
|
||||
}
|
||||
|
||||
return $bytes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a data of type $type in the file from the current position
|
||||
*
|
||||
* @param mixed $type The data type to read
|
||||
*
|
||||
* @return mixed The data that was read
|
||||
*/
|
||||
public function r($type) {
|
||||
switch ($type) {
|
||||
case self::uint8:
|
||||
return $this->readUInt8();
|
||||
case self::int8:
|
||||
return $this->readInt8();
|
||||
case self::uint16:
|
||||
return $this->readUInt16();
|
||||
case self::int16:
|
||||
return $this->readInt16();
|
||||
case self::uint32:
|
||||
return $this->readUInt32();
|
||||
case self::int32:
|
||||
return $this->readUInt32();
|
||||
case self::shortFrac:
|
||||
return $this->readFixed();
|
||||
case self::Fixed:
|
||||
return $this->readFixed();
|
||||
case self::FWord:
|
||||
return $this->readInt16();
|
||||
case self::uFWord:
|
||||
return $this->readUInt16();
|
||||
case self::F2Dot14:
|
||||
return $this->readInt16();
|
||||
case self::longDateTime:
|
||||
return $this->readLongDateTime();
|
||||
case self::char:
|
||||
return $this->read(1);
|
||||
default:
|
||||
if (is_array($type)) {
|
||||
if ($type[0] == self::char) {
|
||||
return $this->read($type[1]);
|
||||
}
|
||||
if ($type[0] == self::uint16) {
|
||||
return $this->readUInt16Many($type[1]);
|
||||
}
|
||||
if ($type[0] == self::int16) {
|
||||
return $this->readInt16Many($type[1]);
|
||||
}
|
||||
if ($type[0] == self::uint8) {
|
||||
return $this->readUInt8Many($type[1]);
|
||||
}
|
||||
if ($type[0] == self::int8) {
|
||||
return $this->readInt8Many($type[1]);
|
||||
}
|
||||
|
||||
$ret = array();
|
||||
for ($i = 0; $i < $type[1]; $i++) {
|
||||
$ret[] = $this->r($type[0]);
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Write $data of type $type in the file from the current position
|
||||
*
|
||||
* @param mixed $type The data type to write
|
||||
* @param mixed $data The data to write
|
||||
*
|
||||
* @return int The number of bytes read
|
||||
*/
|
||||
public function w($type, $data) {
|
||||
switch ($type) {
|
||||
case self::uint8:
|
||||
return $this->writeUInt8($data);
|
||||
case self::int8:
|
||||
return $this->writeInt8($data);
|
||||
case self::uint16:
|
||||
return $this->writeUInt16($data);
|
||||
case self::int16:
|
||||
return $this->writeInt16($data);
|
||||
case self::uint32:
|
||||
return $this->writeUInt32($data);
|
||||
case self::int32:
|
||||
return $this->writeUInt32($data);
|
||||
case self::shortFrac:
|
||||
return $this->writeFixed($data);
|
||||
case self::Fixed:
|
||||
return $this->writeFixed($data);
|
||||
case self::FWord:
|
||||
return $this->writeInt16($data);
|
||||
case self::uFWord:
|
||||
return $this->writeUInt16($data);
|
||||
case self::F2Dot14:
|
||||
return $this->writeInt16($data);
|
||||
case self::longDateTime:
|
||||
return $this->writeLongDateTime($data);
|
||||
case self::char:
|
||||
return $this->write($data, 1);
|
||||
default:
|
||||
if (is_array($type)) {
|
||||
if ($type[0] == self::char) {
|
||||
return $this->write($data, $type[1]);
|
||||
}
|
||||
|
||||
$ret = 0;
|
||||
for ($i = 0; $i < $type[1]; $i++) {
|
||||
if (isset($data[$i])) {
|
||||
$ret += $this->w($type[0], $data[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a Uint32 value to string
|
||||
*
|
||||
* @param int $uint32
|
||||
*
|
||||
* @return string The string
|
||||
*/
|
||||
public function convertUInt32ToStr($uint32) {
|
||||
return chr(($uint32 >> 24) & 0xFF) . chr(($uint32 >> 16) & 0xFF) . chr(($uint32 >> 8) & 0xFF) . chr($uint32 & 0xFF);
|
||||
}
|
||||
}
|
160
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php
vendored
Normal file
160
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/EOT/File.php
vendored
Normal file
|
@ -0,0 +1,160 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\EOT;
|
||||
|
||||
/**
|
||||
* EOT font file.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class File extends \FontLib\TrueType\File {
|
||||
const TTEMBED_SUBSET = 0x00000001;
|
||||
const TTEMBED_TTCOMPRESSED = 0x00000004;
|
||||
const TTEMBED_FAILIFVARIATIONSIMULATED = 0x00000010;
|
||||
const TTMBED_EMBEDEUDC = 0x00000020;
|
||||
const TTEMBED_VALIDATIONTESTS = 0x00000040; // Deprecated
|
||||
const TTEMBED_WEBOBJECT = 0x00000080;
|
||||
const TTEMBED_XORENCRYPTDATA = 0x10000000;
|
||||
|
||||
/**
|
||||
* @var Header
|
||||
*/
|
||||
public $header;
|
||||
|
||||
function parseHeader() {
|
||||
if (!empty($this->header)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->header = new Header($this);
|
||||
$this->header->parse();
|
||||
}
|
||||
|
||||
function parse() {
|
||||
$this->parseHeader();
|
||||
|
||||
$flags = $this->header->data["Flags"];
|
||||
|
||||
if ($flags & self::TTEMBED_TTCOMPRESSED) {
|
||||
$mtx_version = $this->readUInt8();
|
||||
$mtx_copy_limit = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
|
||||
$mtx_offset_1 = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
|
||||
$mtx_offset_2 = $this->readUInt8() << 16 | $this->readUInt8() << 8 | $this->readUInt8();
|
||||
/*
|
||||
var_dump("$mtx_version $mtx_copy_limit $mtx_offset_1 $mtx_offset_2");
|
||||
|
||||
$pos = $this->pos();
|
||||
$size = $mtx_offset_1 - $pos;
|
||||
var_dump("pos: $pos");
|
||||
var_dump("size: $size");*/
|
||||
}
|
||||
|
||||
if ($flags & self::TTEMBED_XORENCRYPTDATA) {
|
||||
// Process XOR
|
||||
}
|
||||
// TODO Read font data ...
|
||||
}
|
||||
|
||||
/**
|
||||
* Little endian version of the read method
|
||||
*
|
||||
* @param int $n The number of bytes to read
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function read($n) {
|
||||
if ($n < 1) {
|
||||
return "";
|
||||
}
|
||||
|
||||
$string = fread($this->f, $n);
|
||||
$chunks = str_split($string, 2);
|
||||
$chunks = array_map("strrev", $chunks);
|
||||
|
||||
return implode("", $chunks);
|
||||
}
|
||||
|
||||
public function readUInt32() {
|
||||
$uint32 = parent::readUInt32();
|
||||
|
||||
return $uint32 >> 16 & 0x0000FFFF | $uint32 << 16 & 0xFFFF0000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font copyright
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontCopyright() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontName() {
|
||||
return $this->header->data["FamilyName"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font subfamily
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontSubfamily() {
|
||||
return $this->header->data["StyleName"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font subfamily ID
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontSubfamilyID() {
|
||||
return $this->header->data["StyleName"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font full name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontFullName() {
|
||||
return $this->header->data["FullName"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font version
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontVersion() {
|
||||
return $this->header->data["VersionName"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font weight
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontWeight() {
|
||||
return $this->header->data["Weight"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font Postscript name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontPostscriptName() {
|
||||
return null;
|
||||
}
|
||||
}
|
113
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php
vendored
Normal file
113
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/EOT/Header.php
vendored
Normal file
|
@ -0,0 +1,113 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\EOT;
|
||||
|
||||
use Exception;
|
||||
use FontLib\Font;
|
||||
|
||||
/**
|
||||
* TrueType font file header.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*
|
||||
* @property File $font
|
||||
*/
|
||||
class Header extends \FontLib\Header {
|
||||
protected $def = array(
|
||||
"format" => self::uint32,
|
||||
"numTables" => self::uint16,
|
||||
"searchRange" => self::uint16,
|
||||
"entrySelector" => self::uint16,
|
||||
"rangeShift" => self::uint16,
|
||||
);
|
||||
|
||||
public function parse() {
|
||||
$font = $this->font;
|
||||
|
||||
$this->data = $font->unpack(array(
|
||||
"EOTSize" => self::uint32,
|
||||
"FontDataSize" => self::uint32,
|
||||
"Version" => self::uint32,
|
||||
"Flags" => self::uint32,
|
||||
"FontPANOSE" => array(self::uint8, 10),
|
||||
"Charset" => self::uint8,
|
||||
"Italic" => self::uint8,
|
||||
"Weight" => self::uint32,
|
||||
"fsType" => self::uint16,
|
||||
"MagicNumber" => self::uint16,
|
||||
"UnicodeRange1" => self::uint32,
|
||||
"UnicodeRange2" => self::uint32,
|
||||
"UnicodeRange3" => self::uint32,
|
||||
"UnicodeRange4" => self::uint32,
|
||||
"CodePageRange1" => self::uint32,
|
||||
"CodePageRange2" => self::uint32,
|
||||
"CheckSumAdjustment" => self::uint32,
|
||||
"Reserved1" => self::uint32,
|
||||
"Reserved2" => self::uint32,
|
||||
"Reserved3" => self::uint32,
|
||||
"Reserved4" => self::uint32,
|
||||
));
|
||||
|
||||
$this->data["Padding1"] = $font->readUInt16();
|
||||
$this->readString("FamilyName");
|
||||
|
||||
$this->data["Padding2"] = $font->readUInt16();
|
||||
$this->readString("StyleName");
|
||||
|
||||
$this->data["Padding3"] = $font->readUInt16();
|
||||
$this->readString("VersionName");
|
||||
|
||||
$this->data["Padding4"] = $font->readUInt16();
|
||||
$this->readString("FullName");
|
||||
|
||||
switch ($this->data["Version"]) {
|
||||
default:
|
||||
throw new Exception("Unknown EOT version " . $this->data["Version"]);
|
||||
|
||||
case 0x00010000:
|
||||
// Nothing to do more
|
||||
break;
|
||||
|
||||
case 0x00020001:
|
||||
$this->data["Padding5"] = $font->readUInt16();
|
||||
$this->readString("RootString");
|
||||
break;
|
||||
|
||||
case 0x00020002:
|
||||
$this->data["Padding5"] = $font->readUInt16();
|
||||
$this->readString("RootString");
|
||||
|
||||
$this->data["RootStringCheckSum"] = $font->readUInt32();
|
||||
$this->data["EUDCCodePage"] = $font->readUInt32();
|
||||
|
||||
$this->data["Padding6"] = $font->readUInt16();
|
||||
$this->readString("Signature");
|
||||
|
||||
$this->data["EUDCFlags"] = $font->readUInt32();
|
||||
$this->data["EUDCFontSize"] = $font->readUInt32();
|
||||
break;
|
||||
}
|
||||
|
||||
if (!empty($this->data["RootString"])) {
|
||||
$this->data["RootString"] = explode("\0", $this->data["RootString"]);
|
||||
}
|
||||
}
|
||||
|
||||
private function readString($name) {
|
||||
$font = $this->font;
|
||||
$size = $font->readUInt16();
|
||||
|
||||
$this->data["{$name}Size"] = $size;
|
||||
$this->data[$name] = Font::UTF16ToUTF8($font->read($size));
|
||||
}
|
||||
|
||||
public function encode() {
|
||||
//return $this->font->pack($this->def, $this->data);
|
||||
}
|
||||
}
|
37
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php
vendored
Normal file
37
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/EncodingMap.php
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib;
|
||||
|
||||
/**
|
||||
* Encoding map used to map a code point to a Unicode char.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class EncodingMap {
|
||||
private $f;
|
||||
|
||||
function __construct($file) {
|
||||
$this->f = fopen($file, "r");
|
||||
}
|
||||
|
||||
function parse() {
|
||||
$map = array();
|
||||
|
||||
while ($line = fgets($this->f)) {
|
||||
if (preg_match('/^[\!\=]([0-9A-F]{2,})\s+U\+([0-9A-F]{2})([0-9A-F]{2})\s+([^\s]+)/', $line, $matches)) {
|
||||
$unicode = (hexdec($matches[2]) << 8) + hexdec($matches[3]);
|
||||
$map[hexdec($matches[1])] = array($unicode, $matches[4]);
|
||||
}
|
||||
}
|
||||
|
||||
ksort($map);
|
||||
|
||||
return $map;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
<?php
|
||||
|
||||
namespace FontLib\Exception;
|
||||
|
||||
class FontNotFoundException extends \Exception
|
||||
{
|
||||
public function __construct($fontPath)
|
||||
{
|
||||
$this->message = 'Font not found in: ' . $fontPath;
|
||||
}
|
||||
}
|
89
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Font.php
vendored
Normal file
89
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Font.php
vendored
Normal file
|
@ -0,0 +1,89 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib;
|
||||
|
||||
use FontLib\Exception\FontNotFoundException;
|
||||
|
||||
/**
|
||||
* Generic font file.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Font {
|
||||
static $debug = false;
|
||||
|
||||
/**
|
||||
* @param string $file The font file
|
||||
*
|
||||
* @return TrueType\File|null $file
|
||||
*/
|
||||
public static function load($file) {
|
||||
if(!file_exists($file)){
|
||||
throw new FontNotFoundException($file);
|
||||
}
|
||||
|
||||
$header = file_get_contents($file, false, null, null, 4);
|
||||
$class = null;
|
||||
|
||||
switch ($header) {
|
||||
case "\x00\x01\x00\x00":
|
||||
case "true":
|
||||
case "typ1":
|
||||
$class = "TrueType\\File";
|
||||
break;
|
||||
|
||||
case "OTTO":
|
||||
$class = "OpenType\\File";
|
||||
break;
|
||||
|
||||
case "wOFF":
|
||||
$class = "WOFF\\File";
|
||||
break;
|
||||
|
||||
case "ttcf":
|
||||
$class = "TrueType\\Collection";
|
||||
break;
|
||||
|
||||
// Unknown type or EOT
|
||||
default:
|
||||
$magicNumber = file_get_contents($file, false, null, 34, 2);
|
||||
|
||||
if ($magicNumber === "LP") {
|
||||
$class = "EOT\\File";
|
||||
}
|
||||
}
|
||||
|
||||
if ($class) {
|
||||
$class = "FontLib\\$class";
|
||||
|
||||
/** @var TrueType\File $obj */
|
||||
$obj = new $class;
|
||||
$obj->load($file);
|
||||
|
||||
return $obj;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static function d($str) {
|
||||
if (!self::$debug) {
|
||||
return;
|
||||
}
|
||||
echo "$str\n";
|
||||
}
|
||||
|
||||
static function UTF16ToUTF8($str) {
|
||||
return mb_convert_encoding($str, "utf-8", "utf-16");
|
||||
}
|
||||
|
||||
static function UTF8ToUTF16($str) {
|
||||
return mb_convert_encoding($str, "utf-16", "utf-8");
|
||||
}
|
||||
}
|
110
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php
vendored
Normal file
110
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/Outline.php
vendored
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
|
||||
*/
|
||||
namespace FontLib\Glyph;
|
||||
|
||||
use FontLib\Table\Type\glyf;
|
||||
use FontLib\TrueType\File;
|
||||
use FontLib\BinaryStream;
|
||||
|
||||
/**
|
||||
* `glyf` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Outline extends BinaryStream {
|
||||
/**
|
||||
* @var \FontLib\Table\Type\glyf
|
||||
*/
|
||||
protected $table;
|
||||
|
||||
protected $offset;
|
||||
protected $size;
|
||||
|
||||
// Data
|
||||
public $numberOfContours;
|
||||
public $xMin;
|
||||
public $yMin;
|
||||
public $xMax;
|
||||
public $yMax;
|
||||
|
||||
public $raw;
|
||||
|
||||
/**
|
||||
* @param glyf $table
|
||||
* @param $offset
|
||||
* @param $size
|
||||
*
|
||||
* @return Outline
|
||||
*/
|
||||
static function init(glyf $table, $offset, $size, BinaryStream $font) {
|
||||
$font->seek($offset);
|
||||
|
||||
if ($font->readInt16() > -1) {
|
||||
/** @var OutlineSimple $glyph */
|
||||
$glyph = new OutlineSimple($table, $offset, $size);
|
||||
}
|
||||
else {
|
||||
/** @var OutlineComposite $glyph */
|
||||
$glyph = new OutlineComposite($table, $offset, $size);
|
||||
}
|
||||
|
||||
$glyph->parse($font);
|
||||
|
||||
return $glyph;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return File
|
||||
*/
|
||||
function getFont() {
|
||||
return $this->table->getFont();
|
||||
}
|
||||
|
||||
function __construct(glyf $table, $offset = null, $size = null) {
|
||||
$this->table = $table;
|
||||
$this->offset = $offset;
|
||||
$this->size = $size;
|
||||
}
|
||||
|
||||
function parse(BinaryStream $font) {
|
||||
$font->seek($this->offset);
|
||||
|
||||
if (!$this->size) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->raw = $font->read($this->size);
|
||||
}
|
||||
|
||||
function parseData() {
|
||||
$font = $this->getFont();
|
||||
$font->seek($this->offset);
|
||||
|
||||
$this->numberOfContours = $font->readInt16();
|
||||
$this->xMin = $font->readFWord();
|
||||
$this->yMin = $font->readFWord();
|
||||
$this->xMax = $font->readFWord();
|
||||
$this->yMax = $font->readFWord();
|
||||
}
|
||||
|
||||
function encode() {
|
||||
$font = $this->getFont();
|
||||
|
||||
return $font->write($this->raw, strlen($this->raw));
|
||||
}
|
||||
|
||||
function getSVGContours() {
|
||||
// Inherit
|
||||
}
|
||||
|
||||
function getGlyphIDs() {
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
31
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php
vendored
Normal file
31
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComponent.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
|
||||
*/
|
||||
|
||||
namespace FontLib\Glyph;
|
||||
/**
|
||||
* Glyph outline component
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class OutlineComponent {
|
||||
public $flags;
|
||||
public $glyphIndex;
|
||||
public $a, $b, $c, $d, $e, $f;
|
||||
public $point_compound;
|
||||
public $point_component;
|
||||
public $instructions;
|
||||
|
||||
function getMatrix() {
|
||||
return array(
|
||||
$this->a, $this->b,
|
||||
$this->c, $this->d,
|
||||
$this->e, $this->f,
|
||||
);
|
||||
}
|
||||
}
|
242
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php
vendored
Normal file
242
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineComposite.php
vendored
Normal file
|
@ -0,0 +1,242 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
|
||||
*/
|
||||
|
||||
namespace FontLib\Glyph;
|
||||
|
||||
/**
|
||||
* Composite glyph outline
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class OutlineComposite extends Outline {
|
||||
const ARG_1_AND_2_ARE_WORDS = 0x0001;
|
||||
const ARGS_ARE_XY_VALUES = 0x0002;
|
||||
const ROUND_XY_TO_GRID = 0x0004;
|
||||
const WE_HAVE_A_SCALE = 0x0008;
|
||||
const MORE_COMPONENTS = 0x0020;
|
||||
const WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;
|
||||
const WE_HAVE_A_TWO_BY_TWO = 0x0080;
|
||||
const WE_HAVE_INSTRUCTIONS = 0x0100;
|
||||
const USE_MY_METRICS = 0x0200;
|
||||
const OVERLAP_COMPOUND = 0x0400;
|
||||
|
||||
/**
|
||||
* @var OutlineComponent[]
|
||||
*/
|
||||
public $components = array();
|
||||
|
||||
function getGlyphIDs() {
|
||||
if (empty($this->components)) {
|
||||
$this->parseData();
|
||||
}
|
||||
|
||||
$glyphIDs = array();
|
||||
foreach ($this->components as $_component) {
|
||||
$glyphIDs[] = $_component->glyphIndex;
|
||||
|
||||
$_glyph = $this->table->data[$_component->glyphIndex];
|
||||
|
||||
if ($_glyph !== $this) {
|
||||
$glyphIDs = array_merge($glyphIDs, $_glyph->getGlyphIDs());
|
||||
}
|
||||
}
|
||||
|
||||
return $glyphIDs;
|
||||
}
|
||||
|
||||
/*function parse() {
|
||||
//$this->parseData();
|
||||
}*/
|
||||
|
||||
function parseData() {
|
||||
parent::parseData();
|
||||
|
||||
$font = $this->getFont();
|
||||
|
||||
do {
|
||||
$flags = $font->readUInt16();
|
||||
$glyphIndex = $font->readUInt16();
|
||||
|
||||
$a = 1.0;
|
||||
$b = 0.0;
|
||||
$c = 0.0;
|
||||
$d = 1.0;
|
||||
$e = 0.0;
|
||||
$f = 0.0;
|
||||
|
||||
$point_compound = null;
|
||||
$point_component = null;
|
||||
|
||||
$instructions = null;
|
||||
|
||||
if ($flags & self::ARG_1_AND_2_ARE_WORDS) {
|
||||
if ($flags & self::ARGS_ARE_XY_VALUES) {
|
||||
$e = $font->readInt16();
|
||||
$f = $font->readInt16();
|
||||
}
|
||||
else {
|
||||
$point_compound = $font->readUInt16();
|
||||
$point_component = $font->readUInt16();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($flags & self::ARGS_ARE_XY_VALUES) {
|
||||
$e = $font->readInt8();
|
||||
$f = $font->readInt8();
|
||||
}
|
||||
else {
|
||||
$point_compound = $font->readUInt8();
|
||||
$point_component = $font->readUInt8();
|
||||
}
|
||||
}
|
||||
|
||||
if ($flags & self::WE_HAVE_A_SCALE) {
|
||||
$a = $d = $font->readInt16();
|
||||
}
|
||||
elseif ($flags & self::WE_HAVE_AN_X_AND_Y_SCALE) {
|
||||
$a = $font->readInt16();
|
||||
$d = $font->readInt16();
|
||||
}
|
||||
elseif ($flags & self::WE_HAVE_A_TWO_BY_TWO) {
|
||||
$a = $font->readInt16();
|
||||
$b = $font->readInt16();
|
||||
$c = $font->readInt16();
|
||||
$d = $font->readInt16();
|
||||
}
|
||||
|
||||
//if ($flags & self::WE_HAVE_INSTRUCTIONS) {
|
||||
//
|
||||
//}
|
||||
|
||||
$component = new OutlineComponent();
|
||||
$component->flags = $flags;
|
||||
$component->glyphIndex = $glyphIndex;
|
||||
$component->a = $a;
|
||||
$component->b = $b;
|
||||
$component->c = $c;
|
||||
$component->d = $d;
|
||||
$component->e = $e;
|
||||
$component->f = $f;
|
||||
$component->point_compound = $point_compound;
|
||||
$component->point_component = $point_component;
|
||||
$component->instructions = $instructions;
|
||||
|
||||
$this->components[] = $component;
|
||||
} while ($flags & self::MORE_COMPONENTS);
|
||||
}
|
||||
|
||||
function encode() {
|
||||
$font = $this->getFont();
|
||||
|
||||
$gids = $font->getSubset();
|
||||
|
||||
$size = $font->writeInt16(-1);
|
||||
$size += $font->writeFWord($this->xMin);
|
||||
$size += $font->writeFWord($this->yMin);
|
||||
$size += $font->writeFWord($this->xMax);
|
||||
$size += $font->writeFWord($this->yMax);
|
||||
|
||||
foreach ($this->components as $_i => $_component) {
|
||||
$flags = 0;
|
||||
if ($_component->point_component === null && $_component->point_compound === null) {
|
||||
$flags |= self::ARGS_ARE_XY_VALUES;
|
||||
|
||||
if (abs($_component->e) > 0x7F || abs($_component->f) > 0x7F) {
|
||||
$flags |= self::ARG_1_AND_2_ARE_WORDS;
|
||||
}
|
||||
}
|
||||
elseif ($_component->point_component > 0xFF || $_component->point_compound > 0xFF) {
|
||||
$flags |= self::ARG_1_AND_2_ARE_WORDS;
|
||||
}
|
||||
|
||||
if ($_component->b == 0 && $_component->c == 0) {
|
||||
if ($_component->a == $_component->d) {
|
||||
if ($_component->a != 1.0) {
|
||||
$flags |= self::WE_HAVE_A_SCALE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$flags |= self::WE_HAVE_AN_X_AND_Y_SCALE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$flags |= self::WE_HAVE_A_TWO_BY_TWO;
|
||||
}
|
||||
|
||||
if ($_i < count($this->components) - 1) {
|
||||
$flags |= self::MORE_COMPONENTS;
|
||||
}
|
||||
|
||||
$size += $font->writeUInt16($flags);
|
||||
|
||||
$new_gid = array_search($_component->glyphIndex, $gids);
|
||||
$size += $font->writeUInt16($new_gid);
|
||||
|
||||
if ($flags & self::ARG_1_AND_2_ARE_WORDS) {
|
||||
if ($flags & self::ARGS_ARE_XY_VALUES) {
|
||||
$size += $font->writeInt16($_component->e);
|
||||
$size += $font->writeInt16($_component->f);
|
||||
}
|
||||
else {
|
||||
$size += $font->writeUInt16($_component->point_compound);
|
||||
$size += $font->writeUInt16($_component->point_component);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($flags & self::ARGS_ARE_XY_VALUES) {
|
||||
$size += $font->writeInt8($_component->e);
|
||||
$size += $font->writeInt8($_component->f);
|
||||
}
|
||||
else {
|
||||
$size += $font->writeUInt8($_component->point_compound);
|
||||
$size += $font->writeUInt8($_component->point_component);
|
||||
}
|
||||
}
|
||||
|
||||
if ($flags & self::WE_HAVE_A_SCALE) {
|
||||
$size += $font->writeInt16($_component->a);
|
||||
}
|
||||
elseif ($flags & self::WE_HAVE_AN_X_AND_Y_SCALE) {
|
||||
$size += $font->writeInt16($_component->a);
|
||||
$size += $font->writeInt16($_component->d);
|
||||
}
|
||||
elseif ($flags & self::WE_HAVE_A_TWO_BY_TWO) {
|
||||
$size += $font->writeInt16($_component->a);
|
||||
$size += $font->writeInt16($_component->b);
|
||||
$size += $font->writeInt16($_component->c);
|
||||
$size += $font->writeInt16($_component->d);
|
||||
}
|
||||
}
|
||||
|
||||
return $size;
|
||||
}
|
||||
|
||||
public function getSVGContours() {
|
||||
$contours = array();
|
||||
|
||||
/** @var \FontLib\Table\Type\glyf $glyph_data */
|
||||
$glyph_data = $this->getFont()->getTableObject("glyf");
|
||||
|
||||
/** @var Outline[] $glyphs */
|
||||
$glyphs = $glyph_data->data;
|
||||
|
||||
foreach ($this->components as $component) {
|
||||
$_glyph = $glyphs[$component->glyphIndex];
|
||||
|
||||
if ($_glyph !== $this) {
|
||||
$contours[] = array(
|
||||
"contours" => $_glyph->getSVGContours(),
|
||||
"transform" => $component->getMatrix(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return $contours;
|
||||
}
|
||||
}
|
335
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php
vendored
Normal file
335
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Glyph/OutlineSimple.php
vendored
Normal file
|
@ -0,0 +1,335 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
* @version $Id: Font_Table_glyf.php 46 2012-04-02 20:22:38Z fabien.menager $
|
||||
*/
|
||||
|
||||
namespace FontLib\Glyph;
|
||||
|
||||
/**
|
||||
* `glyf` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class OutlineSimple extends Outline {
|
||||
const ON_CURVE = 0x01;
|
||||
const X_SHORT_VECTOR = 0x02;
|
||||
const Y_SHORT_VECTOR = 0x04;
|
||||
const REPEAT = 0x08;
|
||||
const THIS_X_IS_SAME = 0x10;
|
||||
const THIS_Y_IS_SAME = 0x20;
|
||||
|
||||
public $instructions;
|
||||
public $points;
|
||||
|
||||
function parseData() {
|
||||
parent::parseData();
|
||||
|
||||
if (!$this->size) {
|
||||
return;
|
||||
}
|
||||
|
||||
$font = $this->getFont();
|
||||
|
||||
$noc = $this->numberOfContours;
|
||||
|
||||
if ($noc == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
$endPtsOfContours = $font->r(array(self::uint16, $noc));
|
||||
|
||||
$instructionLength = $font->readUInt16();
|
||||
$this->instructions = $font->r(array(self::uint8, $instructionLength));
|
||||
|
||||
$count = $endPtsOfContours[$noc - 1] + 1;
|
||||
|
||||
// Flags
|
||||
$flags = array();
|
||||
for ($index = 0; $index < $count; $index++) {
|
||||
$flags[$index] = $font->readUInt8();
|
||||
|
||||
if ($flags[$index] & self::REPEAT) {
|
||||
$repeats = $font->readUInt8();
|
||||
|
||||
for ($i = 1; $i <= $repeats; $i++) {
|
||||
$flags[$index + $i] = $flags[$index];
|
||||
}
|
||||
|
||||
$index += $repeats;
|
||||
}
|
||||
}
|
||||
|
||||
$points = array();
|
||||
foreach ($flags as $i => $flag) {
|
||||
$points[$i]["onCurve"] = $flag & self::ON_CURVE;
|
||||
$points[$i]["endOfContour"] = in_array($i, $endPtsOfContours);
|
||||
}
|
||||
|
||||
// X Coords
|
||||
$x = 0;
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
$flag = $flags[$i];
|
||||
|
||||
if ($flag & self::THIS_X_IS_SAME) {
|
||||
if ($flag & self::X_SHORT_VECTOR) {
|
||||
$x += $font->readUInt8();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($flag & self::X_SHORT_VECTOR) {
|
||||
$x -= $font->readUInt8();
|
||||
}
|
||||
else {
|
||||
$x += $font->readInt16();
|
||||
}
|
||||
}
|
||||
|
||||
$points[$i]["x"] = $x;
|
||||
}
|
||||
|
||||
// Y Coords
|
||||
$y = 0;
|
||||
for ($i = 0; $i < $count; $i++) {
|
||||
$flag = $flags[$i];
|
||||
|
||||
if ($flag & self::THIS_Y_IS_SAME) {
|
||||
if ($flag & self::Y_SHORT_VECTOR) {
|
||||
$y += $font->readUInt8();
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($flag & self::Y_SHORT_VECTOR) {
|
||||
$y -= $font->readUInt8();
|
||||
}
|
||||
else {
|
||||
$y += $font->readInt16();
|
||||
}
|
||||
}
|
||||
|
||||
$points[$i]["y"] = $y;
|
||||
}
|
||||
|
||||
$this->points = $points;
|
||||
}
|
||||
|
||||
public function splitSVGPath($path) {
|
||||
preg_match_all('/([a-z])|(-?\d+(?:\.\d+)?)/i', $path, $matches, PREG_PATTERN_ORDER);
|
||||
|
||||
return $matches[0];
|
||||
}
|
||||
|
||||
public function makePoints($path) {
|
||||
$path = $this->splitSVGPath($path);
|
||||
$l = count($path);
|
||||
$i = 0;
|
||||
|
||||
$points = array();
|
||||
|
||||
while ($i < $l) {
|
||||
switch ($path[$i]) {
|
||||
// moveTo
|
||||
case "M":
|
||||
$points[] = array(
|
||||
"onCurve" => true,
|
||||
"x" => $path[++$i],
|
||||
"y" => $path[++$i],
|
||||
"endOfContour" => false,
|
||||
);
|
||||
break;
|
||||
|
||||
// lineTo
|
||||
case "L":
|
||||
$points[] = array(
|
||||
"onCurve" => true,
|
||||
"x" => $path[++$i],
|
||||
"y" => $path[++$i],
|
||||
"endOfContour" => false,
|
||||
);
|
||||
break;
|
||||
|
||||
// quadraticCurveTo
|
||||
case "Q":
|
||||
$points[] = array(
|
||||
"onCurve" => false,
|
||||
"x" => $path[++$i],
|
||||
"y" => $path[++$i],
|
||||
"endOfContour" => false,
|
||||
);
|
||||
$points[] = array(
|
||||
"onCurve" => true,
|
||||
"x" => $path[++$i],
|
||||
"y" => $path[++$i],
|
||||
"endOfContour" => false,
|
||||
);
|
||||
break;
|
||||
|
||||
// closePath
|
||||
/** @noinspection PhpMissingBreakStatementInspection */
|
||||
case "z":
|
||||
$points[count($points) - 1]["endOfContour"] = true;
|
||||
|
||||
default:
|
||||
$i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return $points;
|
||||
}
|
||||
|
||||
function encode() {
|
||||
if (empty($this->points)) {
|
||||
return parent::encode();
|
||||
}
|
||||
|
||||
return $this->size = $this->encodePoints($this->points);
|
||||
}
|
||||
|
||||
public function encodePoints($points) {
|
||||
$endPtsOfContours = array();
|
||||
$flags = array();
|
||||
$coords_x = array();
|
||||
$coords_y = array();
|
||||
|
||||
$last_x = 0;
|
||||
$last_y = 0;
|
||||
$xMin = $yMin = 0xFFFF;
|
||||
$xMax = $yMax = -0xFFFF;
|
||||
foreach ($points as $i => $point) {
|
||||
$flag = 0;
|
||||
if ($point["onCurve"]) {
|
||||
$flag |= self::ON_CURVE;
|
||||
}
|
||||
|
||||
if ($point["endOfContour"]) {
|
||||
$endPtsOfContours[] = $i;
|
||||
}
|
||||
|
||||
// Simplified, we could do some optimizations
|
||||
if ($point["x"] == $last_x) {
|
||||
$flag |= self::THIS_X_IS_SAME;
|
||||
}
|
||||
else {
|
||||
$x = intval($point["x"]);
|
||||
$xMin = min($x, $xMin);
|
||||
$xMax = max($x, $xMax);
|
||||
$coords_x[] = $x - $last_x; // int16
|
||||
}
|
||||
|
||||
// Simplified, we could do some optimizations
|
||||
if ($point["y"] == $last_y) {
|
||||
$flag |= self::THIS_Y_IS_SAME;
|
||||
}
|
||||
else {
|
||||
$y = intval($point["y"]);
|
||||
$yMin = min($y, $yMin);
|
||||
$yMax = max($y, $yMax);
|
||||
$coords_y[] = $y - $last_y; // int16
|
||||
}
|
||||
|
||||
$flags[] = $flag;
|
||||
$last_x = $point["x"];
|
||||
$last_y = $point["y"];
|
||||
}
|
||||
|
||||
$font = $this->getFont();
|
||||
|
||||
$l = 0;
|
||||
$l += $font->writeInt16(count($endPtsOfContours)); // endPtsOfContours
|
||||
$l += $font->writeFWord(isset($this->xMin) ? $this->xMin : $xMin); // xMin
|
||||
$l += $font->writeFWord(isset($this->yMin) ? $this->yMin : $yMin); // yMin
|
||||
$l += $font->writeFWord(isset($this->xMax) ? $this->xMax : $xMax); // xMax
|
||||
$l += $font->writeFWord(isset($this->yMax) ? $this->yMax : $yMax); // yMax
|
||||
|
||||
// Simple glyf
|
||||
$l += $font->w(array(self::uint16, count($endPtsOfContours)), $endPtsOfContours); // endPtsOfContours
|
||||
$l += $font->writeUInt16(0); // instructionLength
|
||||
$l += $font->w(array(self::uint8, count($flags)), $flags); // flags
|
||||
$l += $font->w(array(self::int16, count($coords_x)), $coords_x); // xCoordinates
|
||||
$l += $font->w(array(self::int16, count($coords_y)), $coords_y); // yCoordinates
|
||||
return $l;
|
||||
}
|
||||
|
||||
public function getSVGContours($points = null) {
|
||||
$path = "";
|
||||
|
||||
if (!$points) {
|
||||
if (empty($this->points)) {
|
||||
$this->parseData();
|
||||
}
|
||||
|
||||
$points = $this->points;
|
||||
}
|
||||
|
||||
$length = count($points);
|
||||
$firstIndex = 0;
|
||||
$count = 0;
|
||||
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
$count++;
|
||||
|
||||
if ($points[$i]["endOfContour"]) {
|
||||
$path .= $this->getSVGPath($points, $firstIndex, $count);
|
||||
$firstIndex = $i + 1;
|
||||
$count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
protected function getSVGPath($points, $startIndex, $count) {
|
||||
$offset = 0;
|
||||
$path = "";
|
||||
|
||||
while ($offset < $count) {
|
||||
$point = $points[$startIndex + $offset % $count];
|
||||
$point_p1 = $points[$startIndex + ($offset + 1) % $count];
|
||||
|
||||
if ($offset == 0) {
|
||||
$path .= "M{$point['x']},{$point['y']} ";
|
||||
}
|
||||
|
||||
if ($point["onCurve"]) {
|
||||
if ($point_p1["onCurve"]) {
|
||||
$path .= "L{$point_p1['x']},{$point_p1['y']} ";
|
||||
$offset++;
|
||||
}
|
||||
else {
|
||||
$point_p2 = $points[$startIndex + ($offset + 2) % $count];
|
||||
|
||||
if ($point_p2["onCurve"]) {
|
||||
$path .= "Q{$point_p1['x']},{$point_p1['y']},{$point_p2['x']},{$point_p2['y']} ";
|
||||
}
|
||||
else {
|
||||
$path .= "Q{$point_p1['x']},{$point_p1['y']}," . $this->midValue($point_p1['x'], $point_p2['x']) . "," . $this->midValue($point_p1['y'], $point_p2['y']) . " ";
|
||||
}
|
||||
|
||||
$offset += 2;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($point_p1["onCurve"]) {
|
||||
$path .= "Q{$point['x']},{$point['y']},{$point_p1['x']},{$point_p1['y']} ";
|
||||
}
|
||||
else {
|
||||
$path .= "Q{$point['x']},{$point['y']}," . $this->midValue($point['x'], $point_p1['x']) . "," . $this->midValue($point['y'], $point_p1['y']) . " ";
|
||||
}
|
||||
|
||||
$offset++;
|
||||
}
|
||||
}
|
||||
|
||||
$path .= "z ";
|
||||
|
||||
return $path;
|
||||
}
|
||||
|
||||
function midValue($a, $b) {
|
||||
return $a + ($b - $a) / 2;
|
||||
}
|
||||
}
|
37
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Header.php
vendored
Normal file
37
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Header.php
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
namespace FontLib;
|
||||
|
||||
use FontLib\TrueType\File;
|
||||
|
||||
/**
|
||||
* Font header container.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
abstract class Header extends BinaryStream {
|
||||
/**
|
||||
* @var File
|
||||
*/
|
||||
protected $font;
|
||||
protected $def = array();
|
||||
|
||||
public $data;
|
||||
|
||||
public function __construct(File $font) {
|
||||
$this->font = $font;
|
||||
}
|
||||
|
||||
public function encode() {
|
||||
return $this->font->pack($this->def, $this->data);
|
||||
}
|
||||
|
||||
public function parse() {
|
||||
$this->data = $this->font->unpack($this->def);
|
||||
}
|
||||
}
|
18
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php
vendored
Normal file
18
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/OpenType/File.php
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\OpenType;
|
||||
|
||||
/**
|
||||
* Open Type font, the same as a TrueType one.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class File extends \FontLib\TrueType\File {
|
||||
//
|
||||
}
|
18
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php
vendored
Normal file
18
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/OpenType/TableDirectoryEntry.php
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\OpenType;
|
||||
|
||||
/**
|
||||
* Open Type Table directory entry, the same as a TrueType one.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class TableDirectoryEntry extends \FontLib\TrueType\TableDirectoryEntry {
|
||||
|
||||
}
|
129
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php
vendored
Normal file
129
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/DirectoryEntry.php
vendored
Normal file
|
@ -0,0 +1,129 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
namespace FontLib\Table;
|
||||
|
||||
use FontLib\TrueType\File;
|
||||
use FontLib\Font;
|
||||
use FontLib\BinaryStream;
|
||||
|
||||
/**
|
||||
* Generic Font table directory entry.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class DirectoryEntry extends BinaryStream {
|
||||
/**
|
||||
* @var File
|
||||
*/
|
||||
protected $font;
|
||||
|
||||
/**
|
||||
* @var Table
|
||||
*/
|
||||
protected $font_table;
|
||||
|
||||
public $entryLength = 4;
|
||||
|
||||
public $tag;
|
||||
public $checksum;
|
||||
public $offset;
|
||||
public $length;
|
||||
|
||||
protected $origF;
|
||||
|
||||
static function computeChecksum($data) {
|
||||
$len = strlen($data);
|
||||
$mod = $len % 4;
|
||||
|
||||
if ($mod) {
|
||||
$data = str_pad($data, $len + (4 - $mod), "\0");
|
||||
}
|
||||
|
||||
$len = strlen($data);
|
||||
|
||||
$hi = 0x0000;
|
||||
$lo = 0x0000;
|
||||
|
||||
for ($i = 0; $i < $len; $i += 4) {
|
||||
$hi += (ord($data[$i]) << 8) + ord($data[$i + 1]);
|
||||
$lo += (ord($data[$i + 2]) << 8) + ord($data[$i + 3]);
|
||||
$hi += $lo >> 16;
|
||||
$lo = $lo & 0xFFFF;
|
||||
$hi = $hi & 0xFFFF;
|
||||
}
|
||||
|
||||
return ($hi << 8) + $lo;
|
||||
}
|
||||
|
||||
function __construct(File $font) {
|
||||
$this->font = $font;
|
||||
$this->f = $font->f;
|
||||
}
|
||||
|
||||
function parse() {
|
||||
$this->tag = $this->font->read(4);
|
||||
}
|
||||
|
||||
function open($filename, $mode = self::modeRead) {
|
||||
// void
|
||||
}
|
||||
|
||||
function setTable(Table $font_table) {
|
||||
$this->font_table = $font_table;
|
||||
}
|
||||
|
||||
function encode($entry_offset) {
|
||||
Font::d("\n==== $this->tag ====");
|
||||
//Font::d("Entry offset = $entry_offset");
|
||||
|
||||
$data = $this->font_table;
|
||||
$font = $this->font;
|
||||
|
||||
$table_offset = $font->pos();
|
||||
$this->offset = $table_offset;
|
||||
$table_length = $data->encode();
|
||||
|
||||
$font->seek($table_offset);
|
||||
$table_data = $font->read($table_length);
|
||||
|
||||
$font->seek($entry_offset);
|
||||
|
||||
$font->write($this->tag, 4);
|
||||
$font->writeUInt32(self::computeChecksum($table_data));
|
||||
$font->writeUInt32($table_offset);
|
||||
$font->writeUInt32($table_length);
|
||||
|
||||
Font::d("Bytes written = $table_length");
|
||||
|
||||
$font->seek($table_offset + $table_length);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return File
|
||||
*/
|
||||
function getFont() {
|
||||
return $this->font;
|
||||
}
|
||||
|
||||
function startRead() {
|
||||
$this->font->seek($this->offset);
|
||||
}
|
||||
|
||||
function endRead() {
|
||||
//
|
||||
}
|
||||
|
||||
function startWrite() {
|
||||
$this->font->seek($this->offset);
|
||||
}
|
||||
|
||||
function endWrite() {
|
||||
//
|
||||
}
|
||||
}
|
||||
|
93
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php
vendored
Normal file
93
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Table.php
vendored
Normal file
|
@ -0,0 +1,93 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
namespace FontLib\Table;
|
||||
|
||||
use FontLib\TrueType\File;
|
||||
use FontLib\Font;
|
||||
use FontLib\BinaryStream;
|
||||
|
||||
/**
|
||||
* Generic font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Table extends BinaryStream {
|
||||
/**
|
||||
* @var DirectoryEntry
|
||||
*/
|
||||
protected $entry;
|
||||
protected $def = array();
|
||||
|
||||
public $data;
|
||||
|
||||
final public function __construct(DirectoryEntry $entry) {
|
||||
$this->entry = $entry;
|
||||
$entry->setTable($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return File
|
||||
*/
|
||||
public function getFont() {
|
||||
return $this->entry->getFont();
|
||||
}
|
||||
|
||||
protected function _encode() {
|
||||
if (empty($this->data)) {
|
||||
Font::d(" >> Table is empty");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $this->getFont()->pack($this->def, $this->data);
|
||||
}
|
||||
|
||||
protected function _parse() {
|
||||
$this->data = $this->getFont()->unpack($this->def);
|
||||
}
|
||||
|
||||
protected function _parseRaw() {
|
||||
$this->data = $this->getFont()->read($this->entry->length);
|
||||
}
|
||||
|
||||
protected function _encodeRaw() {
|
||||
return $this->getFont()->write($this->data, $this->entry->length);
|
||||
}
|
||||
|
||||
public function toHTML() {
|
||||
return "<pre>" . var_export($this->data, true) . "</pre>";
|
||||
}
|
||||
|
||||
final public function encode() {
|
||||
$this->entry->startWrite();
|
||||
|
||||
if (false && empty($this->def)) {
|
||||
$length = $this->_encodeRaw();
|
||||
}
|
||||
else {
|
||||
$length = $this->_encode();
|
||||
}
|
||||
|
||||
$this->entry->endWrite();
|
||||
|
||||
return $length;
|
||||
}
|
||||
|
||||
final public function parse() {
|
||||
$this->entry->startRead();
|
||||
|
||||
if (false && empty($this->def)) {
|
||||
$this->_parseRaw();
|
||||
}
|
||||
else {
|
||||
$this->_parse();
|
||||
}
|
||||
|
||||
$this->entry->endRead();
|
||||
}
|
||||
}
|
258
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php
vendored
Normal file
258
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/cmap.php
vendored
Normal file
|
@ -0,0 +1,258 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `cmap` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class cmap extends Table {
|
||||
private static $header_format = array(
|
||||
"version" => self::uint16,
|
||||
"numberSubtables" => self::uint16,
|
||||
);
|
||||
|
||||
private static $subtable_header_format = array(
|
||||
"platformID" => self::uint16,
|
||||
"platformSpecificID" => self::uint16,
|
||||
"offset" => self::uint32,
|
||||
);
|
||||
|
||||
private static $subtable_v4_format = array(
|
||||
"length" => self::uint16,
|
||||
"language" => self::uint16,
|
||||
"segCountX2" => self::uint16,
|
||||
"searchRange" => self::uint16,
|
||||
"entrySelector" => self::uint16,
|
||||
"rangeShift" => self::uint16,
|
||||
);
|
||||
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
|
||||
$cmap_offset = $font->pos();
|
||||
|
||||
$data = $font->unpack(self::$header_format);
|
||||
|
||||
$subtables = array();
|
||||
for ($i = 0; $i < $data["numberSubtables"]; $i++) {
|
||||
$subtables[] = $font->unpack(self::$subtable_header_format);
|
||||
}
|
||||
$data["subtables"] = $subtables;
|
||||
|
||||
foreach ($data["subtables"] as $i => &$subtable) {
|
||||
$font->seek($cmap_offset + $subtable["offset"]);
|
||||
|
||||
$subtable["format"] = $font->readUInt16();
|
||||
|
||||
// @todo Only CMAP version 4
|
||||
if ($subtable["format"] != 4) {
|
||||
unset($data["subtables"][$i]);
|
||||
$data["numberSubtables"]--;
|
||||
continue;
|
||||
}
|
||||
|
||||
$subtable += $font->unpack(self::$subtable_v4_format);
|
||||
$segCount = $subtable["segCountX2"] / 2;
|
||||
$subtable["segCount"] = $segCount;
|
||||
|
||||
$endCode = $font->readUInt16Many($segCount);
|
||||
|
||||
$font->readUInt16(); // reservedPad
|
||||
|
||||
$startCode = $font->readUInt16Many($segCount);
|
||||
$idDelta = $font->readInt16Many($segCount);
|
||||
|
||||
$ro_start = $font->pos();
|
||||
$idRangeOffset = $font->readUInt16Many($segCount);
|
||||
|
||||
$glyphIndexArray = array();
|
||||
for ($i = 0; $i < $segCount; $i++) {
|
||||
$c1 = $startCode[$i];
|
||||
$c2 = $endCode[$i];
|
||||
$d = $idDelta[$i];
|
||||
$ro = $idRangeOffset[$i];
|
||||
|
||||
if ($ro > 0) {
|
||||
$font->seek($subtable["offset"] + 2 * $i + $ro);
|
||||
}
|
||||
|
||||
for ($c = $c1; $c <= $c2; $c++) {
|
||||
if ($ro == 0) {
|
||||
$gid = ($c + $d) & 0xFFFF;
|
||||
}
|
||||
else {
|
||||
$offset = ($c - $c1) * 2 + $ro;
|
||||
$offset = $ro_start + 2 * $i + $offset;
|
||||
|
||||
$font->seek($offset);
|
||||
$gid = $font->readUInt16();
|
||||
|
||||
if ($gid != 0) {
|
||||
$gid = ($gid + $d) & 0xFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
if ($gid > 0) {
|
||||
$glyphIndexArray[$c] = $gid;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$subtable += array(
|
||||
"endCode" => $endCode,
|
||||
"startCode" => $startCode,
|
||||
"idDelta" => $idDelta,
|
||||
"idRangeOffset" => $idRangeOffset,
|
||||
"glyphIndexArray" => $glyphIndexArray,
|
||||
);
|
||||
}
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
function _encode() {
|
||||
$font = $this->getFont();
|
||||
|
||||
$subset = $font->getSubset();
|
||||
$glyphIndexArray = $font->getUnicodeCharMap();
|
||||
|
||||
$newGlyphIndexArray = array();
|
||||
foreach ($glyphIndexArray as $code => $gid) {
|
||||
$new_gid = array_search($gid, $subset);
|
||||
if ($new_gid !== false) {
|
||||
$newGlyphIndexArray[$code] = $new_gid;
|
||||
}
|
||||
}
|
||||
|
||||
ksort($newGlyphIndexArray); // Sort by char code
|
||||
|
||||
$segments = array();
|
||||
|
||||
$i = -1;
|
||||
$prevCode = 0xFFFF;
|
||||
$prevGid = 0xFFFF;
|
||||
|
||||
foreach ($newGlyphIndexArray as $code => $gid) {
|
||||
if (
|
||||
$prevCode + 1 != $code ||
|
||||
$prevGid + 1 != $gid
|
||||
) {
|
||||
$i++;
|
||||
$segments[$i] = array();
|
||||
}
|
||||
|
||||
$segments[$i][] = array($code, $gid);
|
||||
|
||||
$prevCode = $code;
|
||||
$prevGid = $gid;
|
||||
}
|
||||
|
||||
$segments[][] = array(0xFFFF, 0xFFFF);
|
||||
|
||||
$startCode = array();
|
||||
$endCode = array();
|
||||
$idDelta = array();
|
||||
|
||||
foreach ($segments as $codes) {
|
||||
$start = reset($codes);
|
||||
$end = end($codes);
|
||||
|
||||
$startCode[] = $start[0];
|
||||
$endCode[] = $end[0];
|
||||
$idDelta[] = $start[1] - $start[0];
|
||||
}
|
||||
|
||||
$segCount = count($startCode);
|
||||
$idRangeOffset = array_fill(0, $segCount, 0);
|
||||
|
||||
$searchRange = 1;
|
||||
$entrySelector = 0;
|
||||
while ($searchRange * 2 <= $segCount) {
|
||||
$searchRange *= 2;
|
||||
$entrySelector++;
|
||||
}
|
||||
$searchRange *= 2;
|
||||
$rangeShift = $segCount * 2 - $searchRange;
|
||||
|
||||
$subtables = array(
|
||||
array(
|
||||
// header
|
||||
"platformID" => 3, // Unicode
|
||||
"platformSpecificID" => 1,
|
||||
"offset" => null,
|
||||
|
||||
// subtable
|
||||
"format" => 4,
|
||||
"length" => null,
|
||||
"language" => 0,
|
||||
"segCount" => $segCount,
|
||||
"segCountX2" => $segCount * 2,
|
||||
"searchRange" => $searchRange,
|
||||
"entrySelector" => $entrySelector,
|
||||
"rangeShift" => $rangeShift,
|
||||
"startCode" => $startCode,
|
||||
"endCode" => $endCode,
|
||||
"idDelta" => $idDelta,
|
||||
"idRangeOffset" => $idRangeOffset,
|
||||
"glyphIndexArray" => $newGlyphIndexArray,
|
||||
)
|
||||
);
|
||||
|
||||
$data = array(
|
||||
"version" => 0,
|
||||
"numberSubtables" => count($subtables),
|
||||
"subtables" => $subtables,
|
||||
);
|
||||
|
||||
$length = $font->pack(self::$header_format, $data);
|
||||
|
||||
$subtable_headers_size = $data["numberSubtables"] * 8; // size of self::$subtable_header_format
|
||||
$subtable_headers_offset = $font->pos();
|
||||
|
||||
$length += $font->write(str_repeat("\0", $subtable_headers_size), $subtable_headers_size);
|
||||
|
||||
// write subtables data
|
||||
foreach ($data["subtables"] as $i => $subtable) {
|
||||
$length_before = $length;
|
||||
$data["subtables"][$i]["offset"] = $length;
|
||||
|
||||
$length += $font->writeUInt16($subtable["format"]);
|
||||
|
||||
$before_subheader = $font->pos();
|
||||
$length += $font->pack(self::$subtable_v4_format, $subtable);
|
||||
|
||||
$segCount = $subtable["segCount"];
|
||||
$length += $font->w(array(self::uint16, $segCount), $subtable["endCode"]);
|
||||
$length += $font->writeUInt16(0); // reservedPad
|
||||
$length += $font->w(array(self::uint16, $segCount), $subtable["startCode"]);
|
||||
$length += $font->w(array(self::int16, $segCount), $subtable["idDelta"]);
|
||||
$length += $font->w(array(self::uint16, $segCount), $subtable["idRangeOffset"]);
|
||||
$length += $font->w(array(self::uint16, $segCount), array_values($subtable["glyphIndexArray"]));
|
||||
|
||||
$after_subtable = $font->pos();
|
||||
|
||||
$subtable["length"] = $length - $length_before;
|
||||
$font->seek($before_subheader);
|
||||
$length += $font->pack(self::$subtable_v4_format, $subtable);
|
||||
|
||||
$font->seek($after_subtable);
|
||||
}
|
||||
|
||||
// write subtables headers
|
||||
$font->seek($subtable_headers_offset);
|
||||
foreach ($data["subtables"] as $subtable) {
|
||||
$font->pack(self::$subtable_header_format, $subtable);
|
||||
}
|
||||
|
||||
return $length;
|
||||
}
|
||||
}
|
154
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php
vendored
Normal file
154
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/glyf.php
vendored
Normal file
|
@ -0,0 +1,154 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
|
||||
use FontLib\Table\Table;
|
||||
use FontLib\Glyph\Outline;
|
||||
use FontLib\Glyph\OutlineSimple;
|
||||
|
||||
/**
|
||||
* `glyf` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
* @property Outline[] $data
|
||||
*/
|
||||
class glyf extends Table {
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
$offset = $font->pos();
|
||||
|
||||
$loca = $font->getData("loca");
|
||||
$real_loca = array_slice($loca, 0, -1); // Not the last dummy loca entry
|
||||
|
||||
$data = array();
|
||||
|
||||
foreach ($real_loca as $gid => $location) {
|
||||
$_offset = $offset + $loca[$gid];
|
||||
$_size = $loca[$gid + 1] - $loca[$gid];
|
||||
$data[$gid] = Outline::init($this, $_offset, $_size, $font);
|
||||
}
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
public function getGlyphIDs($gids = array()) {
|
||||
$glyphIDs = array();
|
||||
|
||||
foreach ($gids as $_gid) {
|
||||
$_glyph = $this->data[$_gid];
|
||||
$glyphIDs = array_merge($glyphIDs, $_glyph->getGlyphIDs());
|
||||
}
|
||||
|
||||
return array_unique(array_merge($gids, $glyphIDs));
|
||||
}
|
||||
|
||||
public function toHTML() {
|
||||
$max = 160;
|
||||
$font = $this->getFont();
|
||||
|
||||
$head = $font->getData("head");
|
||||
$head_json = json_encode($head);
|
||||
|
||||
$os2 = $font->getData("OS/2");
|
||||
$os2_json = json_encode($os2);
|
||||
|
||||
$hmtx = $font->getData("hmtx");
|
||||
$hmtx_json = json_encode($hmtx);
|
||||
|
||||
$names = $font->getData("post", "names");
|
||||
$glyphIndexArray = array_flip($font->getUnicodeCharMap());
|
||||
|
||||
$width = (abs($head["xMin"]) + $head["xMax"]);
|
||||
$height = (abs($head["yMin"]) + $head["yMax"]);
|
||||
|
||||
$ratio = 1;
|
||||
if ($width > $max || $height > $max) {
|
||||
$ratio = max($width, $height) / $max;
|
||||
$width = round($width / $ratio);
|
||||
$height = round($height / $ratio);
|
||||
}
|
||||
|
||||
$n = 500;
|
||||
|
||||
$s = "<h3>" . "Only the first $n simple glyphs are shown (" . count($this->data) . " total)
|
||||
<div class='glyph-view simple'>Simple glyph</div>
|
||||
<div class='glyph-view composite'>Composite glyph</div>
|
||||
Zoom: <input type='range' value='100' max='400' onchange='Glyph.resize(this.value)' />
|
||||
</h3>
|
||||
<script>
|
||||
Glyph.ratio = $ratio;
|
||||
Glyph.head = $head_json;
|
||||
Glyph.os2 = $os2_json;
|
||||
Glyph.hmtx = $hmtx_json;
|
||||
Glyph.width = $width;
|
||||
Glyph.height = $height;
|
||||
</script>";
|
||||
|
||||
foreach ($this->data as $g => $glyph) {
|
||||
if ($n-- <= 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
$glyph->parseData();
|
||||
|
||||
$shape = array(
|
||||
"SVGContours" => $glyph->getSVGContours(),
|
||||
"xMin" => $glyph->xMin,
|
||||
"yMin" => $glyph->yMin,
|
||||
"xMax" => $glyph->xMax,
|
||||
"yMax" => $glyph->yMax,
|
||||
);
|
||||
$shape_json = json_encode($shape);
|
||||
|
||||
$type = ($glyph instanceof OutlineSimple ? "simple" : "composite");
|
||||
$char = isset($glyphIndexArray[$g]) ? $glyphIndexArray[$g] : 0;
|
||||
$name = isset($names[$g]) ? $names[$g] : sprintf("uni%04x", $char);
|
||||
$char = $char ? "&#{$glyphIndexArray[$g]};" : "";
|
||||
|
||||
$s .= "<div class='glyph-view $type' id='glyph-$g'>
|
||||
<span class='glyph-id'>$g</span>
|
||||
<span class='char'>$char</span>
|
||||
<span class='char-name'>$name</span>
|
||||
";
|
||||
|
||||
if ($type == "composite") {
|
||||
foreach ($glyph->getGlyphIDs() as $_id) {
|
||||
$s .= "<a href='#glyph-$_id' class='glyph-component-id'>$_id</a> ";
|
||||
}
|
||||
}
|
||||
|
||||
$s .= "<br />
|
||||
<canvas width='$width' height='$height' id='glyph-canvas-$g'></canvas>
|
||||
</div>
|
||||
<script>Glyph.glyphs.push([$g,$shape_json]);</script>";
|
||||
}
|
||||
|
||||
return $s;
|
||||
}
|
||||
|
||||
|
||||
protected function _encode() {
|
||||
$font = $this->getFont();
|
||||
$subset = $font->getSubset();
|
||||
$data = $this->data;
|
||||
|
||||
$loca = array();
|
||||
|
||||
$length = 0;
|
||||
foreach ($subset as $gid) {
|
||||
$loca[] = $length;
|
||||
$length += $data[$gid]->encode();
|
||||
}
|
||||
|
||||
$loca[] = $length; // dummy loca
|
||||
$font->getTableObject("loca")->data = $loca;
|
||||
|
||||
return $length;
|
||||
}
|
||||
}
|
46
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php
vendored
Normal file
46
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/head.php
vendored
Normal file
|
@ -0,0 +1,46 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* `head` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class head extends Table {
|
||||
protected $def = array(
|
||||
"tableVersion" => self::Fixed,
|
||||
"fontRevision" => self::Fixed,
|
||||
"checkSumAdjustment" => self::uint32,
|
||||
"magicNumber" => self::uint32,
|
||||
"flags" => self::uint16,
|
||||
"unitsPerEm" => self::uint16,
|
||||
"created" => self::longDateTime,
|
||||
"modified" => self::longDateTime,
|
||||
"xMin" => self::FWord,
|
||||
"yMin" => self::FWord,
|
||||
"xMax" => self::FWord,
|
||||
"yMax" => self::FWord,
|
||||
"macStyle" => self::uint16,
|
||||
"lowestRecPPEM" => self::uint16,
|
||||
"fontDirectionHint" => self::int16,
|
||||
"indexToLocFormat" => self::int16,
|
||||
"glyphDataFormat" => self::int16,
|
||||
);
|
||||
|
||||
protected function _parse() {
|
||||
parent::_parse();
|
||||
|
||||
if ($this->data["magicNumber"] != 0x5F0F3CF5) {
|
||||
throw new Exception("Incorrect magic number (" . dechex($this->data["magicNumber"]) . ")");
|
||||
}
|
||||
}
|
||||
}
|
44
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php
vendored
Normal file
44
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hhea.php
vendored
Normal file
|
@ -0,0 +1,44 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `hhea` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class hhea extends Table {
|
||||
protected $def = array(
|
||||
"version" => self::Fixed,
|
||||
"ascent" => self::FWord,
|
||||
"descent" => self::FWord,
|
||||
"lineGap" => self::FWord,
|
||||
"advanceWidthMax" => self::uFWord,
|
||||
"minLeftSideBearing" => self::FWord,
|
||||
"minRightSideBearing" => self::FWord,
|
||||
"xMaxExtent" => self::FWord,
|
||||
"caretSlopeRise" => self::int16,
|
||||
"caretSlopeRun" => self::int16,
|
||||
"caretOffset" => self::FWord,
|
||||
self::int16,
|
||||
self::int16,
|
||||
self::int16,
|
||||
self::int16,
|
||||
"metricDataFormat" => self::int16,
|
||||
"numOfLongHorMetrics" => self::uint16,
|
||||
);
|
||||
|
||||
function _encode() {
|
||||
$font = $this->getFont();
|
||||
$this->data["numOfLongHorMetrics"] = count($font->getSubset());
|
||||
|
||||
return parent::_encode();
|
||||
}
|
||||
}
|
57
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php
vendored
Normal file
57
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/hmtx.php
vendored
Normal file
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `hmtx` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class hmtx extends Table {
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
$offset = $font->pos();
|
||||
|
||||
$numOfLongHorMetrics = $font->getData("hhea", "numOfLongHorMetrics");
|
||||
$numGlyphs = $font->getData("maxp", "numGlyphs");
|
||||
|
||||
$font->seek($offset);
|
||||
|
||||
$data = array();
|
||||
$metrics = $font->readUInt16Many($numOfLongHorMetrics * 2);
|
||||
for ($gid = 0, $mid = 0; $gid < $numOfLongHorMetrics; $gid++) {
|
||||
$advanceWidth = $metrics[$mid++];
|
||||
$leftSideBearing = $metrics[$mid++];
|
||||
$data[$gid] = array($advanceWidth, $leftSideBearing);
|
||||
}
|
||||
|
||||
if ($numOfLongHorMetrics < $numGlyphs) {
|
||||
$lastWidth = end($data);
|
||||
$data = array_pad($data, $numGlyphs, $lastWidth);
|
||||
}
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
protected function _encode() {
|
||||
$font = $this->getFont();
|
||||
$subset = $font->getSubset();
|
||||
$data = $this->data;
|
||||
|
||||
$length = 0;
|
||||
|
||||
foreach ($subset as $gid) {
|
||||
$length += $font->writeUInt16($data[$gid][0]);
|
||||
$length += $font->writeUInt16($data[$gid][1]);
|
||||
}
|
||||
|
||||
return $length;
|
||||
}
|
||||
}
|
80
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php
vendored
Normal file
80
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/kern.php
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `kern` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class kern extends Table {
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
|
||||
$data = $font->unpack(array(
|
||||
"version" => self::uint16,
|
||||
"nTables" => self::uint16,
|
||||
|
||||
// only the first subtable will be parsed
|
||||
"subtableVersion" => self::uint16,
|
||||
"length" => self::uint16,
|
||||
"coverage" => self::uint16,
|
||||
));
|
||||
|
||||
$data["format"] = ($data["coverage"] >> 8);
|
||||
|
||||
$subtable = array();
|
||||
|
||||
switch ($data["format"]) {
|
||||
case 0:
|
||||
$subtable = $font->unpack(array(
|
||||
"nPairs" => self::uint16,
|
||||
"searchRange" => self::uint16,
|
||||
"entrySelector" => self::uint16,
|
||||
"rangeShift" => self::uint16,
|
||||
));
|
||||
|
||||
$pairs = array();
|
||||
$tree = array();
|
||||
|
||||
$values = $font->readUInt16Many($subtable["nPairs"] * 3);
|
||||
for ($i = 0, $idx = 0; $i < $subtable["nPairs"]; $i++) {
|
||||
$left = $values[$idx++];
|
||||
$right = $values[$idx++];
|
||||
$value = $values[$idx++];
|
||||
|
||||
if ($value >= 0x8000) {
|
||||
$value -= 0x10000;
|
||||
}
|
||||
|
||||
$pairs[] = array(
|
||||
"left" => $left,
|
||||
"right" => $right,
|
||||
"value" => $value,
|
||||
);
|
||||
|
||||
$tree[$left][$right] = $value;
|
||||
}
|
||||
|
||||
//$subtable["pairs"] = $pairs;
|
||||
$subtable["tree"] = $tree;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
break;
|
||||
}
|
||||
|
||||
$data["subtable"] = $subtable;
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
}
|
80
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php
vendored
Normal file
80
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/loca.php
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `loca` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class loca extends Table {
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
$offset = $font->pos();
|
||||
|
||||
$indexToLocFormat = $font->getData("head", "indexToLocFormat");
|
||||
$numGlyphs = $font->getData("maxp", "numGlyphs");
|
||||
|
||||
$font->seek($offset);
|
||||
|
||||
$data = array();
|
||||
|
||||
// 2 bytes
|
||||
if ($indexToLocFormat == 0) {
|
||||
$d = $font->read(($numGlyphs + 1) * 2);
|
||||
$loc = unpack("n*", $d);
|
||||
|
||||
for ($i = 0; $i <= $numGlyphs; $i++) {
|
||||
$data[] = $loc[$i + 1] * 2;
|
||||
}
|
||||
}
|
||||
|
||||
// 4 bytes
|
||||
else {
|
||||
if ($indexToLocFormat == 1) {
|
||||
$d = $font->read(($numGlyphs + 1) * 4);
|
||||
$loc = unpack("N*", $d);
|
||||
|
||||
for ($i = 0; $i <= $numGlyphs; $i++) {
|
||||
$data[] = $loc[$i + 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
function _encode() {
|
||||
$font = $this->getFont();
|
||||
$data = $this->data;
|
||||
|
||||
$indexToLocFormat = $font->getData("head", "indexToLocFormat");
|
||||
$numGlyphs = $font->getData("maxp", "numGlyphs");
|
||||
$length = 0;
|
||||
|
||||
// 2 bytes
|
||||
if ($indexToLocFormat == 0) {
|
||||
for ($i = 0; $i <= $numGlyphs; $i++) {
|
||||
$length += $font->writeUInt16($data[$i] / 2);
|
||||
}
|
||||
}
|
||||
|
||||
// 4 bytes
|
||||
else {
|
||||
if ($indexToLocFormat == 1) {
|
||||
for ($i = 0; $i <= $numGlyphs; $i++) {
|
||||
$length += $font->writeUInt32($data[$i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $length;
|
||||
}
|
||||
}
|
42
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php
vendored
Normal file
42
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/maxp.php
vendored
Normal file
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `maxp` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class maxp extends Table {
|
||||
protected $def = array(
|
||||
"version" => self::Fixed,
|
||||
"numGlyphs" => self::uint16,
|
||||
"maxPoints" => self::uint16,
|
||||
"maxContours" => self::uint16,
|
||||
"maxComponentPoints" => self::uint16,
|
||||
"maxComponentContours" => self::uint16,
|
||||
"maxZones" => self::uint16,
|
||||
"maxTwilightPoints" => self::uint16,
|
||||
"maxStorage" => self::uint16,
|
||||
"maxFunctionDefs" => self::uint16,
|
||||
"maxInstructionDefs" => self::uint16,
|
||||
"maxStackElements" => self::uint16,
|
||||
"maxSizeOfInstructions" => self::uint16,
|
||||
"maxComponentElements" => self::uint16,
|
||||
"maxComponentDepth" => self::uint16,
|
||||
);
|
||||
|
||||
function _encode() {
|
||||
$font = $this->getFont();
|
||||
$this->data["numGlyphs"] = count($font->getSubset());
|
||||
|
||||
return parent::_encode();
|
||||
}
|
||||
}
|
193
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php
vendored
Normal file
193
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/name.php
vendored
Normal file
|
@ -0,0 +1,193 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
|
||||
use FontLib\Table\Table;
|
||||
use FontLib\Font;
|
||||
|
||||
/**
|
||||
* `name` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class name extends Table {
|
||||
private static $header_format = array(
|
||||
"format" => self::uint16,
|
||||
"count" => self::uint16,
|
||||
"stringOffset" => self::uint16,
|
||||
);
|
||||
|
||||
const NAME_COPYRIGHT = 0;
|
||||
const NAME_NAME = 1;
|
||||
const NAME_SUBFAMILY = 2;
|
||||
const NAME_SUBFAMILY_ID = 3;
|
||||
const NAME_FULL_NAME = 4;
|
||||
const NAME_VERSION = 5;
|
||||
const NAME_POSTSCRIPT_NAME = 6;
|
||||
const NAME_TRADEMARK = 7;
|
||||
const NAME_MANUFACTURER = 8;
|
||||
const NAME_DESIGNER = 9;
|
||||
const NAME_DESCRIPTION = 10;
|
||||
const NAME_VENDOR_URL = 11;
|
||||
const NAME_DESIGNER_URL = 12;
|
||||
const NAME_LICENSE = 13;
|
||||
const NAME_LICENSE_URL = 14;
|
||||
const NAME_PREFERRE_FAMILY = 16;
|
||||
const NAME_PREFERRE_SUBFAMILY = 17;
|
||||
const NAME_COMPAT_FULL_NAME = 18;
|
||||
const NAME_SAMPLE_TEXT = 19;
|
||||
|
||||
static $nameIdCodes = array(
|
||||
0 => "Copyright",
|
||||
1 => "FontName",
|
||||
2 => "FontSubfamily",
|
||||
3 => "UniqueID",
|
||||
4 => "FullName",
|
||||
5 => "Version",
|
||||
6 => "PostScriptName",
|
||||
7 => "Trademark",
|
||||
8 => "Manufacturer",
|
||||
9 => "Designer",
|
||||
10 => "Description",
|
||||
11 => "FontVendorURL",
|
||||
12 => "FontDesignerURL",
|
||||
13 => "LicenseDescription",
|
||||
14 => "LicenseURL",
|
||||
// 15
|
||||
16 => "PreferredFamily",
|
||||
17 => "PreferredSubfamily",
|
||||
18 => "CompatibleFullName",
|
||||
19 => "SampleText",
|
||||
);
|
||||
|
||||
static $platforms = array(
|
||||
0 => "Unicode",
|
||||
1 => "Macintosh",
|
||||
// 2 => Reserved
|
||||
3 => "Microsoft",
|
||||
);
|
||||
|
||||
static $platformSpecific = array(
|
||||
// Unicode
|
||||
0 => array(
|
||||
0 => "Default semantics",
|
||||
1 => "Version 1.1 semantics",
|
||||
2 => "ISO 10646 1993 semantics (deprecated)",
|
||||
3 => "Unicode 2.0 or later semantics",
|
||||
),
|
||||
|
||||
// Macintosh
|
||||
1 => array(
|
||||
0 => "Roman",
|
||||
1 => "Japanese",
|
||||
2 => "Traditional Chinese",
|
||||
3 => "Korean",
|
||||
4 => "Arabic",
|
||||
5 => "Hebrew",
|
||||
6 => "Greek",
|
||||
7 => "Russian",
|
||||
8 => "RSymbol",
|
||||
9 => "Devanagari",
|
||||
10 => "Gurmukhi",
|
||||
11 => "Gujarati",
|
||||
12 => "Oriya",
|
||||
13 => "Bengali",
|
||||
14 => "Tamil",
|
||||
15 => "Telugu",
|
||||
16 => "Kannada",
|
||||
17 => "Malayalam",
|
||||
18 => "Sinhalese",
|
||||
19 => "Burmese",
|
||||
20 => "Khmer",
|
||||
21 => "Thai",
|
||||
22 => "Laotian",
|
||||
23 => "Georgian",
|
||||
24 => "Armenian",
|
||||
25 => "Simplified Chinese",
|
||||
26 => "Tibetan",
|
||||
27 => "Mongolian",
|
||||
28 => "Geez",
|
||||
29 => "Slavic",
|
||||
30 => "Vietnamese",
|
||||
31 => "Sindhi",
|
||||
),
|
||||
|
||||
// Microsoft
|
||||
3 => array(
|
||||
0 => "Symbol",
|
||||
1 => "Unicode BMP (UCS-2)",
|
||||
2 => "ShiftJIS",
|
||||
3 => "PRC",
|
||||
4 => "Big5",
|
||||
5 => "Wansung",
|
||||
6 => "Johab",
|
||||
// 7 => Reserved
|
||||
// 8 => Reserved
|
||||
// 9 => Reserved
|
||||
10 => "Unicode UCS-4",
|
||||
),
|
||||
);
|
||||
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
|
||||
$tableOffset = $font->pos();
|
||||
|
||||
$data = $font->unpack(self::$header_format);
|
||||
|
||||
$records = array();
|
||||
for ($i = 0; $i < $data["count"]; $i++) {
|
||||
$record = new nameRecord();
|
||||
$record_data = $font->unpack(nameRecord::$format);
|
||||
$record->map($record_data);
|
||||
|
||||
$records[] = $record;
|
||||
}
|
||||
|
||||
$names = array();
|
||||
foreach ($records as $record) {
|
||||
$font->seek($tableOffset + $data["stringOffset"] + $record->offset);
|
||||
$s = $font->read($record->length);
|
||||
$record->string = Font::UTF16ToUTF8($s);
|
||||
$names[$record->nameID] = $record;
|
||||
}
|
||||
|
||||
$data["records"] = $names;
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
protected function _encode() {
|
||||
$font = $this->getFont();
|
||||
|
||||
/** @var nameRecord[] $records */
|
||||
$records = $this->data["records"];
|
||||
$count_records = count($records);
|
||||
|
||||
$this->data["count"] = $count_records;
|
||||
$this->data["stringOffset"] = 6 + $count_records * 12; // 6 => uint16 * 3, 12 => sizeof self::$record_format
|
||||
|
||||
$length = $font->pack(self::$header_format, $this->data);
|
||||
|
||||
$offset = 0;
|
||||
foreach ($records as $record) {
|
||||
$record->length = mb_strlen($record->getUTF16(), "8bit");
|
||||
$record->offset = $offset;
|
||||
$offset += $record->length;
|
||||
$length += $font->pack(nameRecord::$format, (array)$record);
|
||||
}
|
||||
|
||||
foreach ($records as $record) {
|
||||
$str = $record->getUTF16();
|
||||
$length += $font->write($str, mb_strlen($str, "8bit"));
|
||||
}
|
||||
|
||||
return $length;
|
||||
}
|
||||
}
|
53
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php
vendored
Normal file
53
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/nameRecord.php
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
namespace FontLib\Table\Type;
|
||||
|
||||
use FontLib\Font;
|
||||
use FontLib\BinaryStream;
|
||||
|
||||
/**
|
||||
* Font table name record.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class nameRecord extends BinaryStream {
|
||||
public $platformID;
|
||||
public $platformSpecificID;
|
||||
public $languageID;
|
||||
public $nameID;
|
||||
public $length;
|
||||
public $offset;
|
||||
public $string;
|
||||
|
||||
public static $format = array(
|
||||
"platformID" => self::uint16,
|
||||
"platformSpecificID" => self::uint16,
|
||||
"languageID" => self::uint16,
|
||||
"nameID" => self::uint16,
|
||||
"length" => self::uint16,
|
||||
"offset" => self::uint16,
|
||||
);
|
||||
|
||||
public function map($data) {
|
||||
foreach ($data as $key => $value) {
|
||||
$this->$key = $value;
|
||||
}
|
||||
}
|
||||
|
||||
public function getUTF8() {
|
||||
return $this->string;
|
||||
}
|
||||
|
||||
public function getUTF16() {
|
||||
return Font::UTF8ToUTF16($this->string);
|
||||
}
|
||||
|
||||
function __toString() {
|
||||
return $this->string;
|
||||
}
|
||||
}
|
47
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php
vendored
Normal file
47
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/os2.php
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
|
||||
/**
|
||||
* `OS/2` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class os2 extends Table {
|
||||
protected $def = array(
|
||||
"version" => self::uint16,
|
||||
"xAvgCharWidth" => self::int16,
|
||||
"usWeightClass" => self::uint16,
|
||||
"usWidthClass" => self::uint16,
|
||||
"fsType" => self::int16,
|
||||
"ySubscriptXSize" => self::int16,
|
||||
"ySubscriptYSize" => self::int16,
|
||||
"ySubscriptXOffset" => self::int16,
|
||||
"ySubscriptYOffset" => self::int16,
|
||||
"ySuperscriptXSize" => self::int16,
|
||||
"ySuperscriptYSize" => self::int16,
|
||||
"ySuperscriptXOffset" => self::int16,
|
||||
"ySuperscriptYOffset" => self::int16,
|
||||
"yStrikeoutSize" => self::int16,
|
||||
"yStrikeoutPosition" => self::int16,
|
||||
"sFamilyClass" => self::int16,
|
||||
"panose" => array(self::uint8, 10),
|
||||
"ulCharRange" => array(self::uint32, 4),
|
||||
"achVendID" => array(self::char, 4),
|
||||
"fsSelection" => self::uint16,
|
||||
"fsFirstCharIndex" => self::uint16,
|
||||
"fsLastCharIndex" => self::uint16,
|
||||
"typoAscender" => self::int16,
|
||||
"typoDescender" => self::int16,
|
||||
"typoLineGap" => self::int16,
|
||||
"winAscent" => self::int16,
|
||||
"winDescent" => self::int16,
|
||||
);
|
||||
}
|
141
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php
vendored
Normal file
141
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/Table/Type/post.php
vendored
Normal file
|
@ -0,0 +1,141 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\Table\Type;
|
||||
use FontLib\Table\Table;
|
||||
use FontLib\TrueType\File;
|
||||
|
||||
/**
|
||||
* `post` font table.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class post extends Table {
|
||||
protected $def = array(
|
||||
"format" => self::Fixed,
|
||||
"italicAngle" => self::Fixed,
|
||||
"underlinePosition" => self::FWord,
|
||||
"underlineThickness" => self::FWord,
|
||||
"isFixedPitch" => self::uint32,
|
||||
"minMemType42" => self::uint32,
|
||||
"maxMemType42" => self::uint32,
|
||||
"minMemType1" => self::uint32,
|
||||
"maxMemType1" => self::uint32,
|
||||
);
|
||||
|
||||
protected function _parse() {
|
||||
$font = $this->getFont();
|
||||
$data = $font->unpack($this->def);
|
||||
|
||||
$names = array();
|
||||
|
||||
switch ($data["format"]) {
|
||||
case 1:
|
||||
$names = File::$macCharNames;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$data["numberOfGlyphs"] = $font->readUInt16();
|
||||
|
||||
$glyphNameIndex = $font->readUInt16Many($data["numberOfGlyphs"]);
|
||||
|
||||
$data["glyphNameIndex"] = $glyphNameIndex;
|
||||
|
||||
$namesPascal = array();
|
||||
for ($i = 0; $i < $data["numberOfGlyphs"]; $i++) {
|
||||
$len = $font->readUInt8();
|
||||
$namesPascal[] = $font->read($len);
|
||||
}
|
||||
|
||||
foreach ($glyphNameIndex as $g => $index) {
|
||||
if ($index < 258) {
|
||||
$names[$g] = File::$macCharNames[$index];
|
||||
}
|
||||
else {
|
||||
$names[$g] = $namesPascal[$index - 258];
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2.5:
|
||||
// TODO
|
||||
break;
|
||||
|
||||
case 3:
|
||||
// nothing
|
||||
break;
|
||||
|
||||
case 4:
|
||||
// TODO
|
||||
break;
|
||||
}
|
||||
|
||||
$data["names"] = $names;
|
||||
|
||||
$this->data = $data;
|
||||
}
|
||||
|
||||
function _encode() {
|
||||
$font = $this->getFont();
|
||||
$data = $this->data;
|
||||
$data["format"] = 3;
|
||||
|
||||
$length = $font->pack($this->def, $data);
|
||||
|
||||
return $length;
|
||||
/*
|
||||
$subset = $font->getSubset();
|
||||
|
||||
switch($data["format"]) {
|
||||
case 1:
|
||||
// nothing to do
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$old_names = $data["names"];
|
||||
|
||||
$glyphNameIndex = range(0, count($subset));
|
||||
|
||||
$names = array();
|
||||
foreach($subset as $gid) {
|
||||
$names[] = $data["names"][$data["glyphNameIndex"][$gid]];
|
||||
}
|
||||
|
||||
$numberOfGlyphs = count($names);
|
||||
$length += $font->writeUInt16($numberOfGlyphs);
|
||||
|
||||
foreach($glyphNameIndex as $gni) {
|
||||
$length += $font->writeUInt16($gni);
|
||||
}
|
||||
|
||||
//$names = array_slice($names, 257);
|
||||
foreach($names as $name) {
|
||||
$len = strlen($name);
|
||||
$length += $font->writeUInt8($len);
|
||||
$length += $font->write($name, $len);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case 2.5:
|
||||
// TODO
|
||||
break;
|
||||
|
||||
case 3:
|
||||
// nothing
|
||||
break;
|
||||
|
||||
case 4:
|
||||
// TODO
|
||||
break;
|
||||
}
|
||||
|
||||
return $length;*/
|
||||
}
|
||||
}
|
100
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php
vendored
Normal file
100
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/Collection.php
vendored
Normal file
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\TrueType;
|
||||
|
||||
use Countable;
|
||||
use FontLib\BinaryStream;
|
||||
use Iterator;
|
||||
use OutOfBoundsException;
|
||||
|
||||
/**
|
||||
* TrueType collection font file.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Collection extends BinaryStream implements Iterator, Countable {
|
||||
/**
|
||||
* Current iterator position.
|
||||
*
|
||||
* @var integer
|
||||
*/
|
||||
private $position = 0;
|
||||
|
||||
protected $collectionOffsets = array();
|
||||
protected $collection = array();
|
||||
protected $version;
|
||||
protected $numFonts;
|
||||
|
||||
function parse() {
|
||||
if (isset($this->numFonts)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->read(4); // tag name
|
||||
|
||||
$this->version = $this->readFixed();
|
||||
$this->numFonts = $this->readUInt32();
|
||||
|
||||
for ($i = 0; $i < $this->numFonts; $i++) {
|
||||
$this->collectionOffsets[] = $this->readUInt32();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $fontId
|
||||
*
|
||||
* @throws OutOfBoundsException
|
||||
* @return File
|
||||
*/
|
||||
function getFont($fontId) {
|
||||
$this->parse();
|
||||
|
||||
if (!isset($this->collectionOffsets[$fontId])) {
|
||||
throw new OutOfBoundsException();
|
||||
}
|
||||
|
||||
if (isset($this->collection[$fontId])) {
|
||||
return $this->collection[$fontId];
|
||||
}
|
||||
|
||||
$font = new File();
|
||||
$font->f = $this->f;
|
||||
$font->setTableOffset($this->collectionOffsets[$fontId]);
|
||||
|
||||
return $this->collection[$fontId] = $font;
|
||||
}
|
||||
|
||||
function current() {
|
||||
return $this->getFont($this->position);
|
||||
}
|
||||
|
||||
function key() {
|
||||
return $this->position;
|
||||
}
|
||||
|
||||
function next() {
|
||||
return ++$this->position;
|
||||
}
|
||||
|
||||
function rewind() {
|
||||
$this->position = 0;
|
||||
}
|
||||
|
||||
function valid() {
|
||||
$this->parse();
|
||||
|
||||
return isset($this->collectionOffsets[$this->position]);
|
||||
}
|
||||
|
||||
function count() {
|
||||
$this->parse();
|
||||
|
||||
return $this->numFonts;
|
||||
}
|
||||
}
|
471
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php
vendored
Normal file
471
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/File.php
vendored
Normal file
|
@ -0,0 +1,471 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\TrueType;
|
||||
|
||||
use FontLib\AdobeFontMetrics;
|
||||
use FontLib\Font;
|
||||
use FontLib\BinaryStream;
|
||||
use FontLib\Table\Table;
|
||||
use FontLib\Table\DirectoryEntry;
|
||||
use FontLib\Table\Type\glyf;
|
||||
use FontLib\Table\Type\name;
|
||||
use FontLib\Table\Type\nameRecord;
|
||||
|
||||
/**
|
||||
* TrueType font file.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class File extends BinaryStream {
|
||||
/**
|
||||
* @var Header
|
||||
*/
|
||||
public $header = array();
|
||||
|
||||
private $tableOffset = 0; // Used for TTC
|
||||
|
||||
private static $raw = false;
|
||||
|
||||
protected $directory = array();
|
||||
protected $data = array();
|
||||
|
||||
protected $glyph_subset = array();
|
||||
|
||||
public $glyph_all = array();
|
||||
|
||||
static $macCharNames = array(
|
||||
".notdef", ".null", "CR",
|
||||
"space", "exclam", "quotedbl", "numbersign",
|
||||
"dollar", "percent", "ampersand", "quotesingle",
|
||||
"parenleft", "parenright", "asterisk", "plus",
|
||||
"comma", "hyphen", "period", "slash",
|
||||
"zero", "one", "two", "three",
|
||||
"four", "five", "six", "seven",
|
||||
"eight", "nine", "colon", "semicolon",
|
||||
"less", "equal", "greater", "question",
|
||||
"at", "A", "B", "C", "D", "E", "F", "G",
|
||||
"H", "I", "J", "K", "L", "M", "N", "O",
|
||||
"P", "Q", "R", "S", "T", "U", "V", "W",
|
||||
"X", "Y", "Z", "bracketleft",
|
||||
"backslash", "bracketright", "asciicircum", "underscore",
|
||||
"grave", "a", "b", "c", "d", "e", "f", "g",
|
||||
"h", "i", "j", "k", "l", "m", "n", "o",
|
||||
"p", "q", "r", "s", "t", "u", "v", "w",
|
||||
"x", "y", "z", "braceleft",
|
||||
"bar", "braceright", "asciitilde", "Adieresis",
|
||||
"Aring", "Ccedilla", "Eacute", "Ntilde",
|
||||
"Odieresis", "Udieresis", "aacute", "agrave",
|
||||
"acircumflex", "adieresis", "atilde", "aring",
|
||||
"ccedilla", "eacute", "egrave", "ecircumflex",
|
||||
"edieresis", "iacute", "igrave", "icircumflex",
|
||||
"idieresis", "ntilde", "oacute", "ograve",
|
||||
"ocircumflex", "odieresis", "otilde", "uacute",
|
||||
"ugrave", "ucircumflex", "udieresis", "dagger",
|
||||
"degree", "cent", "sterling", "section",
|
||||
"bullet", "paragraph", "germandbls", "registered",
|
||||
"copyright", "trademark", "acute", "dieresis",
|
||||
"notequal", "AE", "Oslash", "infinity",
|
||||
"plusminus", "lessequal", "greaterequal", "yen",
|
||||
"mu", "partialdiff", "summation", "product",
|
||||
"pi", "integral", "ordfeminine", "ordmasculine",
|
||||
"Omega", "ae", "oslash", "questiondown",
|
||||
"exclamdown", "logicalnot", "radical", "florin",
|
||||
"approxequal", "increment", "guillemotleft", "guillemotright",
|
||||
"ellipsis", "nbspace", "Agrave", "Atilde",
|
||||
"Otilde", "OE", "oe", "endash",
|
||||
"emdash", "quotedblleft", "quotedblright", "quoteleft",
|
||||
"quoteright", "divide", "lozenge", "ydieresis",
|
||||
"Ydieresis", "fraction", "currency", "guilsinglleft",
|
||||
"guilsinglright", "fi", "fl", "daggerdbl",
|
||||
"periodcentered", "quotesinglbase", "quotedblbase", "perthousand",
|
||||
"Acircumflex", "Ecircumflex", "Aacute", "Edieresis",
|
||||
"Egrave", "Iacute", "Icircumflex", "Idieresis",
|
||||
"Igrave", "Oacute", "Ocircumflex", "applelogo",
|
||||
"Ograve", "Uacute", "Ucircumflex", "Ugrave",
|
||||
"dotlessi", "circumflex", "tilde", "macron",
|
||||
"breve", "dotaccent", "ring", "cedilla",
|
||||
"hungarumlaut", "ogonek", "caron", "Lslash",
|
||||
"lslash", "Scaron", "scaron", "Zcaron",
|
||||
"zcaron", "brokenbar", "Eth", "eth",
|
||||
"Yacute", "yacute", "Thorn", "thorn",
|
||||
"minus", "multiply", "onesuperior", "twosuperior",
|
||||
"threesuperior", "onehalf", "onequarter", "threequarters",
|
||||
"franc", "Gbreve", "gbreve", "Idot",
|
||||
"Scedilla", "scedilla", "Cacute", "cacute",
|
||||
"Ccaron", "ccaron", "dmacron"
|
||||
);
|
||||
|
||||
function getTable() {
|
||||
$this->parseTableEntries();
|
||||
|
||||
return $this->directory;
|
||||
}
|
||||
|
||||
function setTableOffset($offset) {
|
||||
$this->tableOffset = $offset;
|
||||
}
|
||||
|
||||
function parse() {
|
||||
$this->parseTableEntries();
|
||||
|
||||
$this->data = array();
|
||||
|
||||
foreach ($this->directory as $tag => $table) {
|
||||
if (empty($this->data[$tag])) {
|
||||
$this->readTable($tag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function utf8toUnicode($str) {
|
||||
$len = strlen($str);
|
||||
$out = array();
|
||||
|
||||
for ($i = 0; $i < $len; $i++) {
|
||||
$uni = -1;
|
||||
$h = ord($str[$i]);
|
||||
|
||||
if ($h <= 0x7F) {
|
||||
$uni = $h;
|
||||
}
|
||||
elseif ($h >= 0xC2) {
|
||||
if (($h <= 0xDF) && ($i < $len - 1)) {
|
||||
$uni = ($h & 0x1F) << 6 | (ord($str[++$i]) & 0x3F);
|
||||
}
|
||||
elseif (($h <= 0xEF) && ($i < $len - 2)) {
|
||||
$uni = ($h & 0x0F) << 12 | (ord($str[++$i]) & 0x3F) << 6 | (ord($str[++$i]) & 0x3F);
|
||||
}
|
||||
elseif (($h <= 0xF4) && ($i < $len - 3)) {
|
||||
$uni = ($h & 0x0F) << 18 | (ord($str[++$i]) & 0x3F) << 12 | (ord($str[++$i]) & 0x3F) << 6 | (ord($str[++$i]) & 0x3F);
|
||||
}
|
||||
}
|
||||
|
||||
if ($uni >= 0) {
|
||||
$out[] = $uni;
|
||||
}
|
||||
}
|
||||
|
||||
return $out;
|
||||
}
|
||||
|
||||
function getUnicodeCharMap() {
|
||||
$subtable = null;
|
||||
foreach ($this->getData("cmap", "subtables") as $_subtable) {
|
||||
if ($_subtable["platformID"] == 0 || $_subtable["platformID"] == 3 && $_subtable["platformSpecificID"] == 1) {
|
||||
$subtable = $_subtable;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($subtable) {
|
||||
return $subtable["glyphIndexArray"];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
function setSubset($subset) {
|
||||
if (!is_array($subset)) {
|
||||
$subset = $this->utf8toUnicode($subset);
|
||||
}
|
||||
|
||||
$subset = array_unique($subset);
|
||||
|
||||
$glyphIndexArray = $this->getUnicodeCharMap();
|
||||
|
||||
if (!$glyphIndexArray) {
|
||||
return;
|
||||
}
|
||||
|
||||
$gids = array(
|
||||
0, // .notdef
|
||||
1, // .null
|
||||
);
|
||||
|
||||
foreach ($subset as $code) {
|
||||
if (!isset($glyphIndexArray[$code])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$gid = $glyphIndexArray[$code];
|
||||
$gids[$gid] = $gid;
|
||||
}
|
||||
|
||||
/** @var glyf $glyf */
|
||||
$glyf = $this->getTableObject("glyf");
|
||||
$gids = $glyf->getGlyphIDs($gids);
|
||||
|
||||
sort($gids);
|
||||
|
||||
$this->glyph_subset = $gids;
|
||||
$this->glyph_all = array_values($glyphIndexArray); // FIXME
|
||||
}
|
||||
|
||||
function getSubset() {
|
||||
if (empty($this->glyph_subset)) {
|
||||
return $this->glyph_all;
|
||||
}
|
||||
|
||||
return $this->glyph_subset;
|
||||
}
|
||||
|
||||
function encode($tags = array()) {
|
||||
if (!self::$raw) {
|
||||
$tags = array_merge(array("head", "hhea", "cmap", "hmtx", "maxp", "glyf", "loca", "name", "post"), $tags);
|
||||
}
|
||||
else {
|
||||
$tags = array_keys($this->directory);
|
||||
}
|
||||
|
||||
$num_tables = count($tags);
|
||||
$n = 16; // @todo
|
||||
|
||||
Font::d("Tables : " . implode(", ", $tags));
|
||||
|
||||
/** @var DirectoryEntry[] $entries */
|
||||
$entries = array();
|
||||
foreach ($tags as $tag) {
|
||||
if (!isset($this->directory[$tag])) {
|
||||
Font::d(" >> '$tag' table doesn't exist");
|
||||
continue;
|
||||
}
|
||||
|
||||
$entries[$tag] = $this->directory[$tag];
|
||||
}
|
||||
|
||||
$this->header->data["numTables"] = $num_tables;
|
||||
$this->header->encode();
|
||||
|
||||
$directory_offset = $this->pos();
|
||||
$offset = $directory_offset + $num_tables * $n;
|
||||
$this->seek($offset);
|
||||
|
||||
$i = 0;
|
||||
foreach ($entries as $entry) {
|
||||
$entry->encode($directory_offset + $i * $n);
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
|
||||
function parseHeader() {
|
||||
if (!empty($this->header)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->seek($this->tableOffset);
|
||||
|
||||
$this->header = new Header($this);
|
||||
$this->header->parse();
|
||||
}
|
||||
|
||||
function getFontType(){
|
||||
$class_parts = explode("\\", get_class($this));
|
||||
return $class_parts[1];
|
||||
}
|
||||
|
||||
function parseTableEntries() {
|
||||
$this->parseHeader();
|
||||
|
||||
if (!empty($this->directory)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (empty($this->header->data["numTables"])) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$type = $this->getFontType();
|
||||
$class = "FontLib\\$type\\TableDirectoryEntry";
|
||||
|
||||
for ($i = 0; $i < $this->header->data["numTables"]; $i++) {
|
||||
/** @var TableDirectoryEntry $entry */
|
||||
$entry = new $class($this);
|
||||
$entry->parse();
|
||||
|
||||
$this->directory[$entry->tag] = $entry;
|
||||
}
|
||||
}
|
||||
|
||||
function normalizeFUnit($value, $base = 1000) {
|
||||
return round($value * ($base / $this->getData("head", "unitsPerEm")));
|
||||
}
|
||||
|
||||
protected function readTable($tag) {
|
||||
$this->parseTableEntries();
|
||||
|
||||
if (!self::$raw) {
|
||||
$name_canon = preg_replace("/[^a-z0-9]/", "", strtolower($tag));
|
||||
|
||||
$class = "FontLib\\Table\\Type\\$name_canon";
|
||||
|
||||
if (!isset($this->directory[$tag]) || !class_exists($class)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$class = "FontLib\\Table\\Table";
|
||||
}
|
||||
|
||||
/** @var Table $table */
|
||||
$table = new $class($this->directory[$tag]);
|
||||
$table->parse();
|
||||
|
||||
$this->data[$tag] = $table;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $name
|
||||
*
|
||||
* @return Table
|
||||
*/
|
||||
public function getTableObject($name) {
|
||||
return $this->data[$name];
|
||||
}
|
||||
|
||||
public function setTableObject($name, Table $data) {
|
||||
$this->data[$name] = $data;
|
||||
}
|
||||
|
||||
public function getData($name, $key = null) {
|
||||
$this->parseTableEntries();
|
||||
|
||||
if (empty($this->data[$name])) {
|
||||
$this->readTable($name);
|
||||
}
|
||||
|
||||
if (!isset($this->data[$name])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!$key) {
|
||||
return $this->data[$name]->data;
|
||||
}
|
||||
else {
|
||||
return $this->data[$name]->data[$key];
|
||||
}
|
||||
}
|
||||
|
||||
function addDirectoryEntry(DirectoryEntry $entry) {
|
||||
$this->directory[$entry->tag] = $entry;
|
||||
}
|
||||
|
||||
function saveAdobeFontMetrics($file, $encoding = null) {
|
||||
$afm = new AdobeFontMetrics($this);
|
||||
$afm->write($file, $encoding);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a specific name table string value from its ID
|
||||
*
|
||||
* @param int $nameID The name ID
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getNameTableString($nameID) {
|
||||
/** @var nameRecord[] $records */
|
||||
$records = $this->getData("name", "records");
|
||||
|
||||
if (!isset($records[$nameID])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $records[$nameID]->string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font copyright
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontCopyright() {
|
||||
return $this->getNameTableString(name::NAME_COPYRIGHT);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontName() {
|
||||
return $this->getNameTableString(name::NAME_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font subfamily
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontSubfamily() {
|
||||
return $this->getNameTableString(name::NAME_SUBFAMILY);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font subfamily ID
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontSubfamilyID() {
|
||||
return $this->getNameTableString(name::NAME_SUBFAMILY_ID);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font full name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontFullName() {
|
||||
return $this->getNameTableString(name::NAME_FULL_NAME);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font version
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontVersion() {
|
||||
return $this->getNameTableString(name::NAME_VERSION);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font weight
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontWeight() {
|
||||
return $this->getTableObject("OS/2")->data["usWeightClass"];
|
||||
}
|
||||
|
||||
/**
|
||||
* Get font Postscript name
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
function getFontPostscriptName() {
|
||||
return $this->getNameTableString(name::NAME_POSTSCRIPT_NAME);
|
||||
}
|
||||
|
||||
function reduce() {
|
||||
$names_to_keep = array(
|
||||
name::NAME_COPYRIGHT,
|
||||
name::NAME_NAME,
|
||||
name::NAME_SUBFAMILY,
|
||||
name::NAME_SUBFAMILY_ID,
|
||||
name::NAME_FULL_NAME,
|
||||
name::NAME_VERSION,
|
||||
name::NAME_POSTSCRIPT_NAME,
|
||||
);
|
||||
|
||||
foreach ($this->data["name"]->data["records"] as $id => $rec) {
|
||||
if (!in_array($id, $names_to_keep)) {
|
||||
unset($this->data["name"]->data["records"][$id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
31
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php
vendored
Normal file
31
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/Header.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\TrueType;
|
||||
|
||||
/**
|
||||
* TrueType font file header.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Header extends \FontLib\Header {
|
||||
protected $def = array(
|
||||
"format" => self::uint32,
|
||||
"numTables" => self::uint16,
|
||||
"searchRange" => self::uint16,
|
||||
"entrySelector" => self::uint16,
|
||||
"rangeShift" => self::uint16,
|
||||
);
|
||||
|
||||
public function parse() {
|
||||
parent::parse();
|
||||
|
||||
$format = $this->data["format"];
|
||||
$this->data["formatText"] = $this->convertUInt32ToStr($format);
|
||||
}
|
||||
}
|
33
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php
vendored
Normal file
33
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/TrueType/TableDirectoryEntry.php
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\TrueType;
|
||||
|
||||
use FontLib\Table\DirectoryEntry;
|
||||
|
||||
/**
|
||||
* TrueType table directory entry.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class TableDirectoryEntry extends DirectoryEntry {
|
||||
function __construct(File $font) {
|
||||
parent::__construct($font);
|
||||
}
|
||||
|
||||
function parse() {
|
||||
parent::parse();
|
||||
|
||||
$font = $this->font;
|
||||
$this->checksum = $font->readUInt32();
|
||||
$this->offset = $font->readUInt32();
|
||||
$this->length = $font->readUInt32();
|
||||
$this->entryLength += 12;
|
||||
}
|
||||
}
|
||||
|
81
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php
vendored
Normal file
81
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/WOFF/File.php
vendored
Normal file
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\WOFF;
|
||||
|
||||
use FontLib\Table\DirectoryEntry;
|
||||
|
||||
/**
|
||||
* WOFF font file.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*
|
||||
* @property TableDirectoryEntry[] $directory
|
||||
*/
|
||||
class File extends \FontLib\TrueType\File {
|
||||
function parseHeader() {
|
||||
if (!empty($this->header)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->header = new Header($this);
|
||||
$this->header->parse();
|
||||
}
|
||||
|
||||
public function load($file) {
|
||||
parent::load($file);
|
||||
|
||||
$this->parseTableEntries();
|
||||
$dataOffset = $this->pos() + count($this->directory) * 20;
|
||||
|
||||
$fw = $this->getTempFile(false);
|
||||
$fr = $this->f;
|
||||
|
||||
$this->f = $fw;
|
||||
$offset = $this->header->encode();
|
||||
|
||||
foreach ($this->directory as $entry) {
|
||||
// Read ...
|
||||
$this->f = $fr;
|
||||
$this->seek($entry->offset);
|
||||
$data = $this->read($entry->length);
|
||||
|
||||
if ($entry->length < $entry->origLength) {
|
||||
$data = gzuncompress($data);
|
||||
}
|
||||
|
||||
// Prepare data ...
|
||||
$length = strlen($data);
|
||||
$entry->length = $entry->origLength = $length;
|
||||
$entry->offset = $dataOffset;
|
||||
|
||||
// Write ...
|
||||
$this->f = $fw;
|
||||
|
||||
// Woff Entry
|
||||
$this->seek($offset);
|
||||
$offset += $this->write($entry->tag, 4); // tag
|
||||
$offset += $this->writeUInt32($dataOffset); // offset
|
||||
$offset += $this->writeUInt32($length); // length
|
||||
$offset += $this->writeUInt32($length); // origLength
|
||||
$offset += $this->writeUInt32(DirectoryEntry::computeChecksum($data)); // checksum
|
||||
|
||||
// Data
|
||||
$this->seek($dataOffset);
|
||||
$dataOffset += $this->write($data, $length);
|
||||
}
|
||||
|
||||
$this->f = $fw;
|
||||
$this->seek(0);
|
||||
|
||||
// Need to re-parse this, don't know why
|
||||
$this->header = null;
|
||||
$this->directory = array();
|
||||
$this->parseTableEntries();
|
||||
}
|
||||
}
|
32
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php
vendored
Normal file
32
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/WOFF/Header.php
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\WOFF;
|
||||
|
||||
/**
|
||||
* WOFF font file header.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class Header extends \FontLib\TrueType\Header {
|
||||
protected $def = array(
|
||||
"format" => self::uint32,
|
||||
"flavor" => self::uint32,
|
||||
"length" => self::uint32,
|
||||
"numTables" => self::uint16,
|
||||
self::uint16,
|
||||
"totalSfntSize" => self::uint32,
|
||||
"majorVersion" => self::uint16,
|
||||
"minorVersion" => self::uint16,
|
||||
"metaOffset" => self::uint32,
|
||||
"metaLength" => self::uint32,
|
||||
"metaOrigLength" => self::uint32,
|
||||
"privOffset" => self::uint32,
|
||||
"privLength" => self::uint32,
|
||||
);
|
||||
}
|
34
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php
vendored
Normal file
34
sites/all/modules/civicrm/vendor/phenx/php-font-lib/src/FontLib/WOFF/TableDirectoryEntry.php
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-font-lib
|
||||
* @link https://github.com/PhenX/php-font-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace FontLib\WOFF;
|
||||
|
||||
use FontLib\Table\DirectoryEntry;
|
||||
|
||||
/**
|
||||
* WOFF font file table directory entry.
|
||||
*
|
||||
* @package php-font-lib
|
||||
*/
|
||||
class TableDirectoryEntry extends DirectoryEntry {
|
||||
public $origLength;
|
||||
|
||||
function __construct(File $font) {
|
||||
parent::__construct($font);
|
||||
}
|
||||
|
||||
function parse() {
|
||||
parent::parse();
|
||||
|
||||
$font = $this->font;
|
||||
$this->offset = $font->readUInt32();
|
||||
$this->length = $font->readUInt32();
|
||||
$this->origLength = $font->readUInt32();
|
||||
$this->checksum = $font->readUInt32();
|
||||
}
|
||||
}
|
9
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/.gitattributes
vendored
Normal file
9
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/.gitattributes
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
*.json text
|
||||
*.xml text
|
||||
*.php text
|
||||
*.md text
|
||||
*.css text
|
||||
*.js text
|
||||
*.html text
|
||||
*.htm text
|
||||
*.svg text
|
3
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/.gitignore
vendored
Normal file
3
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
excluded
|
||||
gui
|
||||
.idea
|
21
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/.travis.yml
vendored
Normal file
21
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/.travis.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
language: php
|
||||
|
||||
php:
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- 7.0
|
||||
- hhvm
|
||||
|
||||
before_script:
|
||||
- composer self-update
|
||||
- composer install --prefer-source --no-interaction --dev
|
||||
|
||||
script: phpunit
|
||||
|
||||
matrix:
|
||||
allow_failures:
|
||||
- php: 7.0
|
||||
- php: hhvm
|
||||
fast_finish: true
|
14
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/README.md
vendored
Normal file
14
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/README.md
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
# SVG file parsing / rendering library
|
||||
|
||||
[](https://travis-ci.org/PhenX/php-svg-lib)
|
||||
[](https://coveralls.io/r/PhenX/php-svg-lib)
|
||||
|
||||
|
||||
[](https://packagist.org/packages/phenx/php-svg-lib)
|
||||
[](https://packagist.org/packages/phenx/php-svg-lib)
|
||||
[](https://packagist.org/packages/phenx/php-svg-lib)
|
||||
[](https://packagist.org/packages/phenx/php-svg-lib)
|
||||
|
||||
The main purpose of this lib is to rasterize SVG to a surface which can be an image or a PDF for example, through a `\Svg\Surface` PHP interface.
|
||||
|
||||
This project was initialized by the need to render SVG documents inside PDF files for the [DomPdf](http://dompdf.github.io) project.
|
21
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/composer.json
vendored
Normal file
21
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/composer.json
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"name": "phenx/php-svg-lib",
|
||||
"type": "library",
|
||||
"description": "A library to read, parse and export to PDF SVG files.",
|
||||
"homepage": "https://github.com/PhenX/php-svg-lib",
|
||||
"license": "LGPL-3.0",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Fabien Ménager",
|
||||
"email": "fabien.menager@gmail.com"
|
||||
}
|
||||
],
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Svg\\": "src/"
|
||||
}
|
||||
},
|
||||
"require": {
|
||||
"sabberworm/php-css-parser": "6.0.*"
|
||||
}
|
||||
}
|
19
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/phpunit.xml
vendored
Normal file
19
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/phpunit.xml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit backupGlobals="false"
|
||||
backupStaticAttributes="false"
|
||||
colors="true"
|
||||
convertErrorsToExceptions="true"
|
||||
convertNoticesToExceptions="true"
|
||||
convertWarningsToExceptions="true"
|
||||
processIsolation="false"
|
||||
stopOnFailure="false"
|
||||
syntaxCheck="false"
|
||||
bootstrap="src/autoload.php"
|
||||
>
|
||||
<testsuites>
|
||||
<testsuite name="SVG lib test suite">
|
||||
<directory>./tests/Svg/</directory>
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
</phpunit>
|
29
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php
vendored
Normal file
29
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/DefaultStyle.php
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg;
|
||||
|
||||
class DefaultStyle extends Style
|
||||
{
|
||||
public $color = '';
|
||||
public $opacity = 1.0;
|
||||
public $display = 'inline';
|
||||
|
||||
public $fill = 'black';
|
||||
public $fillOpacity = 1.0;
|
||||
public $fillRule = 'nonzero';
|
||||
|
||||
public $stroke = 'none';
|
||||
public $strokeOpacity = 1.0;
|
||||
public $strokeLinecap = 'butt';
|
||||
public $strokeLinejoin = 'miter';
|
||||
public $strokeMiterlimit = 4;
|
||||
public $strokeWidth = 1.0;
|
||||
public $strokeDasharray = 0;
|
||||
public $strokeDashoffset = 0;
|
||||
}
|
403
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Document.php
vendored
Normal file
403
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Document.php
vendored
Normal file
|
@ -0,0 +1,403 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg;
|
||||
|
||||
use Svg\Surface\SurfaceInterface;
|
||||
use Svg\Tag\AbstractTag;
|
||||
use Svg\Tag\Anchor;
|
||||
use Svg\Tag\Circle;
|
||||
use Svg\Tag\Ellipse;
|
||||
use Svg\Tag\Group;
|
||||
use Svg\Tag\ClipPath;
|
||||
use Svg\Tag\Image;
|
||||
use Svg\Tag\Line;
|
||||
use Svg\Tag\LinearGradient;
|
||||
use Svg\Tag\Path;
|
||||
use Svg\Tag\Polygon;
|
||||
use Svg\Tag\Polyline;
|
||||
use Svg\Tag\Rect;
|
||||
use Svg\Tag\Stop;
|
||||
use Svg\Tag\Text;
|
||||
use Svg\Tag\StyleTag;
|
||||
use Svg\Tag\UseTag;
|
||||
|
||||
class Document extends AbstractTag
|
||||
{
|
||||
protected $filename;
|
||||
public $inDefs = false;
|
||||
|
||||
protected $x;
|
||||
protected $y;
|
||||
protected $width;
|
||||
protected $height;
|
||||
|
||||
protected $subPathInit;
|
||||
protected $pathBBox;
|
||||
protected $viewBox;
|
||||
|
||||
/** @var resource */
|
||||
protected $parser;
|
||||
|
||||
/** @var SurfaceInterface */
|
||||
protected $surface;
|
||||
|
||||
/** @var AbstractTag[] */
|
||||
protected $stack = array();
|
||||
|
||||
/** @var AbstractTag[] */
|
||||
protected $defs = array();
|
||||
|
||||
/** @var \Sabberworm\CSS\CSSList\Document[] */
|
||||
protected $styleSheets = array();
|
||||
|
||||
public function loadFile($filename)
|
||||
{
|
||||
$this->filename = $filename;
|
||||
}
|
||||
|
||||
protected function initParser() {
|
||||
$parser = xml_parser_create("utf-8");
|
||||
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
|
||||
xml_set_element_handler(
|
||||
$parser,
|
||||
array($this, "_tagStart"),
|
||||
array($this, "_tagEnd")
|
||||
);
|
||||
xml_set_character_data_handler(
|
||||
$parser,
|
||||
array($this, "_charData")
|
||||
);
|
||||
|
||||
return $this->parser = $parser;
|
||||
}
|
||||
|
||||
public function __construct() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @return SurfaceInterface
|
||||
*/
|
||||
public function getSurface()
|
||||
{
|
||||
return $this->surface;
|
||||
}
|
||||
|
||||
public function getStack()
|
||||
{
|
||||
return $this->stack;
|
||||
}
|
||||
|
||||
public function getWidth()
|
||||
{
|
||||
return $this->width;
|
||||
}
|
||||
|
||||
public function getHeight()
|
||||
{
|
||||
return $this->height;
|
||||
}
|
||||
|
||||
public function getDimensions() {
|
||||
$rootAttributes = null;
|
||||
|
||||
$parser = xml_parser_create("utf-8");
|
||||
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
|
||||
xml_set_element_handler(
|
||||
$parser,
|
||||
function ($parser, $name, $attributes) use (&$rootAttributes) {
|
||||
if ($name === "svg" && $rootAttributes === null) {
|
||||
$attributes = array_change_key_case($attributes, CASE_LOWER);
|
||||
|
||||
$rootAttributes = $attributes;
|
||||
}
|
||||
},
|
||||
function ($parser, $name) {}
|
||||
);
|
||||
|
||||
$fp = fopen($this->filename, "r");
|
||||
while ($line = fread($fp, 8192)) {
|
||||
xml_parse($parser, $line, false);
|
||||
|
||||
if ($rootAttributes !== null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
xml_parser_free($parser);
|
||||
|
||||
return $this->handleSizeAttributes($rootAttributes);
|
||||
}
|
||||
|
||||
public function handleSizeAttributes($attributes){
|
||||
if ($this->width === null) {
|
||||
if (isset($attributes["width"])) {
|
||||
$width = Style::convertSize($attributes["width"], 400);
|
||||
$this->width = $width;
|
||||
}
|
||||
|
||||
if (isset($attributes["height"])) {
|
||||
$height = Style::convertSize($attributes["height"], 300);
|
||||
$this->height = $height;
|
||||
}
|
||||
|
||||
if (isset($attributes['viewbox'])) {
|
||||
$viewBox = preg_split('/[\s,]+/is', trim($attributes['viewbox']));
|
||||
if (count($viewBox) == 4) {
|
||||
$this->x = $viewBox[0];
|
||||
$this->y = $viewBox[1];
|
||||
|
||||
if (!$this->width) {
|
||||
$this->width = $viewBox[2];
|
||||
}
|
||||
if (!$this->height) {
|
||||
$this->height = $viewBox[3];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
0 => $this->width,
|
||||
1 => $this->height,
|
||||
|
||||
"width" => $this->width,
|
||||
"height" => $this->height,
|
||||
);
|
||||
}
|
||||
|
||||
public function getDocument(){
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Append a style sheet
|
||||
*
|
||||
* @param \Sabberworm\CSS\CSSList\Document $stylesheet
|
||||
*/
|
||||
public function appendStyleSheet($stylesheet) {
|
||||
$this->styleSheets[] = $stylesheet;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the document style sheets
|
||||
*
|
||||
* @return \Sabberworm\CSS\CSSList\Document[]
|
||||
*/
|
||||
public function getStyleSheets() {
|
||||
return $this->styleSheets;
|
||||
}
|
||||
|
||||
protected function before($attributes)
|
||||
{
|
||||
$surface = $this->getSurface();
|
||||
|
||||
$style = new DefaultStyle();
|
||||
$style->inherit($this);
|
||||
$style->fromAttributes($attributes);
|
||||
|
||||
$this->setStyle($style);
|
||||
|
||||
$surface->setStyle($style);
|
||||
}
|
||||
|
||||
public function render(SurfaceInterface $surface)
|
||||
{
|
||||
$this->inDefs = false;
|
||||
$this->surface = $surface;
|
||||
|
||||
$parser = $this->initParser();
|
||||
|
||||
if ($this->x || $this->y) {
|
||||
$surface->translate(-$this->x, -$this->y);
|
||||
}
|
||||
|
||||
$fp = fopen($this->filename, "r");
|
||||
while ($line = fread($fp, 8192)) {
|
||||
xml_parse($parser, $line, false);
|
||||
}
|
||||
|
||||
xml_parse($parser, "", true);
|
||||
|
||||
xml_parser_free($parser);
|
||||
}
|
||||
|
||||
protected function svgOffset($attributes)
|
||||
{
|
||||
$this->attributes = $attributes;
|
||||
|
||||
$this->handleSizeAttributes($attributes);
|
||||
}
|
||||
|
||||
public function getDef($id) {
|
||||
$id = ltrim($id, "#");
|
||||
|
||||
return isset($this->defs[$id]) ? $this->defs[$id] : null;
|
||||
}
|
||||
|
||||
private function _tagStart($parser, $name, $attributes)
|
||||
{
|
||||
$this->x = 0;
|
||||
$this->y = 0;
|
||||
|
||||
$tag = null;
|
||||
|
||||
$attributes = array_change_key_case($attributes, CASE_LOWER);
|
||||
|
||||
switch (strtolower($name)) {
|
||||
case 'defs':
|
||||
$this->inDefs = true;
|
||||
return;
|
||||
|
||||
case 'svg':
|
||||
if (count($this->attributes)) {
|
||||
$tag = new Group($this, $name);
|
||||
}
|
||||
else {
|
||||
$tag = $this;
|
||||
$this->svgOffset($attributes);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'path':
|
||||
$tag = new Path($this, $name);
|
||||
break;
|
||||
|
||||
case 'rect':
|
||||
$tag = new Rect($this, $name);
|
||||
break;
|
||||
|
||||
case 'circle':
|
||||
$tag = new Circle($this, $name);
|
||||
break;
|
||||
|
||||
case 'ellipse':
|
||||
$tag = new Ellipse($this, $name);
|
||||
break;
|
||||
|
||||
case 'image':
|
||||
$tag = new Image($this, $name);
|
||||
break;
|
||||
|
||||
case 'line':
|
||||
$tag = new Line($this, $name);
|
||||
break;
|
||||
|
||||
case 'polyline':
|
||||
$tag = new Polyline($this, $name);
|
||||
break;
|
||||
|
||||
case 'polygon':
|
||||
$tag = new Polygon($this, $name);
|
||||
break;
|
||||
|
||||
case 'lineargradient':
|
||||
$tag = new LinearGradient($this, $name);
|
||||
break;
|
||||
|
||||
case 'radialgradient':
|
||||
$tag = new LinearGradient($this, $name);
|
||||
break;
|
||||
|
||||
case 'stop':
|
||||
$tag = new Stop($this, $name);
|
||||
break;
|
||||
|
||||
case 'style':
|
||||
$tag = new StyleTag($this, $name);
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
$tag = new Anchor($this, $name);
|
||||
break;
|
||||
|
||||
case 'g':
|
||||
case 'symbol':
|
||||
$tag = new Group($this, $name);
|
||||
break;
|
||||
|
||||
case 'clippath':
|
||||
$tag = new ClipPath($this, $name);
|
||||
break;
|
||||
|
||||
case 'use':
|
||||
$tag = new UseTag($this, $name);
|
||||
break;
|
||||
|
||||
case 'text':
|
||||
$tag = new Text($this, $name);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($tag) {
|
||||
if (isset($attributes["id"])) {
|
||||
$this->defs[$attributes["id"]] = $tag;
|
||||
}
|
||||
else {
|
||||
/** @var AbstractTag $top */
|
||||
$top = end($this->stack);
|
||||
if ($top && $top != $tag) {
|
||||
$top->children[] = $tag;
|
||||
}
|
||||
}
|
||||
|
||||
$this->stack[] = $tag;
|
||||
|
||||
$tag->handle($attributes);
|
||||
} else {
|
||||
echo "Unknown: '$name'\n";
|
||||
}
|
||||
}
|
||||
|
||||
function _charData($parser, $data)
|
||||
{
|
||||
$stack_top = end($this->stack);
|
||||
|
||||
if ($stack_top instanceof Text || $stack_top instanceof StyleTag) {
|
||||
$stack_top->appendText($data);
|
||||
}
|
||||
}
|
||||
|
||||
function _tagEnd($parser, $name)
|
||||
{
|
||||
/** @var AbstractTag $tag */
|
||||
$tag = null;
|
||||
switch (strtolower($name)) {
|
||||
case 'defs':
|
||||
$this->inDefs = false;
|
||||
return;
|
||||
|
||||
case 'svg':
|
||||
case 'path':
|
||||
case 'rect':
|
||||
case 'circle':
|
||||
case 'ellipse':
|
||||
case 'image':
|
||||
case 'line':
|
||||
case 'polyline':
|
||||
case 'polygon':
|
||||
case 'radialgradient':
|
||||
case 'lineargradient':
|
||||
case 'stop':
|
||||
case 'style':
|
||||
case 'text':
|
||||
case 'g':
|
||||
case 'symbol':
|
||||
case 'clippath':
|
||||
case 'use':
|
||||
case 'a':
|
||||
$tag = array_pop($this->stack);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$this->inDefs && $tag) {
|
||||
$tag->handleEnd();
|
||||
}
|
||||
}
|
||||
}
|
16
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php
vendored
Normal file
16
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Gradient/Stop.php
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Gradient;
|
||||
|
||||
class Stop
|
||||
{
|
||||
public $offset;
|
||||
public $color;
|
||||
public $opacity = 1.0;
|
||||
}
|
550
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Style.php
vendored
Normal file
550
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Style.php
vendored
Normal file
|
@ -0,0 +1,550 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien M<EFBFBD>nager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg;
|
||||
|
||||
use Svg\Tag\AbstractTag;
|
||||
|
||||
class Style
|
||||
{
|
||||
const TYPE_COLOR = 1;
|
||||
const TYPE_LENGTH = 2;
|
||||
const TYPE_NAME = 3;
|
||||
const TYPE_ANGLE = 4;
|
||||
const TYPE_NUMBER = 5;
|
||||
|
||||
public $color;
|
||||
public $opacity;
|
||||
public $display;
|
||||
|
||||
public $fill;
|
||||
public $fillOpacity;
|
||||
public $fillRule;
|
||||
|
||||
public $stroke;
|
||||
public $strokeOpacity;
|
||||
public $strokeLinecap;
|
||||
public $strokeLinejoin;
|
||||
public $strokeMiterlimit;
|
||||
public $strokeWidth;
|
||||
public $strokeDasharray;
|
||||
public $strokeDashoffset;
|
||||
|
||||
public $fontFamily = 'serif';
|
||||
public $fontSize = 12;
|
||||
public $fontWeight = 'normal';
|
||||
public $fontStyle = 'normal';
|
||||
public $textAnchor = 'start';
|
||||
|
||||
protected function getStyleMap()
|
||||
{
|
||||
return array(
|
||||
'color' => array('color', self::TYPE_COLOR),
|
||||
'opacity' => array('opacity', self::TYPE_NUMBER),
|
||||
'display' => array('display', self::TYPE_NAME),
|
||||
|
||||
'fill' => array('fill', self::TYPE_COLOR),
|
||||
'fill-opacity' => array('fillOpacity', self::TYPE_NUMBER),
|
||||
'fill-rule' => array('fillRule', self::TYPE_NAME),
|
||||
|
||||
'stroke' => array('stroke', self::TYPE_COLOR),
|
||||
'stroke-dasharray' => array('strokeDasharray', self::TYPE_NAME),
|
||||
'stroke-dashoffset' => array('strokeDashoffset', self::TYPE_NUMBER),
|
||||
'stroke-linecap' => array('strokeLinecap', self::TYPE_NAME),
|
||||
'stroke-linejoin' => array('strokeLinejoin', self::TYPE_NAME),
|
||||
'stroke-miterlimit' => array('strokeMiterlimit', self::TYPE_NUMBER),
|
||||
'stroke-opacity' => array('strokeOpacity', self::TYPE_NUMBER),
|
||||
'stroke-width' => array('strokeWidth', self::TYPE_NUMBER),
|
||||
|
||||
'font-family' => array('fontFamily', self::TYPE_NAME),
|
||||
'font-size' => array('fontSize', self::TYPE_NUMBER),
|
||||
'font-weight' => array('fontWeight', self::TYPE_NAME),
|
||||
'font-style' => array('fontStyle', self::TYPE_NAME),
|
||||
'text-anchor' => array('textAnchor', self::TYPE_NAME),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $attributes
|
||||
*
|
||||
* @return Style
|
||||
*/
|
||||
public function fromAttributes($attributes)
|
||||
{
|
||||
$this->fillStyles($attributes);
|
||||
|
||||
if (isset($attributes["style"])) {
|
||||
$styles = self::parseCssStyle($attributes["style"]);
|
||||
$this->fillStyles($styles);
|
||||
}
|
||||
}
|
||||
|
||||
public function inherit(AbstractTag $tag) {
|
||||
$group = $tag->getParentGroup();
|
||||
if ($group) {
|
||||
$parent_style = $group->getStyle();
|
||||
|
||||
foreach ($parent_style as $_key => $_value) {
|
||||
if ($_value !== null) {
|
||||
$this->$_key = $_value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function fromStyleSheets(AbstractTag $tag, $attributes) {
|
||||
$class = isset($attributes["class"]) ? preg_split('/\s+/', trim($attributes["class"])) : null;
|
||||
|
||||
$stylesheets = $tag->getDocument()->getStyleSheets();
|
||||
|
||||
$styles = array();
|
||||
|
||||
foreach ($stylesheets as $_sc) {
|
||||
|
||||
/** @var \Sabberworm\CSS\RuleSet\DeclarationBlock $_decl */
|
||||
foreach ($_sc->getAllDeclarationBlocks() as $_decl) {
|
||||
|
||||
/** @var \Sabberworm\CSS\Property\Selector $_selector */
|
||||
foreach ($_decl->getSelectors() as $_selector) {
|
||||
$_selector = $_selector->getSelector();
|
||||
|
||||
// Match class name
|
||||
if ($class !== null) {
|
||||
foreach ($class as $_class) {
|
||||
if ($_selector === ".$_class") {
|
||||
/** @var \Sabberworm\CSS\Rule\Rule $_rule */
|
||||
foreach ($_decl->getRules() as $_rule) {
|
||||
$styles[$_rule->getRule()] = $_rule->getValue() . "";
|
||||
}
|
||||
|
||||
break 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Match tag name
|
||||
if ($_selector === $tag->tagName) {
|
||||
/** @var \Sabberworm\CSS\Rule\Rule $_rule */
|
||||
foreach ($_decl->getRules() as $_rule) {
|
||||
$styles[$_rule->getRule()] = $_rule->getValue() . "";
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->fillStyles($styles);
|
||||
}
|
||||
|
||||
protected function fillStyles($styles)
|
||||
{
|
||||
foreach ($this->getStyleMap() as $from => $spec) {
|
||||
if (isset($styles[$from])) {
|
||||
list($to, $type) = $spec;
|
||||
$value = null;
|
||||
switch ($type) {
|
||||
case self::TYPE_COLOR:
|
||||
$value = self::parseColor($styles[$from]);
|
||||
break;
|
||||
|
||||
case self::TYPE_NUMBER:
|
||||
$value = ($styles[$from] === null) ? null : (float)$styles[$from];
|
||||
break;
|
||||
|
||||
default:
|
||||
$value = $styles[$from];
|
||||
}
|
||||
|
||||
if ($value !== null) {
|
||||
$this->$to = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static function parseColor($color)
|
||||
{
|
||||
$color = strtolower(trim($color));
|
||||
|
||||
$parts = preg_split('/[^,]\s+/', $color, 2);
|
||||
|
||||
if (count($parts) == 2) {
|
||||
$color = $parts[1];
|
||||
}
|
||||
else {
|
||||
$color = $parts[0];
|
||||
}
|
||||
|
||||
if ($color === "none") {
|
||||
return "none";
|
||||
}
|
||||
|
||||
// SVG color name
|
||||
if (isset(self::$colorNames[$color])) {
|
||||
return self::parseHexColor(self::$colorNames[$color]);
|
||||
}
|
||||
|
||||
// Hex color
|
||||
if ($color[0] === "#") {
|
||||
return self::parseHexColor($color);
|
||||
}
|
||||
|
||||
// RGB color
|
||||
if (strpos($color, "rgb") !== false) {
|
||||
return self::getTriplet($color);
|
||||
}
|
||||
|
||||
// RGB color
|
||||
if (strpos($color, "hsl") !== false) {
|
||||
$triplet = self::getTriplet($color, true);
|
||||
|
||||
if ($triplet == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
list($h, $s, $l) = $triplet;
|
||||
|
||||
$r = $l;
|
||||
$g = $l;
|
||||
$b = $l;
|
||||
$v = ($l <= 0.5) ? ($l * (1.0 + $s)) : ($l + $s - $l * $s);
|
||||
if ($v > 0) {
|
||||
$m = $l + $l - $v;
|
||||
$sv = ($v - $m) / $v;
|
||||
$h *= 6.0;
|
||||
$sextant = floor($h);
|
||||
$fract = $h - $sextant;
|
||||
$vsf = $v * $sv * $fract;
|
||||
$mid1 = $m + $vsf;
|
||||
$mid2 = $v - $vsf;
|
||||
|
||||
switch ($sextant) {
|
||||
case 0:
|
||||
$r = $v;
|
||||
$g = $mid1;
|
||||
$b = $m;
|
||||
break;
|
||||
case 1:
|
||||
$r = $mid2;
|
||||
$g = $v;
|
||||
$b = $m;
|
||||
break;
|
||||
case 2:
|
||||
$r = $m;
|
||||
$g = $v;
|
||||
$b = $mid1;
|
||||
break;
|
||||
case 3:
|
||||
$r = $m;
|
||||
$g = $mid2;
|
||||
$b = $v;
|
||||
break;
|
||||
case 4:
|
||||
$r = $mid1;
|
||||
$g = $m;
|
||||
$b = $v;
|
||||
break;
|
||||
case 5:
|
||||
$r = $v;
|
||||
$g = $m;
|
||||
$b = $mid2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return array(
|
||||
$r * 255.0,
|
||||
$g * 255.0,
|
||||
$b * 255.0,
|
||||
);
|
||||
}
|
||||
|
||||
// Gradient
|
||||
if (strpos($color, "url(#") !== false) {
|
||||
$i = strpos($color, "(");
|
||||
$j = strpos($color, ")");
|
||||
|
||||
// Bad url format
|
||||
if ($i === false || $j === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return trim(substr($color, $i + 1, $j - $i - 1));
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static function getTriplet($color, $percent = false) {
|
||||
$i = strpos($color, "(");
|
||||
$j = strpos($color, ")");
|
||||
|
||||
// Bad color value
|
||||
if ($i === false || $j === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$triplet = preg_split("/\\s*,\\s*/", trim(substr($color, $i + 1, $j - $i - 1)));
|
||||
|
||||
if (count($triplet) != 3) {
|
||||
return null;
|
||||
}
|
||||
|
||||
foreach (array_keys($triplet) as $c) {
|
||||
$triplet[$c] = trim($triplet[$c]);
|
||||
|
||||
if ($percent) {
|
||||
if ($triplet[$c][strlen($triplet[$c]) - 1] === "%") {
|
||||
$triplet[$c] = $triplet[$c] / 100;
|
||||
}
|
||||
else {
|
||||
$triplet[$c] = $triplet[$c] / 255;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($triplet[$c][strlen($triplet[$c]) - 1] === "%") {
|
||||
$triplet[$c] = round($triplet[$c] * 2.55);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $triplet;
|
||||
}
|
||||
|
||||
static function parseHexColor($hex)
|
||||
{
|
||||
$c = array(0, 0, 0);
|
||||
|
||||
// #FFFFFF
|
||||
if (isset($hex[6])) {
|
||||
$c[0] = hexdec(substr($hex, 1, 2));
|
||||
$c[1] = hexdec(substr($hex, 3, 2));
|
||||
$c[2] = hexdec(substr($hex, 5, 2));
|
||||
} else {
|
||||
$c[0] = hexdec($hex[1] . $hex[1]);
|
||||
$c[1] = hexdec($hex[2] . $hex[2]);
|
||||
$c[2] = hexdec($hex[3] . $hex[3]);
|
||||
}
|
||||
|
||||
return $c;
|
||||
}
|
||||
|
||||
/**
|
||||
* Simple CSS parser
|
||||
*
|
||||
* @param $style
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
static function parseCssStyle($style)
|
||||
{
|
||||
$matches = array();
|
||||
preg_match_all("/([a-z-]+)\\s*:\\s*([^;$]+)/si", $style, $matches, PREG_SET_ORDER);
|
||||
|
||||
$styles = array();
|
||||
foreach ($matches as $match) {
|
||||
$styles[$match[1]] = $match[2];
|
||||
}
|
||||
|
||||
return $styles;
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a size to a float
|
||||
*
|
||||
* @param string $size SVG size
|
||||
* @param float $dpi DPI
|
||||
* @param float $referenceSize Reference size
|
||||
*
|
||||
* @return float|null
|
||||
*/
|
||||
static function convertSize($size, $referenceSize = 11.0, $dpi = 96.0) {
|
||||
$size = trim(strtolower($size));
|
||||
|
||||
if (is_numeric($size)) {
|
||||
return $size;
|
||||
}
|
||||
|
||||
if ($pos = strpos($size, "px")) {
|
||||
return floatval(substr($size, 0, $pos));
|
||||
}
|
||||
|
||||
if ($pos = strpos($size, "pt")) {
|
||||
return floatval(substr($size, 0, $pos));
|
||||
}
|
||||
|
||||
if ($pos = strpos($size, "cm")) {
|
||||
return floatval(substr($size, 0, $pos)) * $dpi;
|
||||
}
|
||||
|
||||
if ($pos = strpos($size, "%")) {
|
||||
return $referenceSize * substr($size, 0, $pos) / 100;
|
||||
}
|
||||
|
||||
if ($pos = strpos($size, "em")) {
|
||||
return $referenceSize * substr($size, 0, $pos);
|
||||
}
|
||||
|
||||
// TODO cm, mm, pc, in, etc
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
static $colorNames = array(
|
||||
'antiquewhite' => '#FAEBD7',
|
||||
'aqua' => '#00FFFF',
|
||||
'aquamarine' => '#7FFFD4',
|
||||
'beige' => '#F5F5DC',
|
||||
'black' => '#000000',
|
||||
'blue' => '#0000FF',
|
||||
'brown' => '#A52A2A',
|
||||
'cadetblue' => '#5F9EA0',
|
||||
'chocolate' => '#D2691E',
|
||||
'cornflowerblue' => '#6495ED',
|
||||
'crimson' => '#DC143C',
|
||||
'darkblue' => '#00008B',
|
||||
'darkgoldenrod' => '#B8860B',
|
||||
'darkgreen' => '#006400',
|
||||
'darkmagenta' => '#8B008B',
|
||||
'darkorange' => '#FF8C00',
|
||||
'darkred' => '#8B0000',
|
||||
'darkseagreen' => '#8FBC8F',
|
||||
'darkslategray' => '#2F4F4F',
|
||||
'darkviolet' => '#9400D3',
|
||||
'deepskyblue' => '#00BFFF',
|
||||
'dodgerblue' => '#1E90FF',
|
||||
'firebrick' => '#B22222',
|
||||
'forestgreen' => '#228B22',
|
||||
'fuchsia' => '#FF00FF',
|
||||
'gainsboro' => '#DCDCDC',
|
||||
'gold' => '#FFD700',
|
||||
'gray' => '#808080',
|
||||
'green' => '#008000',
|
||||
'greenyellow' => '#ADFF2F',
|
||||
'hotpink' => '#FF69B4',
|
||||
'indigo' => '#4B0082',
|
||||
'khaki' => '#F0E68C',
|
||||
'lavenderblush' => '#FFF0F5',
|
||||
'lemonchiffon' => '#FFFACD',
|
||||
'lightcoral' => '#F08080',
|
||||
'lightgoldenrodyellow' => '#FAFAD2',
|
||||
'lightgreen' => '#90EE90',
|
||||
'lightsalmon' => '#FFA07A',
|
||||
'lightskyblue' => '#87CEFA',
|
||||
'lightslategray' => '#778899',
|
||||
'lightyellow' => '#FFFFE0',
|
||||
'lime' => '#00FF00',
|
||||
'limegreen' => '#32CD32',
|
||||
'magenta' => '#FF00FF',
|
||||
'maroon' => '#800000',
|
||||
'mediumaquamarine' => '#66CDAA',
|
||||
'mediumorchid' => '#BA55D3',
|
||||
'mediumseagreen' => '#3CB371',
|
||||
'mediumspringgreen' => '#00FA9A',
|
||||
'mediumvioletred' => '#C71585',
|
||||
'midnightblue' => '#191970',
|
||||
'mintcream' => '#F5FFFA',
|
||||
'moccasin' => '#FFE4B5',
|
||||
'navy' => '#000080',
|
||||
'olive' => '#808000',
|
||||
'orange' => '#FFA500',
|
||||
'orchid' => '#DA70D6',
|
||||
'palegreen' => '#98FB98',
|
||||
'palevioletred' => '#D87093',
|
||||
'peachpuff' => '#FFDAB9',
|
||||
'pink' => '#FFC0CB',
|
||||
'powderblue' => '#B0E0E6',
|
||||
'purple' => '#800080',
|
||||
'red' => '#FF0000',
|
||||
'royalblue' => '#4169E1',
|
||||
'salmon' => '#FA8072',
|
||||
'seagreen' => '#2E8B57',
|
||||
'sienna' => '#A0522D',
|
||||
'silver' => '#C0C0C0',
|
||||
'skyblue' => '#87CEEB',
|
||||
'slategray' => '#708090',
|
||||
'springgreen' => '#00FF7F',
|
||||
'steelblue' => '#4682B4',
|
||||
'tan' => '#D2B48C',
|
||||
'teal' => '#008080',
|
||||
'thistle' => '#D8BFD8',
|
||||
'turquoise' => '#40E0D0',
|
||||
'violetred' => '#D02090',
|
||||
'white' => '#FFFFFF',
|
||||
'yellow' => '#FFFF00',
|
||||
'aliceblue' => '#f0f8ff',
|
||||
'azure' => '#f0ffff',
|
||||
'bisque' => '#ffe4c4',
|
||||
'blanchedalmond' => '#ffebcd',
|
||||
'blueviolet' => '#8a2be2',
|
||||
'burlywood' => '#deb887',
|
||||
'chartreuse' => '#7fff00',
|
||||
'coral' => '#ff7f50',
|
||||
'cornsilk' => '#fff8dc',
|
||||
'cyan' => '#00ffff',
|
||||
'darkcyan' => '#008b8b',
|
||||
'darkgray' => '#a9a9a9',
|
||||
'darkgrey' => '#a9a9a9',
|
||||
'darkkhaki' => '#bdb76b',
|
||||
'darkolivegreen' => '#556b2f',
|
||||
'darkorchid' => '#9932cc',
|
||||
'darksalmon' => '#e9967a',
|
||||
'darkslateblue' => '#483d8b',
|
||||
'darkslategrey' => '#2f4f4f',
|
||||
'darkturquoise' => '#00ced1',
|
||||
'deeppink' => '#ff1493',
|
||||
'dimgray' => '#696969',
|
||||
'dimgrey' => '#696969',
|
||||
'floralwhite' => '#fffaf0',
|
||||
'ghostwhite' => '#f8f8ff',
|
||||
'goldenrod' => '#daa520',
|
||||
'grey' => '#808080',
|
||||
'honeydew' => '#f0fff0',
|
||||
'indianred' => '#cd5c5c',
|
||||
'ivory' => '#fffff0',
|
||||
'lavender' => '#e6e6fa',
|
||||
'lawngreen' => '#7cfc00',
|
||||
'lightblue' => '#add8e6',
|
||||
'lightcyan' => '#e0ffff',
|
||||
'lightgray' => '#d3d3d3',
|
||||
'lightgrey' => '#d3d3d3',
|
||||
'lightpink' => '#ffb6c1',
|
||||
'lightseagreen' => '#20b2aa',
|
||||
'lightslategrey' => '#778899',
|
||||
'lightsteelblue' => '#b0c4de',
|
||||
'linen' => '#faf0e6',
|
||||
'mediumblue' => '#0000cd',
|
||||
'mediumpurple' => '#9370db',
|
||||
'mediumslateblue' => '#7b68ee',
|
||||
'mediumturquoise' => '#48d1cc',
|
||||
'mistyrose' => '#ffe4e1',
|
||||
'navajowhite' => '#ffdead',
|
||||
'oldlace' => '#fdf5e6',
|
||||
'olivedrab' => '#6b8e23',
|
||||
'orangered' => '#ff4500',
|
||||
'palegoldenrod' => '#eee8aa',
|
||||
'paleturquoise' => '#afeeee',
|
||||
'papayawhip' => '#ffefd5',
|
||||
'peru' => '#cd853f',
|
||||
'plum' => '#dda0dd',
|
||||
'rosybrown' => '#bc8f8f',
|
||||
'saddlebrown' => '#8b4513',
|
||||
'sandybrown' => '#f4a460',
|
||||
'seashell' => '#fff5ee',
|
||||
'slateblue' => '#6a5acd',
|
||||
'slategrey' => '#708090',
|
||||
'snow' => '#fffafa',
|
||||
'tomato' => '#ff6347',
|
||||
'violet' => '#ee82ee',
|
||||
'wheat' => '#f5deb3',
|
||||
'whitesmoke' => '#f5f5f5',
|
||||
'yellowgreen' => '#9acd32',
|
||||
);
|
||||
}
|
4768
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php
vendored
Normal file
4768
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/CPdf.php
vendored
Normal file
File diff suppressed because it is too large
Load diff
486
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php
vendored
Normal file
486
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceCpdf.php
vendored
Normal file
|
@ -0,0 +1,486 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien M<EFBFBD>nager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Surface;
|
||||
|
||||
use Svg\Document;
|
||||
use Svg\Style;
|
||||
|
||||
class SurfaceCpdf implements SurfaceInterface
|
||||
{
|
||||
const DEBUG = false;
|
||||
|
||||
/** @var \CPdf\CPdf */
|
||||
private $canvas;
|
||||
|
||||
private $width;
|
||||
private $height;
|
||||
|
||||
/** @var Style */
|
||||
private $style;
|
||||
|
||||
public function __construct(Document $doc, $canvas = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$dimensions = $doc->getDimensions();
|
||||
$w = $dimensions["width"];
|
||||
$h = $dimensions["height"];
|
||||
|
||||
if (!$canvas) {
|
||||
$canvas = new \CPdf\CPdf(array(0, 0, $w, $h));
|
||||
$refl = new \ReflectionClass($canvas);
|
||||
$canvas->fontcache = realpath(dirname($refl->getFileName()) . "/../../fonts/")."/";
|
||||
}
|
||||
|
||||
// Flip PDF coordinate system so that the origin is in
|
||||
// the top left rather than the bottom left
|
||||
$canvas->transform(array(
|
||||
1, 0,
|
||||
0, -1,
|
||||
0, $h
|
||||
));
|
||||
|
||||
$this->width = $w;
|
||||
$this->height = $h;
|
||||
|
||||
$this->canvas = $canvas;
|
||||
}
|
||||
|
||||
function out()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
return $this->canvas->output();
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->save();
|
||||
}
|
||||
|
||||
public function restore()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->restore();
|
||||
}
|
||||
|
||||
public function scale($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->transform($x, 0, 0, $y, 0, 0);
|
||||
}
|
||||
|
||||
public function rotate($angle)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$a = deg2rad($angle);
|
||||
$cos_a = cos($a);
|
||||
$sin_a = sin($a);
|
||||
|
||||
$this->transform(
|
||||
$cos_a, $sin_a,
|
||||
-$sin_a, $cos_a,
|
||||
0, 0
|
||||
);
|
||||
}
|
||||
|
||||
public function translate($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->transform(
|
||||
1, 0,
|
||||
0, 1,
|
||||
$x, $y
|
||||
);
|
||||
}
|
||||
|
||||
public function transform($a, $b, $c, $d, $e, $f)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->canvas->transform(array($a, $b, $c, $d, $e, $f));
|
||||
}
|
||||
|
||||
public function beginPath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
// TODO: Implement beginPath() method.
|
||||
}
|
||||
|
||||
public function closePath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->closePath();
|
||||
}
|
||||
|
||||
public function fillStroke()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->fillStroke();
|
||||
}
|
||||
|
||||
public function clip()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->clip();
|
||||
}
|
||||
|
||||
public function fillText($text, $x, $y, $maxWidth = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->addText($x, $y, $this->style->fontSize, $text);
|
||||
}
|
||||
|
||||
public function strokeText($text, $x, $y, $maxWidth = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->addText($x, $y, $this->style->fontSize, $text);
|
||||
}
|
||||
|
||||
public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
if (strpos($image, "data:") === 0) {
|
||||
$parts = explode(',', $image, 2);
|
||||
|
||||
$data = $parts[1];
|
||||
$base64 = false;
|
||||
|
||||
$token = strtok($parts[0], ';');
|
||||
while ($token !== false) {
|
||||
if ($token == 'base64') {
|
||||
$base64 = true;
|
||||
}
|
||||
|
||||
$token = strtok(';');
|
||||
}
|
||||
|
||||
if ($base64) {
|
||||
$data = base64_decode($data);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$data = file_get_contents($image);
|
||||
}
|
||||
|
||||
$image = tempnam("", "svg");
|
||||
file_put_contents($image, $data);
|
||||
|
||||
$img = $this->image($image, $sx, $sy, $sw, $sh, "normal");
|
||||
|
||||
|
||||
unlink($image);
|
||||
}
|
||||
|
||||
public static function getimagesize($filename)
|
||||
{
|
||||
static $cache = array();
|
||||
|
||||
if (isset($cache[$filename])) {
|
||||
return $cache[$filename];
|
||||
}
|
||||
|
||||
list($width, $height, $type) = getimagesize($filename);
|
||||
|
||||
if ($width == null || $height == null) {
|
||||
$data = file_get_contents($filename, null, null, 0, 26);
|
||||
|
||||
if (substr($data, 0, 2) === "BM") {
|
||||
$meta = unpack('vtype/Vfilesize/Vreserved/Voffset/Vheadersize/Vwidth/Vheight', $data);
|
||||
$width = (int)$meta['width'];
|
||||
$height = (int)$meta['height'];
|
||||
$type = IMAGETYPE_BMP;
|
||||
}
|
||||
}
|
||||
|
||||
return $cache[$filename] = array($width, $height, $type);
|
||||
}
|
||||
|
||||
function image($img, $x, $y, $w, $h, $resolution = "normal")
|
||||
{
|
||||
list($width, $height, $type) = $this->getimagesize($img);
|
||||
|
||||
switch ($type) {
|
||||
case IMAGETYPE_JPEG:
|
||||
$this->canvas->addJpegFromFile($img, $x, $y - $h, $w, $h);
|
||||
break;
|
||||
|
||||
case IMAGETYPE_GIF:
|
||||
case IMAGETYPE_BMP:
|
||||
// @todo use cache for BMP and GIF
|
||||
$img = $this->_convert_gif_bmp_to_png($img, $type);
|
||||
|
||||
case IMAGETYPE_PNG:
|
||||
$this->canvas->addPngFromFile($img, $x, $y - $h, $w, $h);
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
public function lineTo($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->lineTo($x, $y);
|
||||
}
|
||||
|
||||
public function moveTo($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->moveTo($x, $y);
|
||||
}
|
||||
|
||||
public function quadraticCurveTo($cpx, $cpy, $x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
// FIXME not accurate
|
||||
$this->canvas->quadTo($cpx, $cpy, $x, $y);
|
||||
}
|
||||
|
||||
public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->curveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y);
|
||||
}
|
||||
|
||||
public function arcTo($x1, $y1, $x2, $y2, $radius)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
}
|
||||
|
||||
public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->ellipse($x, $y, $radius, $radius, 0, 8, $startAngle, $endAngle, false, false, false, true);
|
||||
}
|
||||
|
||||
public function circle($x, $y, $radius)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->ellipse($x, $y, $radius, $radius, 0, 8, 0, 360, true, false, false, false);
|
||||
}
|
||||
|
||||
public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->ellipse($x, $y, $radiusX, $radiusY, 0, 8, 0, 360, false, false, false, false);
|
||||
}
|
||||
|
||||
public function fillRect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->rect($x, $y, $w, $h);
|
||||
$this->fill();
|
||||
}
|
||||
|
||||
public function rect($x, $y, $w, $h, $rx = 0, $ry = 0)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$canvas = $this->canvas;
|
||||
|
||||
if ($rx <= 0.000001/* && $ry <= 0.000001*/) {
|
||||
$canvas->rect($x, $y, $w, $h);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$rx = min($rx, $w / 2);
|
||||
$rx = min($rx, $h / 2);
|
||||
|
||||
/* Define a path for a rectangle with corners rounded by a given radius.
|
||||
* Start from the lower left corner and proceed counterclockwise.
|
||||
*/
|
||||
$this->moveTo($x + $rx, $y);
|
||||
|
||||
/* Start of the arc segment in the lower right corner */
|
||||
$this->lineTo($x + $w - $rx, $y);
|
||||
|
||||
/* Arc segment in the lower right corner */
|
||||
$this->arc($x + $w - $rx, $y + $rx, $rx, 270, 360);
|
||||
|
||||
/* Start of the arc segment in the upper right corner */
|
||||
$this->lineTo($x + $w, $y + $h - $rx );
|
||||
|
||||
/* Arc segment in the upper right corner */
|
||||
$this->arc($x + $w - $rx, $y + $h - $rx, $rx, 0, 90);
|
||||
|
||||
/* Start of the arc segment in the upper left corner */
|
||||
$this->lineTo($x + $rx, $y + $h);
|
||||
|
||||
/* Arc segment in the upper left corner */
|
||||
$this->arc($x + $rx, $y + $h - $rx, $rx, 90, 180);
|
||||
|
||||
/* Start of the arc segment in the lower left corner */
|
||||
$this->lineTo($x , $y + $rx);
|
||||
|
||||
/* Arc segment in the lower left corner */
|
||||
$this->arc($x + $rx, $y + $rx, $rx, 180, 270);
|
||||
}
|
||||
|
||||
public function fill()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->fill();
|
||||
}
|
||||
|
||||
public function strokeRect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->rect($x, $y, $w, $h);
|
||||
$this->stroke();
|
||||
}
|
||||
|
||||
public function stroke()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->stroke();
|
||||
}
|
||||
|
||||
public function endPath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->endPath();
|
||||
}
|
||||
|
||||
public function measureText($text)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$style = $this->getStyle();
|
||||
$this->setFont($style->fontFamily, $style->fontStyle, $style->fontWeight);
|
||||
|
||||
return $this->canvas->getTextWidth($this->getStyle()->fontSize, $text);
|
||||
}
|
||||
|
||||
public function getStyle()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
return $this->style;
|
||||
}
|
||||
|
||||
public function setStyle(Style $style)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->style = $style;
|
||||
$canvas = $this->canvas;
|
||||
|
||||
if ($stroke = $style->stroke) {
|
||||
$canvas->setStrokeColor(array($stroke[0]/255, $stroke[1]/255, $stroke[2]/255), true);
|
||||
}
|
||||
|
||||
if ($fill = $style->fill) {
|
||||
$canvas->setColor(array($fill[0]/255, $fill[1]/255, $fill[2]/255), true);
|
||||
}
|
||||
|
||||
if ($fillRule = strtolower($style->fillRule)) {
|
||||
$canvas->setFillRule($fillRule);
|
||||
}
|
||||
|
||||
$opacity = $style->opacity;
|
||||
if ($opacity !== null && $opacity < 1.0) {
|
||||
$canvas->setLineTransparency("Normal", $opacity);
|
||||
$canvas->currentLineTransparency = null;
|
||||
|
||||
$canvas->setFillTransparency("Normal", $opacity);
|
||||
$canvas->currentFillTransparency = null;
|
||||
}
|
||||
else {
|
||||
$fillOpacity = $style->fillOpacity;
|
||||
if ($fillOpacity !== null && $fillOpacity < 1.0) {
|
||||
$canvas->setFillTransparency("Normal", $fillOpacity);
|
||||
$canvas->currentFillTransparency = null;
|
||||
}
|
||||
|
||||
$strokeOpacity = $style->strokeOpacity;
|
||||
if ($strokeOpacity !== null && $strokeOpacity < 1.0) {
|
||||
$canvas->setLineTransparency("Normal", $strokeOpacity);
|
||||
$canvas->currentLineTransparency = null;
|
||||
}
|
||||
}
|
||||
|
||||
$dashArray = null;
|
||||
if ($style->strokeDasharray) {
|
||||
$dashArray = preg_split('/\s*,\s*/', $style->strokeDasharray);
|
||||
}
|
||||
|
||||
$canvas->setLineStyle(
|
||||
$style->strokeWidth,
|
||||
$style->strokeLinecap,
|
||||
$style->strokeLinejoin,
|
||||
$dashArray
|
||||
);
|
||||
|
||||
$this->setFont($style->fontFamily, $style->fontStyle, $style->fontWeight);
|
||||
}
|
||||
|
||||
public function setFont($family, $style, $weight)
|
||||
{
|
||||
$map = array(
|
||||
"serif" => "Times",
|
||||
"sans-serif" => "Helvetica",
|
||||
"fantasy" => "Symbol",
|
||||
"cursive" => "Times",
|
||||
"monospace" => "Courier",
|
||||
|
||||
"arial" => "Helvetica",
|
||||
"verdana" => "Helvetica",
|
||||
);
|
||||
|
||||
$styleMap = array(
|
||||
'Helvetica' => array(
|
||||
'b' => 'Helvetica-Bold',
|
||||
'i' => 'Helvetica-Oblique',
|
||||
'bi' => 'Helvetica-BoldOblique',
|
||||
),
|
||||
'Courier' => array(
|
||||
'b' => 'Courier-Bold',
|
||||
'i' => 'Courier-Oblique',
|
||||
'bi' => 'Courier-BoldOblique',
|
||||
),
|
||||
'Times' => array(
|
||||
'' => 'Times-Roman',
|
||||
'b' => 'Times-Bold',
|
||||
'i' => 'Times-Italic',
|
||||
'bi' => 'Times-BoldItalic',
|
||||
),
|
||||
);
|
||||
|
||||
$family = strtolower($family);
|
||||
$style = strtolower($style);
|
||||
$weight = strtolower($weight);
|
||||
|
||||
if (isset($map[$family])) {
|
||||
$family = $map[$family];
|
||||
}
|
||||
|
||||
if (isset($styleMap[$family])) {
|
||||
$key = "";
|
||||
|
||||
if ($weight === "bold" || $weight === "bolder" || (is_numeric($weight) && $weight >= 600)) {
|
||||
$key .= "b";
|
||||
}
|
||||
|
||||
if ($style === "italic" || $style === "oblique") {
|
||||
$key .= "i";
|
||||
}
|
||||
|
||||
if (isset($styleMap[$family][$key])) {
|
||||
$family = $styleMap[$family][$key];
|
||||
}
|
||||
}
|
||||
|
||||
$this->canvas->selectFont("$family.afm");
|
||||
}
|
||||
}
|
308
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceGmagick.php
vendored
Normal file
308
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceGmagick.php
vendored
Normal file
|
@ -0,0 +1,308 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien M<EFBFBD>nager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Surface;
|
||||
|
||||
use Svg\Style;
|
||||
|
||||
class SurfaceGmagick implements SurfaceInterface
|
||||
{
|
||||
const DEBUG = false;
|
||||
|
||||
/** @var \GmagickDraw */
|
||||
private $canvas;
|
||||
|
||||
private $width;
|
||||
private $height;
|
||||
|
||||
/** @var Style */
|
||||
private $style;
|
||||
|
||||
public function __construct($w, $h)
|
||||
{
|
||||
if (self::DEBUG) {
|
||||
echo __FUNCTION__ . "\n";
|
||||
}
|
||||
$this->width = $w;
|
||||
$this->height = $h;
|
||||
|
||||
$canvas = new \GmagickDraw();
|
||||
|
||||
$this->canvas = $canvas;
|
||||
}
|
||||
|
||||
function out()
|
||||
{
|
||||
if (self::DEBUG) {
|
||||
echo __FUNCTION__ . "\n";
|
||||
}
|
||||
|
||||
$image = new \Gmagick();
|
||||
$image->newimage($this->width, $this->height);
|
||||
$image->drawimage($this->canvas);
|
||||
|
||||
$tmp = tempnam("", "gm");
|
||||
|
||||
$image->write($tmp);
|
||||
|
||||
return file_get_contents($tmp);
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
if (self::DEBUG) {
|
||||
echo __FUNCTION__ . "\n";
|
||||
}
|
||||
$this->canvas->save();
|
||||
}
|
||||
|
||||
public function restore()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->restore();
|
||||
}
|
||||
|
||||
public function scale($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->scale($x, $y);
|
||||
}
|
||||
|
||||
public function rotate($angle)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->rotate($angle);
|
||||
}
|
||||
|
||||
public function translate($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->translate($x, $y);
|
||||
}
|
||||
|
||||
public function transform($a, $b, $c, $d, $e, $f)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->concat($a, $b, $c, $d, $e, $f);
|
||||
}
|
||||
|
||||
public function beginPath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
// TODO: Implement beginPath() method.
|
||||
}
|
||||
|
||||
public function closePath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->closepath();
|
||||
}
|
||||
|
||||
public function fillStroke()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->fill_stroke();
|
||||
}
|
||||
|
||||
public function clip()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->clip();
|
||||
}
|
||||
|
||||
public function fillText($text, $x, $y, $maxWidth = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->set_text_pos($x, $y);
|
||||
$this->canvas->show($text);
|
||||
}
|
||||
|
||||
public function strokeText($text, $x, $y, $maxWidth = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
// TODO: Implement drawImage() method.
|
||||
}
|
||||
|
||||
public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
if (strpos($image, "data:") === 0) {
|
||||
$data = substr($image, strpos($image, ";") + 1);
|
||||
if (strpos($data, "base64") === 0) {
|
||||
$data = base64_decode(substr($data, 7));
|
||||
}
|
||||
|
||||
$image = tempnam("", "svg");
|
||||
file_put_contents($image, $data);
|
||||
}
|
||||
|
||||
$img = $this->canvas->load_image("auto", $image, "");
|
||||
|
||||
$sy = $sy - $sh;
|
||||
$this->canvas->fit_image($img, $sx, $sy, 'boxsize={' . "$sw $sh" . '} fitmethod=entire');
|
||||
}
|
||||
|
||||
public function lineTo($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->lineto($x, $y);
|
||||
}
|
||||
|
||||
public function moveTo($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->moveto($x, $y);
|
||||
}
|
||||
|
||||
public function quadraticCurveTo($cpx, $cpy, $x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
// TODO: Implement quadraticCurveTo() method.
|
||||
}
|
||||
|
||||
public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->curveto($cp1x, $cp1y, $cp2x, $cp2y, $x, $y);
|
||||
}
|
||||
|
||||
public function arcTo($x1, $y1, $x2, $y2, $radius)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
}
|
||||
|
||||
public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->arc($x, $y, $radius, $startAngle, $endAngle);
|
||||
}
|
||||
|
||||
public function circle($x, $y, $radius)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->circle($x, $y, $radius);
|
||||
}
|
||||
|
||||
public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->ellipse($x, $y, $radiusX, $radiusY);
|
||||
}
|
||||
|
||||
public function fillRect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->rect($x, $y, $w, $h);
|
||||
$this->fill();
|
||||
}
|
||||
|
||||
public function rect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->rect($x, $y, $w, $h);
|
||||
}
|
||||
|
||||
public function fill()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->fill();
|
||||
}
|
||||
|
||||
public function strokeRect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->rect($x, $y, $w, $h);
|
||||
$this->stroke();
|
||||
}
|
||||
|
||||
public function stroke()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->stroke();
|
||||
}
|
||||
|
||||
public function endPath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
//$this->canvas->endPath();
|
||||
}
|
||||
|
||||
public function measureText($text)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$style = $this->getStyle();
|
||||
$font = $this->getFont($style->fontFamily, $style->fontStyle);
|
||||
|
||||
return $this->canvas->stringwidth($text, $font, $this->getStyle()->fontSize);
|
||||
}
|
||||
|
||||
public function getStyle()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
return $this->style;
|
||||
}
|
||||
|
||||
public function setStyle(Style $style)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->style = $style;
|
||||
$canvas = $this->canvas;
|
||||
|
||||
if ($stroke = $style->stroke) {
|
||||
$canvas->setcolor("stroke", "rgb", $stroke[0] / 255, $stroke[1] / 255, $stroke[2] / 255, null);
|
||||
}
|
||||
|
||||
if ($fill = $style->fill) {
|
||||
// $canvas->setcolor("fill", "rgb", $fill[0] / 255, $fill[1] / 255, $fill[2] / 255, null);
|
||||
}
|
||||
|
||||
$opts = array();
|
||||
if ($style->strokeWidth > 0.000001) {
|
||||
$opts[] = "linewidth=$style->strokeWidth";
|
||||
}
|
||||
|
||||
if (in_array($style->strokeLinecap, array("butt", "round", "projecting"))) {
|
||||
$opts[] = "linecap=$style->strokeLinecap";
|
||||
}
|
||||
|
||||
if (in_array($style->strokeLinejoin, array("miter", "round", "bevel"))) {
|
||||
$opts[] = "linejoin=$style->strokeLinejoin";
|
||||
}
|
||||
|
||||
$canvas->set_graphics_option(implode(" ", $opts));
|
||||
|
||||
$font = $this->getFont($style->fontFamily, $style->fontStyle);
|
||||
$canvas->setfont($font, $style->fontSize);
|
||||
}
|
||||
|
||||
private function getFont($family, $style)
|
||||
{
|
||||
$map = array(
|
||||
"serif" => "Times",
|
||||
"sans-serif" => "Helvetica",
|
||||
"fantasy" => "Symbol",
|
||||
"cursive" => "serif",
|
||||
"monospance" => "Courier",
|
||||
);
|
||||
|
||||
$family = strtolower($family);
|
||||
if (isset($map[$family])) {
|
||||
$family = $map[$family];
|
||||
}
|
||||
|
||||
return $this->canvas->load_font($family, "unicode", "fontstyle=$style");
|
||||
}
|
||||
|
||||
public function setFont($family, $style, $weight)
|
||||
{
|
||||
// TODO: Implement setFont() method.
|
||||
}
|
||||
}
|
90
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php
vendored
Normal file
90
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfaceInterface.php
vendored
Normal file
|
@ -0,0 +1,90 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien M<EFBFBD>nager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Surface;
|
||||
|
||||
use Svg\Style;
|
||||
|
||||
/**
|
||||
* Interface Surface, like CanvasRenderingContext2D
|
||||
*
|
||||
* @package Svg
|
||||
*/
|
||||
interface SurfaceInterface
|
||||
{
|
||||
public function save();
|
||||
|
||||
public function restore();
|
||||
|
||||
// transformations (default transform is the identity matrix)
|
||||
public function scale($x, $y);
|
||||
|
||||
public function rotate($angle);
|
||||
|
||||
public function translate($x, $y);
|
||||
|
||||
public function transform($a, $b, $c, $d, $e, $f);
|
||||
|
||||
// path ends
|
||||
public function beginPath();
|
||||
|
||||
public function closePath();
|
||||
|
||||
public function fill();
|
||||
|
||||
public function stroke();
|
||||
|
||||
public function endPath();
|
||||
|
||||
public function fillStroke();
|
||||
|
||||
public function clip();
|
||||
|
||||
// text (see also the CanvasDrawingStyles interface)
|
||||
public function fillText($text, $x, $y, $maxWidth = null);
|
||||
|
||||
public function strokeText($text, $x, $y, $maxWidth = null);
|
||||
|
||||
public function measureText($text);
|
||||
|
||||
// drawing images
|
||||
public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null);
|
||||
|
||||
// paths
|
||||
public function lineTo($x, $y);
|
||||
|
||||
public function moveTo($x, $y);
|
||||
|
||||
public function quadraticCurveTo($cpx, $cpy, $x, $y);
|
||||
|
||||
public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y);
|
||||
|
||||
public function arcTo($x1, $y1, $x2, $y2, $radius);
|
||||
|
||||
public function circle($x, $y, $radius);
|
||||
|
||||
public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false);
|
||||
|
||||
public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise);
|
||||
|
||||
// Rectangle
|
||||
public function rect($x, $y, $w, $h, $rx = 0, $ry = 0);
|
||||
|
||||
public function fillRect($x, $y, $w, $h);
|
||||
|
||||
public function strokeRect($x, $y, $w, $h);
|
||||
|
||||
public function setStyle(Style $style);
|
||||
|
||||
/**
|
||||
* @return Style
|
||||
*/
|
||||
public function getStyle();
|
||||
|
||||
public function setFont($family, $style, $weight);
|
||||
}
|
422
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php
vendored
Normal file
422
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Surface/SurfacePDFLib.php
vendored
Normal file
|
@ -0,0 +1,422 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien M<EFBFBD>nager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Surface;
|
||||
|
||||
use Svg\Style;
|
||||
use Svg\Document;
|
||||
|
||||
class SurfacePDFLib implements SurfaceInterface
|
||||
{
|
||||
const DEBUG = false;
|
||||
|
||||
private $canvas;
|
||||
|
||||
private $width;
|
||||
private $height;
|
||||
|
||||
/** @var Style */
|
||||
private $style;
|
||||
|
||||
public function __construct(Document $doc, $canvas = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$dimensions = $doc->getDimensions();
|
||||
$w = $dimensions["width"];
|
||||
$h = $dimensions["height"];
|
||||
|
||||
if (!$canvas) {
|
||||
$canvas = new \PDFlib();
|
||||
|
||||
/* all strings are expected as utf8 */
|
||||
$canvas->set_option("stringformat=utf8");
|
||||
$canvas->set_option("errorpolicy=return");
|
||||
|
||||
/* open new PDF file; insert a file name to create the PDF on disk */
|
||||
if ($canvas->begin_document("", "") == 0) {
|
||||
die("Error: " . $canvas->get_errmsg());
|
||||
}
|
||||
$canvas->set_info("Creator", "PDFlib starter sample");
|
||||
$canvas->set_info("Title", "starter_graphics");
|
||||
|
||||
$canvas->begin_page_ext($w, $h, "");
|
||||
}
|
||||
|
||||
// Flip PDF coordinate system so that the origin is in
|
||||
// the top left rather than the bottom left
|
||||
$canvas->setmatrix(
|
||||
1, 0,
|
||||
0, -1,
|
||||
0, $h
|
||||
);
|
||||
|
||||
$this->width = $w;
|
||||
$this->height = $h;
|
||||
|
||||
$this->canvas = $canvas;
|
||||
}
|
||||
|
||||
function out()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->canvas->end_page_ext("");
|
||||
$this->canvas->end_document("");
|
||||
|
||||
return $this->canvas->get_buffer();
|
||||
}
|
||||
|
||||
public function save()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->save();
|
||||
}
|
||||
|
||||
public function restore()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->restore();
|
||||
}
|
||||
|
||||
public function scale($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->scale($x, $y);
|
||||
}
|
||||
|
||||
public function rotate($angle)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->rotate($angle);
|
||||
}
|
||||
|
||||
public function translate($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->translate($x, $y);
|
||||
}
|
||||
|
||||
public function transform($a, $b, $c, $d, $e, $f)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->concat($a, $b, $c, $d, $e, $f);
|
||||
}
|
||||
|
||||
public function beginPath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
// TODO: Implement beginPath() method.
|
||||
}
|
||||
|
||||
public function closePath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->closepath();
|
||||
}
|
||||
|
||||
public function fillStroke()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->fill_stroke();
|
||||
}
|
||||
|
||||
public function clip()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->clip();
|
||||
}
|
||||
|
||||
public function fillText($text, $x, $y, $maxWidth = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->set_text_pos($x, $y);
|
||||
$this->canvas->show($text);
|
||||
}
|
||||
|
||||
public function strokeText($text, $x, $y, $maxWidth = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
// TODO: Implement drawImage() method.
|
||||
}
|
||||
|
||||
public function drawImage($image, $sx, $sy, $sw = null, $sh = null, $dx = null, $dy = null, $dw = null, $dh = null)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
if (strpos($image, "data:") === 0) {
|
||||
$data = substr($image, strpos($image, ";") + 1);
|
||||
if (strpos($data, "base64") === 0) {
|
||||
$data = base64_decode(substr($data, 7));
|
||||
}
|
||||
}
|
||||
else {
|
||||
$data = file_get_contents($image);
|
||||
}
|
||||
|
||||
$image = tempnam("", "svg");
|
||||
file_put_contents($image, $data);
|
||||
|
||||
$img = $this->canvas->load_image("auto", $image, "");
|
||||
|
||||
$sy = $sy - $sh;
|
||||
$this->canvas->fit_image($img, $sx, $sy, 'boxsize={' . "$sw $sh" . '} fitmethod=entire');
|
||||
|
||||
unlink($image);
|
||||
}
|
||||
|
||||
public function lineTo($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->lineto($x, $y);
|
||||
}
|
||||
|
||||
public function moveTo($x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->moveto($x, $y);
|
||||
}
|
||||
|
||||
public function quadraticCurveTo($cpx, $cpy, $x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
// FIXME not accurate
|
||||
$this->canvas->curveTo($cpx, $cpy, $cpx, $cpy, $x, $y);
|
||||
}
|
||||
|
||||
public function bezierCurveTo($cp1x, $cp1y, $cp2x, $cp2y, $x, $y)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->curveto($cp1x, $cp1y, $cp2x, $cp2y, $x, $y);
|
||||
}
|
||||
|
||||
public function arcTo($x1, $y1, $x2, $y2, $radius)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
}
|
||||
|
||||
public function arc($x, $y, $radius, $startAngle, $endAngle, $anticlockwise = false)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->arc($x, $y, $radius, $startAngle, $endAngle);
|
||||
}
|
||||
|
||||
public function circle($x, $y, $radius)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->circle($x, $y, $radius);
|
||||
}
|
||||
|
||||
public function ellipse($x, $y, $radiusX, $radiusY, $rotation, $startAngle, $endAngle, $anticlockwise)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->ellipse($x, $y, $radiusX, $radiusY);
|
||||
}
|
||||
|
||||
public function fillRect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->rect($x, $y, $w, $h);
|
||||
$this->fill();
|
||||
}
|
||||
|
||||
public function rect($x, $y, $w, $h, $rx = 0, $ry = 0)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$canvas = $this->canvas;
|
||||
|
||||
if ($rx <= 0.000001/* && $ry <= 0.000001*/) {
|
||||
$canvas->rect($x, $y, $w, $h);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
/* Define a path for a rectangle with corners rounded by a given radius.
|
||||
* Start from the lower left corner and proceed counterclockwise.
|
||||
*/
|
||||
$canvas->moveto($x + $rx, $y);
|
||||
|
||||
/* Start of the arc segment in the lower right corner */
|
||||
$canvas->lineto($x + $w - $rx, $y);
|
||||
|
||||
/* Arc segment in the lower right corner */
|
||||
$canvas->arc($x + $w - $rx, $y + $rx, $rx, 270, 360);
|
||||
|
||||
/* Start of the arc segment in the upper right corner */
|
||||
$canvas->lineto($x + $w, $y + $h - $rx );
|
||||
|
||||
/* Arc segment in the upper right corner */
|
||||
$canvas->arc($x + $w - $rx, $y + $h - $rx, $rx, 0, 90);
|
||||
|
||||
/* Start of the arc segment in the upper left corner */
|
||||
$canvas->lineto($x + $rx, $y + $h);
|
||||
|
||||
/* Arc segment in the upper left corner */
|
||||
$canvas->arc($x + $rx, $y + $h - $rx, $rx, 90, 180);
|
||||
|
||||
/* Start of the arc segment in the lower left corner */
|
||||
$canvas->lineto($x , $y + $rx);
|
||||
|
||||
/* Arc segment in the lower left corner */
|
||||
$canvas->arc($x + $rx, $y + $rx, $rx, 180, 270);
|
||||
}
|
||||
|
||||
public function fill()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->fill();
|
||||
}
|
||||
|
||||
public function strokeRect($x, $y, $w, $h)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->rect($x, $y, $w, $h);
|
||||
$this->stroke();
|
||||
}
|
||||
|
||||
public function stroke()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->stroke();
|
||||
}
|
||||
|
||||
public function endPath()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$this->canvas->endPath();
|
||||
}
|
||||
|
||||
public function measureText($text)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
$style = $this->getStyle();
|
||||
$font = $this->getFont($style->fontFamily, $style->fontStyle);
|
||||
|
||||
return $this->canvas->stringwidth($text, $font, $this->getStyle()->fontSize);
|
||||
}
|
||||
|
||||
public function getStyle()
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
return $this->style;
|
||||
}
|
||||
|
||||
public function setStyle(Style $style)
|
||||
{
|
||||
if (self::DEBUG) echo __FUNCTION__ . "\n";
|
||||
|
||||
$this->style = $style;
|
||||
$canvas = $this->canvas;
|
||||
|
||||
if (($stroke = $style->stroke) && $stroke !== "none") {
|
||||
$canvas->setcolor(
|
||||
"stroke",
|
||||
"rgb",
|
||||
$stroke[0] / 255,
|
||||
$stroke[1] / 255,
|
||||
$stroke[2] / 255,
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
if (($fill = $style->fill) && $fill !== "none") {
|
||||
$canvas->setcolor(
|
||||
"fill",
|
||||
"rgb",
|
||||
$fill[0] / 255,
|
||||
$fill[1] / 255,
|
||||
$fill[2] / 255,
|
||||
null
|
||||
);
|
||||
}
|
||||
|
||||
if ($fillRule = strtolower($style->fillRule)) {
|
||||
$map = array(
|
||||
"nonzero" => "winding",
|
||||
"evenodd" => "evenodd",
|
||||
);
|
||||
|
||||
if (isset($map[$fillRule])) {
|
||||
$fillRule = $map[$fillRule];
|
||||
|
||||
$canvas->set_parameter("fillrule", $fillRule);
|
||||
}
|
||||
}
|
||||
|
||||
$opts = array();
|
||||
if ($style->strokeWidth > 0.000001) {
|
||||
$opts[] = "linewidth=$style->strokeWidth";
|
||||
}
|
||||
|
||||
if (in_array($style->strokeLinecap, array("butt", "round", "projecting"))) {
|
||||
$opts[] = "linecap=$style->strokeLinecap";
|
||||
}
|
||||
|
||||
if (in_array($style->strokeLinejoin, array("miter", "round", "bevel"))) {
|
||||
$opts[] = "linejoin=$style->strokeLinejoin";
|
||||
}
|
||||
|
||||
$canvas->set_graphics_option(implode(" ", $opts));
|
||||
|
||||
$opts = array();
|
||||
$opacity = $style->opacity;
|
||||
if ($opacity !== null && $opacity < 1.0) {
|
||||
$opts[] = "opacityfill=$opacity";
|
||||
$opts[] = "opacitystroke=$opacity";
|
||||
}
|
||||
else {
|
||||
$fillOpacity = $style->fillOpacity;
|
||||
if ($fillOpacity !== null && $fillOpacity < 1.0) {
|
||||
$opts[] = "opacityfill=$fillOpacity";
|
||||
}
|
||||
|
||||
$strokeOpacity = $style->strokeOpacity;
|
||||
if ($strokeOpacity !== null && $strokeOpacity < 1.0) {
|
||||
$opts[] = "opacitystroke=$strokeOpacity";
|
||||
}
|
||||
}
|
||||
|
||||
if (count($opts)) {
|
||||
$gs = $canvas->create_gstate(implode(" ", $opts));
|
||||
$canvas->set_gstate($gs);
|
||||
}
|
||||
|
||||
$font = $this->getFont($style->fontFamily, $style->fontStyle);
|
||||
if ($font) {
|
||||
$canvas->setfont($font, $style->fontSize);
|
||||
}
|
||||
}
|
||||
|
||||
private function getFont($family, $style)
|
||||
{
|
||||
$map = array(
|
||||
"serif" => "Times",
|
||||
"sans-serif" => "Helvetica",
|
||||
"fantasy" => "Symbol",
|
||||
"cursive" => "Times",
|
||||
"monospace" => "Courier",
|
||||
|
||||
"arial" => "Helvetica",
|
||||
"verdana" => "Helvetica",
|
||||
);
|
||||
|
||||
$family = strtolower($family);
|
||||
if (isset($map[$family])) {
|
||||
$family = $map[$family];
|
||||
}
|
||||
|
||||
return $this->canvas->load_font($family, "unicode", "fontstyle=$style");
|
||||
}
|
||||
|
||||
public function setFont($family, $style, $weight)
|
||||
{
|
||||
// TODO: Implement setFont() method.
|
||||
}
|
||||
}
|
183
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php
vendored
Normal file
183
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/AbstractTag.php
vendored
Normal file
|
@ -0,0 +1,183 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
use Svg\Document;
|
||||
use Svg\Style;
|
||||
|
||||
abstract class AbstractTag
|
||||
{
|
||||
/** @var Document */
|
||||
protected $document;
|
||||
|
||||
public $tagName;
|
||||
|
||||
/** @var Style */
|
||||
protected $style;
|
||||
|
||||
protected $attributes;
|
||||
|
||||
protected $hasShape = true;
|
||||
|
||||
/** @var self[] */
|
||||
protected $children = array();
|
||||
|
||||
public function __construct(Document $document, $tagName)
|
||||
{
|
||||
$this->document = $document;
|
||||
$this->tagName = $tagName;
|
||||
}
|
||||
|
||||
public function getDocument(){
|
||||
return $this->document;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Group|null
|
||||
*/
|
||||
public function getParentGroup() {
|
||||
$stack = $this->getDocument()->getStack();
|
||||
for ($i = count($stack)-2; $i >= 0; $i--) {
|
||||
$tag = $stack[$i];
|
||||
|
||||
if ($tag instanceof Group || $tag instanceof Document) {
|
||||
return $tag;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public function handle($attributes)
|
||||
{
|
||||
$this->attributes = $attributes;
|
||||
|
||||
if (!$this->getDocument()->inDefs) {
|
||||
$this->before($attributes);
|
||||
$this->start($attributes);
|
||||
}
|
||||
}
|
||||
|
||||
public function handleEnd()
|
||||
{
|
||||
if (!$this->getDocument()->inDefs) {
|
||||
$this->end();
|
||||
$this->after();
|
||||
}
|
||||
}
|
||||
|
||||
protected function before($attributes)
|
||||
{
|
||||
}
|
||||
|
||||
protected function start($attributes)
|
||||
{
|
||||
}
|
||||
|
||||
protected function end()
|
||||
{
|
||||
}
|
||||
|
||||
protected function after()
|
||||
{
|
||||
}
|
||||
|
||||
public function getAttributes()
|
||||
{
|
||||
return $this->attributes;
|
||||
}
|
||||
|
||||
protected function setStyle(Style $style)
|
||||
{
|
||||
$this->style = $style;
|
||||
|
||||
if ($style->display === "none") {
|
||||
$this->hasShape = false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Style
|
||||
*/
|
||||
public function getStyle()
|
||||
{
|
||||
return $this->style;
|
||||
}
|
||||
|
||||
/**
|
||||
* Make a style object from the tag and its attributes
|
||||
*
|
||||
* @param array $attributes
|
||||
*
|
||||
* @return Style
|
||||
*/
|
||||
protected function makeStyle($attributes) {
|
||||
$style = new Style();
|
||||
$style->inherit($this);
|
||||
$style->fromStyleSheets($this, $attributes);
|
||||
$style->fromAttributes($attributes);
|
||||
|
||||
return $style;
|
||||
}
|
||||
|
||||
protected function applyTransform($attributes)
|
||||
{
|
||||
|
||||
if (isset($attributes["transform"])) {
|
||||
$surface = $this->document->getSurface();
|
||||
|
||||
$transform = $attributes["transform"];
|
||||
|
||||
$match = array();
|
||||
preg_match_all(
|
||||
'/(matrix|translate|scale|rotate|skewX|skewY)\((.*?)\)/is',
|
||||
$transform,
|
||||
$match,
|
||||
PREG_SET_ORDER
|
||||
);
|
||||
|
||||
$transformations = array();
|
||||
if (count($match[0])) {
|
||||
foreach ($match as $_match) {
|
||||
$arguments = preg_split('/[ ,]+/', $_match[2]);
|
||||
array_unshift($arguments, $_match[1]);
|
||||
$transformations[] = $arguments;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($transformations as $t) {
|
||||
switch ($t[0]) {
|
||||
case "matrix":
|
||||
$surface->transform($t[1], $t[2], $t[3], $t[4], $t[5], $t[6]);
|
||||
break;
|
||||
|
||||
case "translate":
|
||||
$surface->translate($t[1], isset($t[2]) ? $t[2] : 0);
|
||||
break;
|
||||
|
||||
case "scale":
|
||||
$surface->scale($t[1], isset($t[2]) ? $t[2] : $t[1]);
|
||||
break;
|
||||
|
||||
case "rotate":
|
||||
$surface->rotate($t[1]);
|
||||
break;
|
||||
|
||||
case "skewX":
|
||||
$surface->skewX($t[1]);
|
||||
break;
|
||||
|
||||
case "skewY":
|
||||
$surface->skewY($t[1]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
14
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php
vendored
Normal file
14
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Anchor.php
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Anchor extends Group
|
||||
{
|
||||
|
||||
}
|
31
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php
vendored
Normal file
31
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Circle.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Circle extends Shape
|
||||
{
|
||||
protected $cx = 0;
|
||||
protected $cy = 0;
|
||||
protected $r;
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
if (isset($attributes['cx'])) {
|
||||
$this->cx = $attributes['cx'];
|
||||
}
|
||||
if (isset($attributes['cy'])) {
|
||||
$this->cy = $attributes['cy'];
|
||||
}
|
||||
if (isset($attributes['r'])) {
|
||||
$this->r = $attributes['r'];
|
||||
}
|
||||
|
||||
$this->document->getSurface()->circle($this->cx, $this->cy, $this->r);
|
||||
}
|
||||
}
|
33
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php
vendored
Normal file
33
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/ClipPath.php
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
use Svg\Style;
|
||||
|
||||
class ClipPath extends AbstractTag
|
||||
{
|
||||
protected function before($attributes)
|
||||
{
|
||||
$surface = $this->document->getSurface();
|
||||
|
||||
$surface->save();
|
||||
|
||||
$style = $this->makeStyle($attributes);
|
||||
|
||||
$this->setStyle($style);
|
||||
$surface->setStyle($style);
|
||||
|
||||
$this->applyTransform($attributes);
|
||||
}
|
||||
|
||||
protected function after()
|
||||
{
|
||||
$this->document->getSurface()->restore();
|
||||
}
|
||||
}
|
37
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php
vendored
Normal file
37
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Ellipse.php
vendored
Normal file
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Ellipse extends Shape
|
||||
{
|
||||
protected $cx = 0;
|
||||
protected $cy = 0;
|
||||
protected $rx = 0;
|
||||
protected $ry = 0;
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
parent::start($attributes);
|
||||
|
||||
if (isset($attributes['cx'])) {
|
||||
$this->cx = $attributes['cx'];
|
||||
}
|
||||
if (isset($attributes['cy'])) {
|
||||
$this->cy = $attributes['cy'];
|
||||
}
|
||||
if (isset($attributes['rx'])) {
|
||||
$this->rx = $attributes['rx'];
|
||||
}
|
||||
if (isset($attributes['ry'])) {
|
||||
$this->ry = $attributes['ry'];
|
||||
}
|
||||
|
||||
$this->document->getSurface()->ellipse($this->cx, $this->cy, $this->rx, $this->ry, 0, 0, 360, false);
|
||||
}
|
||||
}
|
33
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php
vendored
Normal file
33
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Group.php
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
use Svg\Style;
|
||||
|
||||
class Group extends AbstractTag
|
||||
{
|
||||
protected function before($attributes)
|
||||
{
|
||||
$surface = $this->document->getSurface();
|
||||
|
||||
$surface->save();
|
||||
|
||||
$style = $this->makeStyle($attributes);
|
||||
|
||||
$this->setStyle($style);
|
||||
$surface->setStyle($style);
|
||||
|
||||
$this->applyTransform($attributes);
|
||||
}
|
||||
|
||||
protected function after()
|
||||
{
|
||||
$this->document->getSurface()->restore();
|
||||
}
|
||||
}
|
62
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php
vendored
Normal file
62
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Image.php
vendored
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Image extends AbstractTag
|
||||
{
|
||||
protected $x = 0;
|
||||
protected $y = 0;
|
||||
protected $width = 0;
|
||||
protected $height = 0;
|
||||
protected $href = null;
|
||||
|
||||
protected function before($attributes)
|
||||
{
|
||||
parent::before($attributes);
|
||||
|
||||
$surface = $this->document->getSurface();
|
||||
$surface->save();
|
||||
|
||||
$this->applyTransform($attributes);
|
||||
}
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
$document = $this->document;
|
||||
$height = $this->document->getHeight();
|
||||
$this->y = $height;
|
||||
|
||||
if (isset($attributes['x'])) {
|
||||
$this->x = $attributes['x'];
|
||||
}
|
||||
if (isset($attributes['y'])) {
|
||||
$this->y = $height - $attributes['y'];
|
||||
}
|
||||
|
||||
if (isset($attributes['width'])) {
|
||||
$this->width = $attributes['width'];
|
||||
}
|
||||
if (isset($attributes['height'])) {
|
||||
$this->height = $attributes['height'];
|
||||
}
|
||||
|
||||
if (isset($attributes['xlink:href'])) {
|
||||
$this->href = $attributes['xlink:href'];
|
||||
}
|
||||
|
||||
$document->getSurface()->transform(1, 0, 0, -1, 0, $height);
|
||||
|
||||
$document->getSurface()->drawImage($this->href, $this->x, $this->y, $this->width, $this->height);
|
||||
}
|
||||
|
||||
protected function after()
|
||||
{
|
||||
$this->document->getSurface()->restore();
|
||||
}
|
||||
}
|
38
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php
vendored
Normal file
38
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Line.php
vendored
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Line extends Shape
|
||||
{
|
||||
protected $x1 = 0;
|
||||
protected $y1 = 0;
|
||||
|
||||
protected $x2 = 0;
|
||||
protected $y2 = 0;
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
if (isset($attributes['x1'])) {
|
||||
$this->x1 = $attributes['x1'];
|
||||
}
|
||||
if (isset($attributes['y1'])) {
|
||||
$this->y1 = $attributes['y1'];
|
||||
}
|
||||
if (isset($attributes['x2'])) {
|
||||
$this->x2 = $attributes['x2'];
|
||||
}
|
||||
if (isset($attributes['y2'])) {
|
||||
$this->y2 = $attributes['y2'];
|
||||
}
|
||||
|
||||
$surface = $this->document->getSurface();
|
||||
$surface->moveTo($this->x1, $this->y1);
|
||||
$surface->lineTo($this->x2, $this->y2);
|
||||
}
|
||||
}
|
83
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php
vendored
Normal file
83
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/LinearGradient.php
vendored
Normal file
|
@ -0,0 +1,83 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
|
||||
use Svg\Gradient\Stop;
|
||||
use Svg\Style;
|
||||
|
||||
class LinearGradient extends AbstractTag
|
||||
{
|
||||
protected $x1;
|
||||
protected $y1;
|
||||
protected $x2;
|
||||
protected $y2;
|
||||
|
||||
/** @var Stop[] */
|
||||
protected $stops = array();
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
parent::start($attributes);
|
||||
|
||||
if (isset($attributes['x1'])) {
|
||||
$this->x1 = $attributes['x1'];
|
||||
}
|
||||
if (isset($attributes['y1'])) {
|
||||
$this->y1 = $attributes['y1'];
|
||||
}
|
||||
if (isset($attributes['x2'])) {
|
||||
$this->x2 = $attributes['x2'];
|
||||
}
|
||||
if (isset($attributes['y2'])) {
|
||||
$this->y2 = $attributes['y2'];
|
||||
}
|
||||
}
|
||||
|
||||
public function getStops() {
|
||||
if (empty($this->stops)) {
|
||||
foreach ($this->children as $_child) {
|
||||
if ($_child->tagName != "stop") {
|
||||
continue;
|
||||
}
|
||||
|
||||
$_stop = new Stop();
|
||||
$_attributes = $_child->attributes;
|
||||
|
||||
// Style
|
||||
if (isset($_attributes["style"])) {
|
||||
$_style = Style::parseCssStyle($_attributes["style"]);
|
||||
|
||||
if (isset($_style["stop-color"])) {
|
||||
$_stop->color = Style::parseColor($_style["stop-color"]);
|
||||
}
|
||||
|
||||
if (isset($_style["stop-opacity"])) {
|
||||
$_stop->opacity = max(0, min(1.0, $_style["stop-opacity"]));
|
||||
}
|
||||
}
|
||||
|
||||
// Attributes
|
||||
if (isset($_attributes["offset"])) {
|
||||
$_stop->offset = $_attributes["offset"];
|
||||
}
|
||||
if (isset($_attributes["stop-color"])) {
|
||||
$_stop->color = Style::parseColor($_attributes["stop-color"]);
|
||||
}
|
||||
if (isset($_attributes["stop-opacity"])) {
|
||||
$_stop->opacity = max(0, min(1.0, $_attributes["stop-opacity"]));
|
||||
}
|
||||
|
||||
$this->stops[] = $_stop;
|
||||
}
|
||||
}
|
||||
|
||||
return $this->stops;
|
||||
}
|
||||
}
|
528
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php
vendored
Normal file
528
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Path.php
vendored
Normal file
|
@ -0,0 +1,528 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
use Svg\Surface\SurfaceInterface;
|
||||
|
||||
class Path extends Shape
|
||||
{
|
||||
static $commandLengths = array(
|
||||
'm' => 2,
|
||||
'l' => 2,
|
||||
'h' => 1,
|
||||
'v' => 1,
|
||||
'c' => 6,
|
||||
's' => 4,
|
||||
'q' => 4,
|
||||
't' => 2,
|
||||
'a' => 7,
|
||||
);
|
||||
|
||||
static $repeatedCommands = array(
|
||||
'm' => 'l',
|
||||
'M' => 'L',
|
||||
);
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
if (!isset($attributes['d'])) {
|
||||
$this->hasShape = false;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$commands = array();
|
||||
preg_match_all('/([MZLHVCSQTAmzlhvcsqta])([eE ,\-.\d]+)*/', $attributes['d'], $commands, PREG_SET_ORDER);
|
||||
|
||||
$path = array();
|
||||
foreach ($commands as $c) {
|
||||
if (count($c) == 3) {
|
||||
$arguments = array();
|
||||
preg_match_all('/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/i', $c[2], $arguments, PREG_PATTERN_ORDER);
|
||||
$item = $arguments[0];
|
||||
$commandLower = strtolower($c[1]);
|
||||
|
||||
if (
|
||||
isset(self::$commandLengths[$commandLower]) &&
|
||||
($commandLength = self::$commandLengths[$commandLower]) &&
|
||||
count($item) > $commandLength
|
||||
) {
|
||||
$repeatedCommand = isset(self::$repeatedCommands[$c[1]]) ? self::$repeatedCommands[$c[1]] : $c[1];
|
||||
$command = $c[1];
|
||||
|
||||
for ($k = 0, $klen = count($item); $k < $klen; $k += $commandLength) {
|
||||
$_item = array_slice($item, $k, $k + $commandLength);
|
||||
array_unshift($_item, $command);
|
||||
$path[] = $_item;
|
||||
|
||||
$command = $repeatedCommand;
|
||||
}
|
||||
} else {
|
||||
array_unshift($item, $c[1]);
|
||||
$path[] = $item;
|
||||
}
|
||||
|
||||
} else {
|
||||
$item = array($c[1]);
|
||||
|
||||
$path[] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
$surface = $this->document->getSurface();
|
||||
|
||||
// From https://github.com/kangax/fabric.js/blob/master/src/shapes/path.class.js
|
||||
$current = null; // current instruction
|
||||
$previous = null;
|
||||
$subpathStartX = 0;
|
||||
$subpathStartY = 0;
|
||||
$x = 0; // current x
|
||||
$y = 0; // current y
|
||||
$controlX = 0; // current control point x
|
||||
$controlY = 0; // current control point y
|
||||
$tempX = null;
|
||||
$tempY = null;
|
||||
$tempControlX = null;
|
||||
$tempControlY = null;
|
||||
$l = 0; //-((this.width / 2) + $this.pathOffset.x),
|
||||
$t = 0; //-((this.height / 2) + $this.pathOffset.y),
|
||||
$methodName = null;
|
||||
|
||||
foreach ($path as $current) {
|
||||
switch ($current[0]) { // first letter
|
||||
case 'l': // lineto, relative
|
||||
$x += $current[1];
|
||||
$y += $current[2];
|
||||
$surface->lineTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'L': // lineto, absolute
|
||||
$x = $current[1];
|
||||
$y = $current[2];
|
||||
$surface->lineTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'h': // horizontal lineto, relative
|
||||
$x += $current[1];
|
||||
$surface->lineTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'H': // horizontal lineto, absolute
|
||||
$x = $current[1];
|
||||
$surface->lineTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'v': // vertical lineto, relative
|
||||
$y += $current[1];
|
||||
$surface->lineTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'V': // verical lineto, absolute
|
||||
$y = $current[1];
|
||||
$surface->lineTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'm': // moveTo, relative
|
||||
$x += $current[1];
|
||||
$y += $current[2];
|
||||
$subpathStartX = $x;
|
||||
$subpathStartY = $y;
|
||||
$surface->moveTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'M': // moveTo, absolute
|
||||
$x = $current[1];
|
||||
$y = $current[2];
|
||||
$subpathStartX = $x;
|
||||
$subpathStartY = $y;
|
||||
$surface->moveTo($x + $l, $y + $t);
|
||||
break;
|
||||
|
||||
case 'c': // bezierCurveTo, relative
|
||||
$tempX = $x + $current[5];
|
||||
$tempY = $y + $current[6];
|
||||
$controlX = $x + $current[3];
|
||||
$controlY = $y + $current[4];
|
||||
$surface->bezierCurveTo(
|
||||
$x + $current[1] + $l, // x1
|
||||
$y + $current[2] + $t, // y1
|
||||
$controlX + $l, // x2
|
||||
$controlY + $t, // y2
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
break;
|
||||
|
||||
case 'C': // bezierCurveTo, absolute
|
||||
$x = $current[5];
|
||||
$y = $current[6];
|
||||
$controlX = $current[3];
|
||||
$controlY = $current[4];
|
||||
$surface->bezierCurveTo(
|
||||
$current[1] + $l,
|
||||
$current[2] + $t,
|
||||
$controlX + $l,
|
||||
$controlY + $t,
|
||||
$x + $l,
|
||||
$y + $t
|
||||
);
|
||||
break;
|
||||
|
||||
case 's': // shorthand cubic bezierCurveTo, relative
|
||||
|
||||
// transform to absolute x,y
|
||||
$tempX = $x + $current[3];
|
||||
$tempY = $y + $current[4];
|
||||
|
||||
if (!preg_match('/[CcSs]/', $previous[0])) {
|
||||
// If there is no previous command or if the previous command was not a C, c, S, or s,
|
||||
// the control point is coincident with the current point
|
||||
$controlX = $x;
|
||||
$controlY = $y;
|
||||
} else {
|
||||
// calculate reflection of previous control points
|
||||
$controlX = 2 * $x - $controlX;
|
||||
$controlY = 2 * $y - $controlY;
|
||||
}
|
||||
|
||||
$surface->bezierCurveTo(
|
||||
$controlX + $l,
|
||||
$controlY + $t,
|
||||
$x + $current[1] + $l,
|
||||
$y + $current[2] + $t,
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
// set control point to 2nd one of this command
|
||||
// "... the first control point is assumed to be
|
||||
// the reflection of the second control point on
|
||||
// the previous command relative to the current point."
|
||||
$controlX = $x + $current[1];
|
||||
$controlY = $y + $current[2];
|
||||
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
break;
|
||||
|
||||
case 'S': // shorthand cubic bezierCurveTo, absolute
|
||||
$tempX = $current[3];
|
||||
$tempY = $current[4];
|
||||
|
||||
if (!preg_match('/[CcSs]/', $previous[0])) {
|
||||
// If there is no previous command or if the previous command was not a C, c, S, or s,
|
||||
// the control point is coincident with the current point
|
||||
$controlX = $x;
|
||||
$controlY = $y;
|
||||
} else {
|
||||
// calculate reflection of previous control points
|
||||
$controlX = 2 * $x - $controlX;
|
||||
$controlY = 2 * $y - $controlY;
|
||||
}
|
||||
|
||||
$surface->bezierCurveTo(
|
||||
$controlX + $l,
|
||||
$controlY + $t,
|
||||
$current[1] + $l,
|
||||
$current[2] + $t,
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
|
||||
// set control point to 2nd one of this command
|
||||
// "... the first control point is assumed to be
|
||||
// the reflection of the second control point on
|
||||
// the previous command relative to the current point."
|
||||
$controlX = $current[1];
|
||||
$controlY = $current[2];
|
||||
|
||||
break;
|
||||
|
||||
case 'q': // quadraticCurveTo, relative
|
||||
// transform to absolute x,y
|
||||
$tempX = $x + $current[3];
|
||||
$tempY = $y + $current[4];
|
||||
|
||||
$controlX = $x + $current[1];
|
||||
$controlY = $y + $current[2];
|
||||
|
||||
$surface->quadraticCurveTo(
|
||||
$controlX + $l,
|
||||
$controlY + $t,
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
break;
|
||||
|
||||
case 'Q': // quadraticCurveTo, absolute
|
||||
$tempX = $current[3];
|
||||
$tempY = $current[4];
|
||||
|
||||
$surface->quadraticCurveTo(
|
||||
$current[1] + $l,
|
||||
$current[2] + $t,
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
$controlX = $current[1];
|
||||
$controlY = $current[2];
|
||||
break;
|
||||
|
||||
case 't': // shorthand quadraticCurveTo, relative
|
||||
|
||||
// transform to absolute x,y
|
||||
$tempX = $x + $current[1];
|
||||
$tempY = $y + $current[2];
|
||||
|
||||
if (preg_match("/[QqTt]/", $previous[0])) {
|
||||
// If there is no previous command or if the previous command was not a Q, q, T or t,
|
||||
// assume the control point is coincident with the current point
|
||||
$controlX = $x;
|
||||
$controlY = $y;
|
||||
} else {
|
||||
if ($previous[0] === 't') {
|
||||
// calculate reflection of previous control points for t
|
||||
$controlX = 2 * $x - $tempControlX;
|
||||
$controlY = 2 * $y - $tempControlY;
|
||||
} else {
|
||||
if ($previous[0] === 'q') {
|
||||
// calculate reflection of previous control points for q
|
||||
$controlX = 2 * $x - $controlX;
|
||||
$controlY = 2 * $y - $controlY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$tempControlX = $controlX;
|
||||
$tempControlY = $controlY;
|
||||
|
||||
$surface->quadraticCurveTo(
|
||||
$controlX + $l,
|
||||
$controlY + $t,
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
$controlX = $x + $current[1];
|
||||
$controlY = $y + $current[2];
|
||||
break;
|
||||
|
||||
case 'T':
|
||||
$tempX = $current[1];
|
||||
$tempY = $current[2];
|
||||
|
||||
// calculate reflection of previous control points
|
||||
$controlX = 2 * $x - $controlX;
|
||||
$controlY = 2 * $y - $controlY;
|
||||
$surface->quadraticCurveTo(
|
||||
$controlX + $l,
|
||||
$controlY + $t,
|
||||
$tempX + $l,
|
||||
$tempY + $t
|
||||
);
|
||||
$x = $tempX;
|
||||
$y = $tempY;
|
||||
break;
|
||||
|
||||
case 'a':
|
||||
// TODO: optimize this
|
||||
$this->drawArc(
|
||||
$surface,
|
||||
$x + $l,
|
||||
$y + $t,
|
||||
array(
|
||||
$current[1],
|
||||
$current[2],
|
||||
$current[3],
|
||||
$current[4],
|
||||
$current[5],
|
||||
$current[6] + $x + $l,
|
||||
$current[7] + $y + $t
|
||||
)
|
||||
);
|
||||
$x += $current[6];
|
||||
$y += $current[7];
|
||||
break;
|
||||
|
||||
case 'A':
|
||||
// TODO: optimize this
|
||||
$this->drawArc(
|
||||
$surface,
|
||||
$x + $l,
|
||||
$y + $t,
|
||||
array(
|
||||
$current[1],
|
||||
$current[2],
|
||||
$current[3],
|
||||
$current[4],
|
||||
$current[5],
|
||||
$current[6] + $l,
|
||||
$current[7] + $t
|
||||
)
|
||||
);
|
||||
$x = $current[6];
|
||||
$y = $current[7];
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
case 'Z':
|
||||
$x = $subpathStartX;
|
||||
$y = $subpathStartY;
|
||||
$surface->closePath();
|
||||
break;
|
||||
}
|
||||
$previous = $current;
|
||||
}
|
||||
}
|
||||
|
||||
function drawArc(SurfaceInterface $surface, $fx, $fy, $coords)
|
||||
{
|
||||
$rx = $coords[0];
|
||||
$ry = $coords[1];
|
||||
$rot = $coords[2];
|
||||
$large = $coords[3];
|
||||
$sweep = $coords[4];
|
||||
$tx = $coords[5];
|
||||
$ty = $coords[6];
|
||||
$segs = array(
|
||||
array(),
|
||||
array(),
|
||||
array(),
|
||||
array(),
|
||||
);
|
||||
|
||||
$segsNorm = $this->arcToSegments($tx - $fx, $ty - $fy, $rx, $ry, $large, $sweep, $rot);
|
||||
|
||||
for ($i = 0, $len = count($segsNorm); $i < $len; $i++) {
|
||||
$segs[$i][0] = $segsNorm[$i][0] + $fx;
|
||||
$segs[$i][1] = $segsNorm[$i][1] + $fy;
|
||||
$segs[$i][2] = $segsNorm[$i][2] + $fx;
|
||||
$segs[$i][3] = $segsNorm[$i][3] + $fy;
|
||||
$segs[$i][4] = $segsNorm[$i][4] + $fx;
|
||||
$segs[$i][5] = $segsNorm[$i][5] + $fy;
|
||||
|
||||
call_user_func_array(array($surface, "bezierCurveTo"), $segs[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
function arcToSegments($toX, $toY, $rx, $ry, $large, $sweep, $rotateX)
|
||||
{
|
||||
$th = $rotateX * M_PI / 180;
|
||||
$sinTh = sin($th);
|
||||
$cosTh = cos($th);
|
||||
$fromX = 0;
|
||||
$fromY = 0;
|
||||
|
||||
$rx = abs($rx);
|
||||
$ry = abs($ry);
|
||||
|
||||
$px = -$cosTh * $toX * 0.5 - $sinTh * $toY * 0.5;
|
||||
$py = -$cosTh * $toY * 0.5 + $sinTh * $toX * 0.5;
|
||||
$rx2 = $rx * $rx;
|
||||
$ry2 = $ry * $ry;
|
||||
$py2 = $py * $py;
|
||||
$px2 = $px * $px;
|
||||
$pl = $rx2 * $ry2 - $rx2 * $py2 - $ry2 * $px2;
|
||||
$root = 0;
|
||||
|
||||
if ($pl < 0) {
|
||||
$s = sqrt(1 - $pl / ($rx2 * $ry2));
|
||||
$rx *= $s;
|
||||
$ry *= $s;
|
||||
} else {
|
||||
$root = ($large == $sweep ? -1.0 : 1.0) * sqrt($pl / ($rx2 * $py2 + $ry2 * $px2));
|
||||
}
|
||||
|
||||
$cx = $root * $rx * $py / $ry;
|
||||
$cy = -$root * $ry * $px / $rx;
|
||||
$cx1 = $cosTh * $cx - $sinTh * $cy + $toX * 0.5;
|
||||
$cy1 = $sinTh * $cx + $cosTh * $cy + $toY * 0.5;
|
||||
$mTheta = $this->calcVectorAngle(1, 0, ($px - $cx) / $rx, ($py - $cy) / $ry);
|
||||
$dtheta = $this->calcVectorAngle(($px - $cx) / $rx, ($py - $cy) / $ry, (-$px - $cx) / $rx, (-$py - $cy) / $ry);
|
||||
|
||||
if ($sweep == 0 && $dtheta > 0) {
|
||||
$dtheta -= 2 * M_PI;
|
||||
} else {
|
||||
if ($sweep == 1 && $dtheta < 0) {
|
||||
$dtheta += 2 * M_PI;
|
||||
}
|
||||
}
|
||||
|
||||
// $Convert $into $cubic $bezier $segments <= 90deg
|
||||
$segments = ceil(abs($dtheta / M_PI * 2));
|
||||
$result = array();
|
||||
$mDelta = $dtheta / $segments;
|
||||
$mT = 8 / 3 * sin($mDelta / 4) * sin($mDelta / 4) / sin($mDelta / 2);
|
||||
$th3 = $mTheta + $mDelta;
|
||||
|
||||
for ($i = 0; $i < $segments; $i++) {
|
||||
$result[$i] = $this->segmentToBezier(
|
||||
$mTheta,
|
||||
$th3,
|
||||
$cosTh,
|
||||
$sinTh,
|
||||
$rx,
|
||||
$ry,
|
||||
$cx1,
|
||||
$cy1,
|
||||
$mT,
|
||||
$fromX,
|
||||
$fromY
|
||||
);
|
||||
$fromX = $result[$i][4];
|
||||
$fromY = $result[$i][5];
|
||||
$mTheta = $th3;
|
||||
$th3 += $mDelta;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
function segmentToBezier($th2, $th3, $cosTh, $sinTh, $rx, $ry, $cx1, $cy1, $mT, $fromX, $fromY)
|
||||
{
|
||||
$costh2 = cos($th2);
|
||||
$sinth2 = sin($th2);
|
||||
$costh3 = cos($th3);
|
||||
$sinth3 = sin($th3);
|
||||
$toX = $cosTh * $rx * $costh3 - $sinTh * $ry * $sinth3 + $cx1;
|
||||
$toY = $sinTh * $rx * $costh3 + $cosTh * $ry * $sinth3 + $cy1;
|
||||
$cp1X = $fromX + $mT * (-$cosTh * $rx * $sinth2 - $sinTh * $ry * $costh2);
|
||||
$cp1Y = $fromY + $mT * (-$sinTh * $rx * $sinth2 + $cosTh * $ry * $costh2);
|
||||
$cp2X = $toX + $mT * ($cosTh * $rx * $sinth3 + $sinTh * $ry * $costh3);
|
||||
$cp2Y = $toY + $mT * ($sinTh * $rx * $sinth3 - $cosTh * $ry * $costh3);
|
||||
|
||||
return array(
|
||||
$cp1X,
|
||||
$cp1Y,
|
||||
$cp2X,
|
||||
$cp2Y,
|
||||
$toX,
|
||||
$toY
|
||||
);
|
||||
}
|
||||
|
||||
function calcVectorAngle($ux, $uy, $vx, $vy)
|
||||
{
|
||||
$ta = atan2($uy, $ux);
|
||||
$tb = atan2($vy, $vx);
|
||||
if ($tb >= $ta) {
|
||||
return $tb - $ta;
|
||||
} else {
|
||||
return 2 * M_PI - ($ta - $tb);
|
||||
}
|
||||
}
|
||||
}
|
33
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php
vendored
Normal file
33
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Polygon.php
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Polygon extends Shape
|
||||
{
|
||||
public function start($attributes)
|
||||
{
|
||||
$tmp = array();
|
||||
preg_match_all('/([\-]*[0-9\.]+)/', $attributes['points'], $tmp);
|
||||
|
||||
$points = $tmp[0];
|
||||
$count = count($points);
|
||||
|
||||
$surface = $this->document->getSurface();
|
||||
list($x, $y) = $points;
|
||||
$surface->moveTo($x, $y);
|
||||
|
||||
for ($i = 2; $i < $count; $i += 2) {
|
||||
$x = $points[$i];
|
||||
$y = $points[$i + 1];
|
||||
$surface->lineTo($x, $y);
|
||||
}
|
||||
|
||||
$surface->closePath();
|
||||
}
|
||||
}
|
31
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php
vendored
Normal file
31
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Polyline.php
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Polyline extends Shape
|
||||
{
|
||||
public function start($attributes)
|
||||
{
|
||||
$tmp = array();
|
||||
preg_match_all('/([\-]*[0-9\.]+)/', $attributes['points'], $tmp);
|
||||
|
||||
$points = $tmp[0];
|
||||
$count = count($points);
|
||||
|
||||
$surface = $this->document->getSurface();
|
||||
list($x, $y) = $points;
|
||||
$surface->moveTo($x, $y);
|
||||
|
||||
for ($i = 2; $i < $count; $i += 2) {
|
||||
$x = $points[$i];
|
||||
$y = $points[$i + 1];
|
||||
$surface->lineTo($x, $y);
|
||||
}
|
||||
}
|
||||
}
|
17
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php
vendored
Normal file
17
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/RadialGradient.php
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class RadialGradient extends AbstractTag
|
||||
{
|
||||
public function start($attributes)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
45
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php
vendored
Normal file
45
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Rect.php
vendored
Normal file
|
@ -0,0 +1,45 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Rect extends Shape
|
||||
{
|
||||
protected $x = 0;
|
||||
protected $y = 0;
|
||||
protected $width = 0;
|
||||
protected $height = 0;
|
||||
protected $rx = 0;
|
||||
protected $ry = 0;
|
||||
|
||||
public function start($attributes)
|
||||
{
|
||||
if (isset($attributes['x'])) {
|
||||
$this->x = $attributes['x'];
|
||||
}
|
||||
if (isset($attributes['y'])) {
|
||||
$this->y = $attributes['y'];
|
||||
}
|
||||
|
||||
if (isset($attributes['width'])) {
|
||||
$this->width = $attributes['width'];
|
||||
}
|
||||
if (isset($attributes['height'])) {
|
||||
$this->height = $attributes['height'];
|
||||
}
|
||||
|
||||
if (isset($attributes['rx'])) {
|
||||
$this->rx = $attributes['rx'];
|
||||
}
|
||||
if (isset($attributes['ry'])) {
|
||||
$this->ry = $attributes['ry'];
|
||||
}
|
||||
|
||||
$this->document->getSurface()->rect($this->x, $this->y, $this->width, $this->height, $this->rx, $this->ry);
|
||||
}
|
||||
}
|
63
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php
vendored
Normal file
63
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Shape.php
vendored
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
use Svg\Style;
|
||||
|
||||
class Shape extends AbstractTag
|
||||
{
|
||||
protected function before($attributes)
|
||||
{
|
||||
$surface = $this->document->getSurface();
|
||||
|
||||
$surface->save();
|
||||
|
||||
$style = $this->makeStyle($attributes);
|
||||
|
||||
$this->setStyle($style);
|
||||
$surface->setStyle($style);
|
||||
|
||||
$this->applyTransform($attributes);
|
||||
}
|
||||
|
||||
protected function after()
|
||||
{
|
||||
$surface = $this->document->getSurface();
|
||||
|
||||
if ($this->hasShape) {
|
||||
$style = $surface->getStyle();
|
||||
|
||||
$fill = $style->fill && $style->fill !== "none";
|
||||
$stroke = $style->stroke && $style->stroke !== "none";
|
||||
|
||||
if ($fill) {
|
||||
if ($stroke) {
|
||||
$surface->fillStroke();
|
||||
} else {
|
||||
// if (is_string($style->fill)) {
|
||||
// /** @var LinearGradient|RadialGradient $gradient */
|
||||
// $gradient = $this->getDocument()->getDef($style->fill);
|
||||
//
|
||||
// var_dump($gradient->getStops());
|
||||
// }
|
||||
|
||||
$surface->fill();
|
||||
}
|
||||
}
|
||||
elseif ($stroke) {
|
||||
$surface->stroke();
|
||||
}
|
||||
else {
|
||||
$surface->endPath();
|
||||
}
|
||||
}
|
||||
|
||||
$surface->restore();
|
||||
}
|
||||
}
|
17
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php
vendored
Normal file
17
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/Stop.php
vendored
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
class Stop extends AbstractTag
|
||||
{
|
||||
public function start($attributes)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
27
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php
vendored
Normal file
27
sites/all/modules/civicrm/vendor/phenx/php-svg-lib/src/Svg/Tag/StyleTag.php
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
/**
|
||||
* @package php-svg-lib
|
||||
* @link http://github.com/PhenX/php-svg-lib
|
||||
* @author Fabien Ménager <fabien.menager@gmail.com>
|
||||
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
|
||||
*/
|
||||
|
||||
namespace Svg\Tag;
|
||||
|
||||
use Sabberworm\CSS;
|
||||
|
||||
class StyleTag extends AbstractTag
|
||||
{
|
||||
protected $text = "";
|
||||
|
||||
public function end()
|
||||
{
|
||||
$parser = new CSS\Parser($this->text);
|
||||
$this->document->appendStyleSheet($parser->parse());
|
||||
}
|
||||
|
||||
public function appendText($text)
|
||||
{
|
||||
$this->text .= $text;
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue