mirror of
https://github.com/vdm-io/tcpdf.git
synced 2024-11-08 14:21:04 +00:00
updated to v6.3.5
This commit is contained in:
parent
aa5dc2c127
commit
fd4acc640b
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.idea
|
@ -6,6 +6,8 @@
|
||||
under the terms of the GNU Lesser General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
2002-2019 Nicola Asuni - Tecnick.com LTD
|
||||
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
* **category** Library
|
||||
* **author** Nicola Asuni <info@tecnick.com>
|
||||
* **copyright** 2002-2018 Nicola Asuni - Tecnick.com LTD
|
||||
* **copyright** 2002-2020 Nicola Asuni - Tecnick.com LTD
|
||||
* **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
|
||||
* **link** http://www.tcpdf.org
|
||||
* **source** https://github.com/tecnickcom/TCPDF
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "tecnickcom/tcpdf",
|
||||
"version": "6.2.26",
|
||||
"version": "6.3.5",
|
||||
"homepage": "http://www.tcpdf.org/",
|
||||
"type": "library",
|
||||
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
|
||||
@ -13,7 +13,7 @@
|
||||
"pdf417",
|
||||
"barcodes"
|
||||
],
|
||||
"license": "LGPL-3.0",
|
||||
"license": "LGPL-3.0-only",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicola Asuni",
|
||||
|
@ -1,863 +0,0 @@
|
||||
2007-08-20 00:48 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Diagonal marks
|
||||
|
||||
2007-08-20 00:25 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* README: Added Release notes, preparing for 2.0 release.
|
||||
|
||||
2007-08-19 23:19 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Stack diacritics definition
|
||||
|
||||
2007-08-19 22:56 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Tholoth.sfd:
|
||||
* Added 'rlg' lookup table and subtable and registered stacked
|
||||
diacritic ligatures.
|
||||
* kasrah and kasratan were too close to the base glyph, fixed.
|
||||
|
||||
2007-08-19 22:28 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlHor.sfd, ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd,
|
||||
ae_AlYarmook.sfd, ae_Arab.sfd, ae_Cortoba.sfd, ae_Furat.sfd,
|
||||
ae_Graph.sfd, ae_Kayrawan.sfd, ae_Khalid.sfd, ae_Mashq-Bold.sfd,
|
||||
ae_Mashq.sfd, ae_Metal.sfd, ae_Nada.sfd, ae_Nagham.sfd,
|
||||
ae_Ostorah.sfd, ae_Ouhod-Bold.sfd, ae_Petra.sfd,
|
||||
ae_Rasheeq-Bold.sfd, ae_Rehan.sfd, ae_Salem.sfd, ae_Shado.sfd,
|
||||
ae_Sharjah.sfd, ae_Sindbad.sfd, ae_Tarablus.sfd: Scaled up
|
||||
diacritic glyphs, this makes them more readable.
|
||||
|
||||
2007-08-19 22:03 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: New sukun, removed wrong anchors from
|
||||
kasrah
|
||||
|
||||
2007-08-19 20:26 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd: Added 'rlg' lookup table and subtable
|
||||
and registered stacked diacritic ligatures.
|
||||
|
||||
2007-08-19 18:28 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd: Fixed shaddas
|
||||
|
||||
2007-08-19 18:01 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd: Stacked diacrititcs
|
||||
|
||||
2007-08-19 14:49 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Removed mark2mark anchors, now we use
|
||||
ligature substitution for stacked diacritics instead of anchors.
|
||||
Added 'rlg' lookup table and subtable and registered stacked
|
||||
diacritic ligatures.
|
||||
|
||||
2007-08-19 02:30 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Stacked diacritics added
|
||||
|
||||
2007-08-19 01:53 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ArabicReesha.sfd:
|
||||
* Added to new ligatures; <fathatan><alef isolated> and
|
||||
<fathatan><alef final>.
|
||||
* Small fixes to Jeem isolated width.
|
||||
|
||||
2007-08-18 21:30 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd: Diacritics fixed except allahisolated
|
||||
ligature
|
||||
|
||||
2007-08-18 20:13 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd: Removed old, buggy, anchors and auto
|
||||
added new ones, needs manual editing.
|
||||
|
||||
2007-08-18 19:11 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd: New shadda, modified sukun to meet the
|
||||
other marks
|
||||
|
||||
2007-08-18 17:20 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: New diacritics for ae_AlArabiya.sfd
|
||||
|
||||
2007-08-17 23:19 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Tholoth.sfd: ae_Tholoth.sfd: Added glyphs U+FC5E - U+FC62.
|
||||
|
||||
2007-08-16 14:56 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMohanad.sfd: AlMohanad: Fixed U+FEDA (kaf final) to take
|
||||
the shape of ordinary final kaf rather than the long variant.
|
||||
|
||||
2007-08-15 14:25 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ArabicReesha.sfd: ArabicReesha.sfd: Fixed a bug that caused
|
||||
some isolated glyphs to have more space to the right.
|
||||
|
||||
2007-08-15 12:02 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd, ae_AlYarmook.sfd,
|
||||
ae_Electron.sfd, ae_Hani.sfd, ae_Haramain.sfd, ae_Khalid.sfd,
|
||||
ae_Rasheeq-Bold.sfd, ae_Rehan.sfd, ae_Sharjah.sfd,
|
||||
ae_Tarablus.sfd, ae_Tholoth.sfd: Add new 'liga' table without
|
||||
"Ignore Combining Marks" flag, allahisolated ligature belong to that
|
||||
table now, so when allahisolated has a tashkil on it, the ligature
|
||||
will be ignored and will use normal glyphs instead.
|
||||
|
||||
2007-08-15 11:05 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Granada.sfd, ae_Graph.sfd, ae_Haramain.sfd,
|
||||
ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd, ae_Sindbad.sfd,
|
||||
ae_Tarablus.sfd: Added "Ignore Combining Marks flag" to 'liga'
|
||||
table.
|
||||
|
||||
2007-08-15 10:35 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ArabicReesha.sfd: ArabicReesha: New font based on SIL's
|
||||
Scheherazade, first version.
|
||||
|
||||
2007-08-15 00:23 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Shadda was missing mark2mark below anchor.
|
||||
|
||||
2007-08-14 23:28 Mohammed Adnene Trojette <adn@diwi.org>
|
||||
|
||||
* Makefile: GPL has been removed
|
||||
|
||||
2007-08-14 23:21 Mohammed Adnene Trojette <adn@diwi.org>
|
||||
|
||||
* COPYING, README: Copyright informations
|
||||
|
||||
2007-08-14 23:05 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* COPYING: Updated to refer to FreeFonts project.
|
||||
|
||||
2007-08-14 22:56 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Salem.sfd: Updated the copyright statement, to mention GPL
|
||||
font exception and FreeFonts project, again
|
||||
|
||||
2007-08-14 22:43 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Salem.sfd: Revert to 1.7 and added Allah anchors(again).
|
||||
|
||||
2007-08-14 21:35 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Tholoth.sfd: Minor positioning fix
|
||||
|
||||
2007-08-14 21:12 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Tholoth.sfd: Added missed U+0647.
|
||||
|
||||
2007-08-14 18:37 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlArabiya.sfd, ae_AlBattar.sfd, ae_AlHor.sfd,
|
||||
ae_AlManzomah.sfd, ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd,
|
||||
ae_AlMothnna-Bold.sfd, ae_AlYarmook.sfd, ae_Arab.sfd,
|
||||
ae_Cortoba.sfd, ae_Dimnah.sfd, ae_Electron.sfd, ae_Furat.sfd,
|
||||
ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd, ae_Haramain.sfd,
|
||||
ae_Hor.sfd, ae_Japan.sfd, ae_Jet.sfd, ae_Kayrawan.sfd,
|
||||
ae_Khalid.sfd, ae_Mashq-Bold.sfd, ae_Mashq.sfd, ae_Metal.sfd,
|
||||
ae_Nada.sfd, ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd, ae_Petra.sfd, ae_Rasheeq-Bold.sfd,
|
||||
ae_Rehan.sfd, ae_Salem.sfd, ae_Shado.sfd, ae_Sharjah.sfd,
|
||||
ae_Sindbad.sfd, ae_Tarablus.sfd, ae_Tholoth.sfd: Updated the
|
||||
copyright statement, to mention GPL font exception and FreeFonts
|
||||
project.
|
||||
|
||||
2007-08-13 22:18 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlArabiya.sfd, ae_AlBattar.sfd, ae_AlManzomah.sfd,
|
||||
ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd, ae_AlMothnna-Bold.sfd,
|
||||
ae_Arab.sfd, ae_Cortoba.sfd, ae_Electron.sfd, ae_Furat.sfd,
|
||||
ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd, ae_Haramain.sfd,
|
||||
ae_Hor.sfd, ae_Jet.sfd, ae_Kayrawan.sfd, ae_Mashq-Bold.sfd,
|
||||
ae_Mashq.sfd, ae_Nada.sfd, ae_Nagham.sfd, ae_Nice.sfd,
|
||||
ae_Ostorah.sfd, ae_Ouhod-Bold.sfd, ae_Petra.sfd,
|
||||
ae_Rasheeq-Bold.sfd, ae_Rehan.sfd, ae_Salem.sfd, ae_Shado.sfd,
|
||||
ae_Sharjah.sfd, ae_Sindbad.sfd, ae_Tarablus.sfd, ae_Tholoth.sfd:
|
||||
* Add missed mark2mark anchors in the affected files, though we
|
||||
aren't going to use this on the long run, but I'll leave that task
|
||||
for 2.1 .
|
||||
* Reencoded all files to unicode glyph map.
|
||||
|
||||
2007-08-13 14:47 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Petra.sfd, ae_Shado.sfd: ae_Petra.sfd, ae_Shado.sfd:
|
||||
Full support for diacritics positioning by Osama Khalid.
|
||||
|
||||
2007-08-13 10:38 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Hor.sfd, ae_Sharjah.sfd:
|
||||
* ae_Hor: Full support for diacritics positioning by Fahd.
|
||||
* ae_Sharjah: Full support for diacritics positioning by Fahd.
|
||||
|
||||
2007-08-13 05:34 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/: ae_Nice.sfd, ae_Tarablus.sfd: Full diacritics supports,
|
||||
needs a check
|
||||
|
||||
2007-08-13 05:24 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Nagham.sfd: Full diacritics supports, needs a check
|
||||
|
||||
2007-08-13 05:08 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Haramain.sfd: Full diacritics supports, needs a check
|
||||
|
||||
2007-08-13 04:42 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Graph.sfd: Full diacritics supports, needs a check
|
||||
|
||||
2007-08-13 04:38 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Granada.sfd: Full diacritics supports, needs a check
|
||||
|
||||
2007-08-13 03:28 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Ostorah.sfd: ae_Ostorah.sfd: Full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-08-13 02:13 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Haramain.sfd: Done: replaced ugly marks, repositioned
|
||||
below marks
|
||||
|
||||
2007-08-13 01:31 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Graph.sfd: Done, needs to be checked
|
||||
|
||||
2007-08-13 01:16 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Granada.sfd: Done, needs to be checked
|
||||
|
||||
2007-08-12 23:05 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/: ae_Tarablus.sfd: First steps
|
||||
|
||||
2007-08-12 18:24 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Electron.sfd: ae_Electron.sfd: Full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-08-12 16:06 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Hani.sfd: ae_Hani.sfd: Full support for diacritic
|
||||
positioning by Osama Khaled
|
||||
|
||||
2007-08-11 23:33 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Ouhod-Bold.sfd: ae_Ouhod-Bold.sfd: Full support for
|
||||
diacritic positioning.
|
||||
|
||||
2007-08-11 21:28 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Rasheeq-Bold.sfd: ae_Rasheeq-Bold.sfd: Full diacritic
|
||||
support.
|
||||
|
||||
2007-08-11 15:09 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Hor.sfd: some fixes
|
||||
|
||||
2007-08-11 14:55 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Electron.sfd, ae_Granada.sfd, ae_Graph.sfd,
|
||||
ae_Haramain.sfd, ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd, ae_Rasheeq-Bold.sfd, ae_Shado.sfd,
|
||||
ae_Sharjah.sfd, ae_Tarablus.sfd: More tweaking, it is ready for
|
||||
manual editing now (I hope so).
|
||||
|
||||
2007-08-11 11:08 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Hor.sfd: Fahd: I updated the anchor points, please use
|
||||
this instead of the old version.
|
||||
|
||||
2007-08-11 10:45 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Electron.sfd, ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd,
|
||||
ae_Haramain.sfd, ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd, ae_Petra.sfd, ae_Rasheeq-Bold.sfd,
|
||||
ae_Shado.sfd, ae_Sharjah.sfd, ae_Tarablus.sfd: Replaced old
|
||||
anchor points with new ones and better automatic positioning using
|
||||
the improved addanchors.pe script. Please update your local copy
|
||||
before doing any further work, this will make our life easier.
|
||||
|
||||
2007-08-11 10:25 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/addanchors.pe: Now X and Y values are computed to produce a
|
||||
far better result, the needed manual tweaking is very little now.
|
||||
|
||||
2007-08-10 01:27 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Nada.sfd: ae_Nada.sfd: Full support for diacritic
|
||||
positioning by Fahd AlSaidi.
|
||||
|
||||
2007-08-07 23:47 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlYarmook.sfd:
|
||||
* ae_AlYarmook.sfd: Changed font name and other related feilds from
|
||||
AlYermook to AlYarmook
|
||||
* ae_AlYarmook.sfd: Full support for diacritic positioning.
|
||||
|
||||
2007-08-07 00:22 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Mashq-Bold.sfd: sfd/ae_Mashq-Bold.sfd: Full support for
|
||||
diacritic positioning.
|
||||
|
||||
2007-08-06 02:58 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Rehan.sfd: Mark to mark ligatures were too close, fixed.
|
||||
|
||||
2007-08-04 20:14 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Rehan.sfd: ae_Rehan.sfd: Full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-08-04 01:22 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Mashq.sfd: ae_Mashq.sfd: Full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-08-04 01:19 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Khalid.sfd: Reencoded the file to Unicode.
|
||||
|
||||
2007-08-04 01:16 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Kayrawan.sfd: Fixed ArabicMark2MarkBelow anchor point.
|
||||
Reencoded the file to Unicode.
|
||||
|
||||
2007-08-03 06:12 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Kayrawan.sfd: Fixed two letters ligatures diacritics
|
||||
|
||||
2007-08-03 05:55 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Kayrawan.sfd: Added لله ligature diacritics
|
||||
|
||||
2007-08-03 05:01 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Kayrawan.sfd: Ignore combining marks set
|
||||
|
||||
2007-08-03 04:51 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Kayrawan.sfd: Full diacritics support -
|
||||
ArabicMark2MarkBelow need to be checked
|
||||
|
||||
2007-08-03 02:40 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Salem.sfd: Added and positioned anchors for Allah glyph.
|
||||
|
||||
2007-08-03 02:32 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Dimnah.sfd: ae_Dimnah.sfd: Full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-08-03 01:26 Youssef Chahibi <chahibi@gmail.com>
|
||||
|
||||
* sfd/ae_Kayrawan.sfd: First steps in font editing
|
||||
|
||||
2007-08-03 00:10 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Salem.sfd: ae_Salem.sfd: Full diacritic support.
|
||||
|
||||
2007-08-02 04:50 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Arab.sfd: Fixed ligatures anchor points.
|
||||
|
||||
2007-08-02 02:15 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Arab.sfd: Support for diacritic positioning by Osama
|
||||
Khalid.
|
||||
|
||||
2007-08-01 23:09 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlManzomah.sfd: ae_AlManzomah.sfd: Full support for
|
||||
diacritic positioning.
|
||||
|
||||
2007-08-01 01:56 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Khalid.sfd: ae_Khalid.sfd: Full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-07-28 11:43 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMateen-Bold.sfd: ae_AlMateen-Bold.sfd: Full support for
|
||||
diacritic positioning.
|
||||
|
||||
2007-07-27 22:16 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* Makefile: New make targets as requested by KhaledHosney.
|
||||
|
||||
2007-07-27 21:04 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlHor.sfd: ae_AlHor.sfd: Full diacritic support
|
||||
|
||||
2007-07-26 10:14 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Jet.sfd: ./sfd/ae_Jet.sfd: Full diacritic support.
|
||||
|
||||
2007-07-26 01:38 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Japan.sfd: Aeif, you forgot the ligatures and letter beh
|
||||
isolated, fixed
|
||||
|
||||
2007-07-25 14:41 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Metal.sfd: Add anchor points for لله ligature
|
||||
|
||||
2007-07-25 12:52 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Metal.sfd: ae_Metal: Full diacritic support.
|
||||
|
||||
2007-07-25 01:36 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Japan.sfd: ae_Japan: Full diacritic support.
|
||||
|
||||
2007-07-25 01:28 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Cortoba.sfd: minor fix
|
||||
|
||||
2007-07-25 00:24 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Cortoba.sfd:
|
||||
|
||||
----------------------------------------------------------------------ae_Cortoba.sfd: Full support for diacritic positioning.
|
||||
|
||||
2007-07-24 18:34 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/generate.sh: not needed any more, use 'make' instead
|
||||
|
||||
2007-07-24 18:31 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Sindbad.sfd: Add anchor points for لله ligature
|
||||
|
||||
2007-07-24 18:04 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Fixed ligatures anchor points
|
||||
|
||||
2007-07-24 17:55 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Furat.sfd: Add anchor points for لله ligature
|
||||
|
||||
2007-07-23 23:16 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* README, README.cvs:
|
||||
- new readme file to explain how to build ttf onts from our cvs
|
||||
tree.
|
||||
|
||||
2007-07-23 23:01 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlBattar.sfd: few fixes in the diacritic positions
|
||||
|
||||
2007-07-23 13:56 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlBattar.sfd: ae_AlBattar.sfd, full support for diacritic
|
||||
positioning.
|
||||
|
||||
2007-07-23 05:28 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* Makefile: Now doesn't rebuild untouched fonts, should save some
|
||||
server cycles.
|
||||
|
||||
2007-07-23 04:00 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Sindbad.sfd: Unchecked 'compact' option
|
||||
|
||||
2007-07-23 00:16 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Sindbad.sfd:
|
||||
- Add the missed "Ignore Combining Marks" feature to Arabic liga
|
||||
lookuptable, Afief please remember this.
|
||||
- Few changes in ArabicBelow anchor points placement.
|
||||
|
||||
2007-07-22 14:42 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlBattar.sfd: Diacritic support, for isolated glyphs only.
|
||||
|
||||
2007-07-22 00:43 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Sindbad.sfd: Full support for diacritic positioning.
|
||||
|
||||
2007-07-21 21:38 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* Makefile: fixed "clean" to remove the bzipped archive.
|
||||
|
||||
2007-07-21 21:34 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* Makefile:
|
||||
- All files are under ae_fonts dir now.
|
||||
- The archive is bzipped.
|
||||
|
||||
2007-07-21 20:05 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* Makefile: Commited the Makefile. Hope you like it.
|
||||
|
||||
2007-07-21 19:11 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/generate.pe: Add a usage note.
|
||||
|
||||
2007-07-21 19:09 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/generate.pe: Now accepts a 2nd argument for the .ttf file
|
||||
name.
|
||||
|
||||
2007-07-21 18:52 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Tholoth.sfd: A few fixes in positioning.
|
||||
|
||||
2007-07-21 16:48 Afief Halumi <afief.h@gmail.com>
|
||||
|
||||
* sfd/ae_Tholoth.sfd: Finished work on ae_Tholoth.sfd; Added a few
|
||||
better glyphs and full support for diacritic positioning.
|
||||
|
||||
2007-07-21 00:04 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Tholoth.sfd:
|
||||
|
||||
Diacritics work by afief
|
||||
|
||||
2007-07-19 23:49 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/addanchors.pe: Add support for mark2glyph anchor points,
|
||||
thanks George Williams for fixing fontforge's bug.
|
||||
|
||||
2007-07-19 23:16 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlBattar.sfd, ae_AlHor.sfd, ae_AlManzomah.sfd,
|
||||
ae_AlMateen-Bold.sfd, ae_AlYarmook.sfd, ae_Arab.sfd,
|
||||
ae_Cortoba.sfd, ae_Dimnah.sfd, ae_Electron.sfd, ae_Granada.sfd,
|
||||
ae_Graph.sfd, ae_Hani.sfd, ae_Haramain.sfd, ae_Hor.sfd,
|
||||
ae_Japan.sfd, ae_Jet.sfd, ae_Kayrawan.sfd, ae_Khalid.sfd,
|
||||
ae_Mashq-Bold.sfd, ae_Mashq.sfd, ae_Metal.sfd, ae_Nada.sfd,
|
||||
ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd, ae_Ouhod-Bold.sfd,
|
||||
ae_Petra.sfd, ae_Rasheeq-Bold.sfd, ae_Rehan.sfd, ae_Salem.sfd,
|
||||
ae_Shado.sfd, ae_Sharjah.sfd, ae_Sindbad.sfd, ae_Tarablus.sfd,
|
||||
ae_Tholoth.sfd:
|
||||
|
||||
- Removed Cyrillic and Greek glyphs, this makes the font more
|
||||
lighter.
|
||||
- Add all needed anchor points, still needs to be manually adjusted.
|
||||
|
||||
2007-07-19 23:15 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlMohanad.sfd, ae_AlMothnna-Bold.sfd, ae_Furat.sfd:
|
||||
Removed Cyrillic and Greek glyphs, this makes the font more lighter.
|
||||
|
||||
2007-07-19 23:12 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: full support for diacritic positioning
|
||||
|
||||
2007-07-18 14:57 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd:
|
||||
|
||||
Full mark2base and mark2mark anchor points
|
||||
|
||||
2007-07-16 20:53 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Nada.sfd:
|
||||
|
||||
Removed obsolete reference to Btstream copyright, we don't include
|
||||
any Bitstream copyrighted glyphs anymore.
|
||||
|
||||
2007-07-16 20:03 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/: addanchors.pe, addlookups.pe, cp.pe, generate.pe:
|
||||
|
||||
use "#!/usr/bin/env fontforge" instead of "#!/usr/bin/fontforge"
|
||||
|
||||
2007-07-16 13:47 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMohanad.sfd:
|
||||
|
||||
Full support for proper diacritics positioning
|
||||
|
||||
2007-07-16 00:16 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/: addanchors.pe, addlookups.pe, cp.pe, generate.pe: Now the
|
||||
scripts require Fotforge 20070501 or newer, older versions use older
|
||||
SFD formate which we don't suport.
|
||||
|
||||
2007-07-16 00:09 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: Add support for proper diacritic
|
||||
positioning by Afief Halumi, still in progress
|
||||
|
||||
2007-07-15 23:48 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Furat.sfd: full support for diacritic positioning
|
||||
|
||||
2007-07-15 20:08 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlBattar.sfd, ae_AlHor.sfd, ae_AlManzomah.sfd,
|
||||
ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd, ae_AlYarmook.sfd,
|
||||
ae_Arab.sfd, ae_Cortoba.sfd, ae_Dimnah.sfd, ae_Electron.sfd,
|
||||
ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd, ae_Haramain.sfd,
|
||||
ae_Hor.sfd, ae_Japan.sfd, ae_Jet.sfd, ae_Kayrawan.sfd,
|
||||
ae_Khalid.sfd, ae_Mashq-Bold.sfd, ae_Mashq.sfd, ae_Metal.sfd,
|
||||
ae_Nada.sfd, ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd, ae_Petra.sfd, ae_Rasheeq-Bold.sfd,
|
||||
ae_Rehan.sfd, ae_Salem.sfd, ae_Shado.sfd, ae_Sharjah.sfd,
|
||||
ae_Sindbad.sfd, ae_Tarablus.sfd, ae_Tholoth.sfd: removed traces
|
||||
of ae_ prefix
|
||||
|
||||
2007-07-15 19:44 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlArabiya.sfd: removed traces of ae_ prefix
|
||||
|
||||
2007-07-13 20:14 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd:
|
||||
- Removed traces of ae_ prefix.
|
||||
- Full support for proper Arabic diacritics positioning.
|
||||
|
||||
2007-07-13 19:38 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Furat.sfd:
|
||||
- Removed traces of ae_ prefix.
|
||||
- add anchor points for Arabic diacritics, needs manual tuning.
|
||||
|
||||
2007-07-13 19:09 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/: addanchors.pe, addlookups.pe: scripts to assist adding
|
||||
lookup tables and anchor points needed for proper diacritics
|
||||
(harakat) support.
|
||||
|
||||
2007-07-01 03:31 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlArabiya.sfd, ae_AlBattar.sfd, ae_AlHor.sfd,
|
||||
ae_AlManzomah.sfd, ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd,
|
||||
ae_AlMothnna-Bold.sfd, ae_AlYarmook.sfd, ae_Arab.sfd,
|
||||
ae_Cortoba.sfd, ae_Dimnah.sfd, ae_Electron.sfd, ae_Furat.sfd,
|
||||
ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd, ae_Haramain.sfd,
|
||||
ae_Hor.sfd, ae_Japan.sfd, ae_Jet.sfd, ae_Kayrawan.sfd,
|
||||
ae_Khalid.sfd, ae_Mashq-Bold.sfd, ae_Mashq.sfd, ae_Metal.sfd,
|
||||
ae_Nada.sfd, ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd, ae_Petra.sfd, ae_Rasheeq-Bold.sfd,
|
||||
ae_Rehan.sfd, ae_Salem.sfd, ae_Shado.sfd, ae_Sharjah.sfd,
|
||||
ae_Sindbad.sfd, ae_Tarablus.sfd, ae_Tholoth.sfd: Removed ae_
|
||||
prefix from all fonts, see
|
||||
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=361965
|
||||
|
||||
2007-06-30 22:02 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* README: Initial README file
|
||||
|
||||
2007-06-30 20:20 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/: generate.pe, generate.sh: Scripts to generate TTF files
|
||||
from SFD ones.
|
||||
|
||||
2007-06-30 19:58 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Tarablus.sfd: add the missed U+F6BE that caused bug in 'j'
|
||||
glyph, CVS_SILENT
|
||||
|
||||
2007-06-30 19:48 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Sindbad.sfd:
|
||||
add the missed U+F6BE that caused bug in 'j' glyph, CVS_SILENT
|
||||
|
||||
2007-06-23 22:29 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Shado.sfd, ae_Sharjah.sfd: add the missed U+F6BE that
|
||||
caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:26 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Rasheeq-Bold.sfd, ae_Rehan.sfd, ae_Salem.sfd: add the
|
||||
missed U+F6BE that caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:22 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Nice.sfd, ae_Ostorah.sfd, ae_Ouhod-Bold.sfd,
|
||||
ae_Petra.sfd: add the missed U+F6BE that caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:19 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Metal.sfd, ae_Nada.sfd, ae_Nagham.sfd: add the missed
|
||||
U+F6BE that caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:16 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Kayrawan.sfd, ae_Khalid.sfd, ae_Mashq-Bold.sfd,
|
||||
ae_Mashq.sfd: add the missed U+F6BE that caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:12 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Haramain.sfd, ae_Hor.sfd, ae_Japan.sfd, ae_Jet.sfd: add
|
||||
the missed U+F6BE that caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:09 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd: add the missed
|
||||
U+F6BE that caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:05 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Electron.sfd, ae_Furat.sfd: add the missed U+F6BE that
|
||||
caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 22:02 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Cortoba.sfd, ae_Dimnah.sfd: add the missed U+F6BE that
|
||||
caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 21:59 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlYarmook.sfd, ae_Arab.sfd: add the missed U+F6BE that
|
||||
caused bug in 'j' glyph
|
||||
|
||||
2007-06-23 21:19 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlArabiya.sfd, ae_AlBattar.sfd, ae_AlHor.sfd,
|
||||
ae_AlManzomah.sfd, ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd,
|
||||
ae_AlMothnna-Bold.sfd: Added the missed U+U+F6BE glyphs which
|
||||
caused a bug in "j" glyph
|
||||
|
||||
2007-06-23 18:30 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* COPYING: -Moved GPL to a separate file. -Added GPL font
|
||||
exception to COPYING.
|
||||
|
||||
2007-06-23 18:12 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_Tholoth.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 18:07 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Shado.sfd, ae_Sharjah.sfd, ae_Sindbad.sfd,
|
||||
ae_Tarablus.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 18:04 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Petra.sfd, ae_Rasheeq-Bold.sfd, ae_Rehan.sfd,
|
||||
ae_Salem.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 18:01 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:57 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Metal.sfd, ae_Nada.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:54 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Kayrawan.sfd, ae_Khalid.sfd, ae_Mashq-Bold.sfd,
|
||||
ae_Mashq.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:51 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Haramain.sfd, ae_Hor.sfd, ae_Japan.sfd, ae_Jet.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:47 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Furat.sfd, ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:43 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_Arab.sfd, ae_Cortoba.sfd, ae_Dimnah.sfd,
|
||||
ae_Electron.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:40 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd,
|
||||
ae_AlMothnna-Bold.sfd, ae_AlYarmook.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-23 17:37 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlArabiya.sfd, ae_AlBattar.sfd, ae_AlHor.sfd,
|
||||
ae_AlManzomah.sfd:
|
||||
- New glyphs (covering every thing outside Arabic block) based on
|
||||
the GPL'd FreeFont project [http://www.nongnu.org/freefont/].
|
||||
- Arabic diacritic marks (harakat) are set to have zero advance
|
||||
width and OT class as 'mark' nstead of 'base glyph'
|
||||
|
||||
2007-06-21 05:57 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* tools/cp.pe: Simple ff script to copy a specific range of glyphs
|
||||
from on font to another.
|
||||
|
||||
2007-06-16 01:54 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd:
|
||||
- Identical glyphs (or parts of glyphs) are referenced to one common
|
||||
glyph instead of copying the same shape each time.
|
||||
- Add few missed Arabic glyphs, DOTLESS QAF, DOTLESS BEH, HAMZA
|
||||
ABOVE, HAMZA BELOW and EXTENDED ARABIC-INDIC DIGIT ZERO, ONE, TWO,
|
||||
THREE, SEVEN, EIGHT, NINE.
|
||||
|
||||
2007-06-15 07:10 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/: ae_AlArabiya.sfd, ae_AlBattar.sfd, ae_AlHor.sfd,
|
||||
ae_AlManzomah.sfd, ae_AlMateen-Bold.sfd, ae_AlMohanad.sfd,
|
||||
ae_AlMothnna-Bold.sfd, ae_AlYarmook.sfd, ae_Arab.sfd,
|
||||
ae_Cortoba.sfd, ae_Dimnah.sfd, ae_Electron.sfd, ae_Furat.sfd,
|
||||
ae_Granada.sfd, ae_Graph.sfd, ae_Hani.sfd, ae_Haramain.sfd,
|
||||
ae_Hor.sfd, ae_Japan.sfd, ae_Jet.sfd, ae_Kayrawan.sfd,
|
||||
ae_Khalid.sfd, ae_Mashq-Bold.sfd, ae_Mashq.sfd, ae_Metal.sfd,
|
||||
ae_Nada.sfd, ae_Nagham.sfd, ae_Nice.sfd, ae_Ostorah.sfd,
|
||||
ae_Ouhod-Bold.sfd, ae_Petra.sfd, ae_Rasheeq-Bold.sfd,
|
||||
ae_Rehan.sfd, ae_Salem.sfd, ae_Shado.sfd, ae_Sharjah.sfd,
|
||||
ae_Sindbad.sfd, ae_Tarablus.sfd, ae_Tholoth.sfd: Preparing to
|
||||
work
|
||||
|
||||
2007-06-02 21:25 Khaled Hosny <khaledhosny@eglug.org>
|
||||
|
||||
* sfd/ae_AlMothnna-Bold.sfd:
|
||||
- A modified version of "AlMothnna", partially fixes the vowel marks
|
||||
issues.
|
||||
- This is fontforg's sfd file.
|
||||
|
||||
2004-07-10 09:48 nadim
|
||||
|
||||
* COPYING: + Minor mods to the GPL license mention (their address
|
||||
changed) + Added disclaimer + Renamed file from license.txt for
|
||||
consistency
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -629,7 +629,7 @@ class Datamatrix {
|
||||
if ($numch[ENC_C40] == $numch[ENC_X12]) {
|
||||
$k = ($pos + $charscount + 1);
|
||||
while ($k < $data_length) {
|
||||
$tmpchr = ord($data{$k});
|
||||
$tmpchr = ord($data[$k]);
|
||||
if ($this->isCharMode($tmpchr, ENC_X12)) {
|
||||
return ENC_X12;
|
||||
} elseif (!($this->isCharMode($tmpchr, ENC_X12) OR $this->isCharMode($tmpchr, ENC_C40))) {
|
||||
|
@ -878,7 +878,7 @@ class PDF417 {
|
||||
$txtarr = array(); // array of characters and sub-mode switching characters
|
||||
$codelen = strlen($code);
|
||||
for ($i = 0; $i < $codelen; ++$i) {
|
||||
$chval = ord($code{$i});
|
||||
$chval = ord($code[$i]);
|
||||
if (($k = array_search($chval, $this->textsubmodes[$submode])) !== false) {
|
||||
// we are on the same sub-mode
|
||||
$txtarr[] = $k;
|
||||
@ -888,7 +888,7 @@ class PDF417 {
|
||||
// search new sub-mode
|
||||
if (($s != $submode) AND (($k = array_search($chval, $this->textsubmodes[$s])) !== false)) {
|
||||
// $s is the new submode
|
||||
if (((($i + 1) == $codelen) OR ((($i + 1) < $codelen) AND (array_search(ord($code{($i + 1)}), $this->textsubmodes[$submode]) !== false))) AND (($s == 3) OR (($s == 0) AND ($submode == 1)))) {
|
||||
if (((($i + 1) == $codelen) OR ((($i + 1) < $codelen) AND (array_search(ord($code[($i + 1)]), $this->textsubmodes[$submode]) !== false))) AND (($s == 3) OR (($s == 0) AND ($submode == 1)))) {
|
||||
// shift (temporary change only for this char)
|
||||
if ($s == 3) {
|
||||
// shift to puntuaction
|
||||
@ -952,7 +952,7 @@ class PDF417 {
|
||||
$cw = array_merge($cw, $cw6);
|
||||
} else {
|
||||
for ($i = 0; $i < $sublen; ++$i) {
|
||||
$cw[] = ord($code{$i});
|
||||
$cw[] = ord($code[$i]);
|
||||
}
|
||||
}
|
||||
$code = $rest;
|
||||
|
@ -358,7 +358,7 @@ class TCPDF_COLORS {
|
||||
$color_code = self::$webcolor[$color];
|
||||
} else {
|
||||
// spot color
|
||||
$returncolor = self::getSpotColor($color, $spotc);
|
||||
$returncolor = self::getSpotColor($hcolor, $spotc);
|
||||
if ($returncolor === false) {
|
||||
$returncolor = $defcol;
|
||||
}
|
||||
|
@ -279,7 +279,7 @@ class TCPDF_FILTERS {
|
||||
// convert string to binary string
|
||||
$bitstring = '';
|
||||
for ($i = 0; $i < $data_length; ++$i) {
|
||||
$bitstring .= sprintf('%08b', ord($data{$i}));
|
||||
$bitstring .= sprintf('%08b', ord($data[$i]));
|
||||
}
|
||||
// get the number of bits
|
||||
$data_length = strlen($bitstring);
|
||||
@ -376,7 +376,7 @@ class TCPDF_FILTERS {
|
||||
$i = 0;
|
||||
while($i < $data_length) {
|
||||
// get current byte value
|
||||
$byte = ord($data{$i});
|
||||
$byte = ord($data[$i]);
|
||||
if ($byte == 128) {
|
||||
// a length value of 128 denote EOD
|
||||
break;
|
||||
@ -389,7 +389,7 @@ class TCPDF_FILTERS {
|
||||
} else {
|
||||
// if length is in the range 129 to 255,
|
||||
// the following single byte shall be copied 257 - length (2 to 128) times during decompression
|
||||
$decoded .= str_repeat($data{($i + 1)}, (257 - $byte));
|
||||
$decoded .= str_repeat($data[($i + 1)], (257 - $byte));
|
||||
// move to next block
|
||||
$i += 2;
|
||||
}
|
||||
|
@ -1664,6 +1664,7 @@ class TCPDF_FONTS {
|
||||
* @public static
|
||||
*/
|
||||
public static function unichr($c, $unicode=true) {
|
||||
$c = intval($c);
|
||||
if (!$unicode) {
|
||||
return chr($c);
|
||||
} elseif ($c <= 0x7F) {
|
||||
|
@ -311,7 +311,7 @@ class TCPDF_IMAGES {
|
||||
if ($n > 0) {
|
||||
$trns = array();
|
||||
for ($i = 0; $i < $n; ++ $i) {
|
||||
$trns[] = ord($t{$i});
|
||||
$trns[] = ord($t[$i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,9 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf_static.php
|
||||
// Version : 1.1.3
|
||||
// Version : 1.1.4
|
||||
// Begin : 2002-08-03
|
||||
// Last Update : 2015-04-28
|
||||
// Last Update : 2019-11-01
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
@ -55,7 +55,7 @@ class TCPDF_STATIC {
|
||||
* Current TCPDF version.
|
||||
* @private static
|
||||
*/
|
||||
private static $tcpdf_version = '6.2.26';
|
||||
private static $tcpdf_version = '6.3.5';
|
||||
|
||||
/**
|
||||
* String alias for total number of pages.
|
||||
@ -1829,6 +1829,8 @@ class TCPDF_STATIC {
|
||||
*/
|
||||
public static function url_exists($url) {
|
||||
$crs = curl_init();
|
||||
// encode query params in URL to get right response form the server
|
||||
$url = self::encodeUrlQuery($url);
|
||||
curl_setopt($crs, CURLOPT_URL, $url);
|
||||
curl_setopt($crs, CURLOPT_NOBODY, true);
|
||||
curl_setopt($crs, CURLOPT_FAILONERROR, true);
|
||||
@ -1846,6 +1848,26 @@ class TCPDF_STATIC {
|
||||
return ($code == 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Encode query params in URL
|
||||
*
|
||||
* @param string $url
|
||||
* @return string
|
||||
* @since 6.3.3 (2019-11-01)
|
||||
* @public static
|
||||
*/
|
||||
public static function encodeUrlQuery($url) {
|
||||
$urlData = parse_url($url);
|
||||
if (isset($urlData['query']) && $urlData['query']) {
|
||||
$urlQueryData = [];
|
||||
parse_str(urldecode($urlData['query']), $urlQueryData);
|
||||
$updatedUrl = $urlData['scheme'] . '://' . $urlData['host'] . $urlData['path'] . '?' . http_build_query($urlQueryData);
|
||||
} else {
|
||||
$updatedUrl = $url;
|
||||
}
|
||||
return $updatedUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrapper for file_exists.
|
||||
* Checks whether a file or directory exists.
|
||||
@ -1926,10 +1948,10 @@ class TCPDF_STATIC {
|
||||
$alt = array_unique($alt);
|
||||
foreach ($alt as $path) {
|
||||
if (!self::file_exists($path)) {
|
||||
return false;
|
||||
continue;
|
||||
}
|
||||
$ret = @file_get_contents($path);
|
||||
if ($ret !== false) {
|
||||
if ( $ret != false ) {
|
||||
return $ret;
|
||||
}
|
||||
// try to use CURL for URLs
|
||||
|
196
tcpdf.php
196
tcpdf.php
@ -1,13 +1,13 @@
|
||||
<?php
|
||||
//============================================================+
|
||||
// File name : tcpdf.php
|
||||
// Version : 6.2.26
|
||||
// Version : 6.3.2
|
||||
// Begin : 2002-08-03
|
||||
// Last Update : 2018-09-14
|
||||
// Last Update : 2019-09-20
|
||||
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||
// -------------------------------------------------------------------
|
||||
// Copyright (C) 2002-2018 Nicola Asuni - Tecnick.com LTD
|
||||
// Copyright (C) 2002-2019 Nicola Asuni - Tecnick.com LTD
|
||||
//
|
||||
// This file is part of TCPDF software library.
|
||||
//
|
||||
@ -45,7 +45,7 @@
|
||||
// * font subsetting;
|
||||
// * methods to publish some XHTML + CSS code, Javascript and Forms;
|
||||
// * images, graphic (geometric figures) and transformation methods;
|
||||
// * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)
|
||||
// * supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImageMagick (http://www.imagemagick.org/www/formats.html)
|
||||
// * 1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;
|
||||
// * JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
|
||||
// * automatic page header and footer management;
|
||||
@ -80,7 +80,7 @@
|
||||
* <li>font subsetting;</li>
|
||||
* <li>methods to publish some XHTML + CSS code, Javascript and Forms;</li>
|
||||
* <li>images, graphic (geometric figures) and transformation methods;
|
||||
* <li>supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImagMagick (http://www.imagemagick.org/www/formats.html)</li>
|
||||
* <li>supports JPEG, PNG and SVG images natively, all images supported by GD (GD, GD2, GD2PART, GIF, JPEG, PNG, BMP, XBM, XPM) and all images supported via ImageMagick (http://www.imagemagick.org/www/formats.html)</li>
|
||||
* <li>1D and 2D barcodes: CODE 39, ANSI MH10.8M-1983, USD-3, 3 of 9, CODE 93, USS-93, Standard 2 of 5, Interleaved 2 of 5, CODE 128 A/B/C, 2 and 5 Digits UPC-Based Extension, EAN 8, EAN 13, UPC-A, UPC-E, MSI, POSTNET, PLANET, RMS4CC (Royal Mail 4-state Customer Code), CBC (Customer Bar Code), KIX (Klant index - Customer index), Intelligent Mail Barcode, Onecode, USPS-B-3200, CODABAR, CODE 11, PHARMACODE, PHARMACODE TWO-TRACKS, Datamatrix, QR-Code, PDF417;</li>
|
||||
* <li>JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;</li>
|
||||
* <li>automatic page header and footer management;</li>
|
||||
@ -104,7 +104,7 @@
|
||||
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @author Nicola Asuni
|
||||
* @version 6.2.26
|
||||
* @version 6.3.2
|
||||
*/
|
||||
|
||||
// TCPDF configuration
|
||||
@ -128,7 +128,7 @@ require_once(dirname(__FILE__).'/include/tcpdf_static.php');
|
||||
* TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.<br>
|
||||
* @package com.tecnick.tcpdf
|
||||
* @brief PHP class for generating PDF documents without requiring external extensions.
|
||||
* @version 6.2.26
|
||||
* @version 6.3.2
|
||||
* @author Nicola Asuni - info@tecnick.com
|
||||
* @IgnoreAnnotation("protected")
|
||||
* @IgnoreAnnotation("public")
|
||||
@ -1760,6 +1760,13 @@ class TCPDF {
|
||||
*/
|
||||
protected $pdfa_mode = false;
|
||||
|
||||
/**
|
||||
* version of PDF/A mode (1 - 3).
|
||||
* @protected
|
||||
* @since 6.2.26 (2019-03-12)
|
||||
*/
|
||||
protected $pdfa_version = 1;
|
||||
|
||||
/**
|
||||
* Document creation date-time
|
||||
* @protected
|
||||
@ -1781,6 +1788,13 @@ class TCPDF {
|
||||
*/
|
||||
protected $custom_xmp = '';
|
||||
|
||||
/**
|
||||
* Custom XMP RDF data.
|
||||
* @protected
|
||||
* @since 6.3.0 (2019-09-19)
|
||||
*/
|
||||
protected $custom_xmp_rdf = '';
|
||||
|
||||
/**
|
||||
* Overprint mode array.
|
||||
* (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008).
|
||||
@ -1834,7 +1848,7 @@ class TCPDF {
|
||||
* @param $unicode (boolean) TRUE means that the input text is unicode (default = true)
|
||||
* @param $encoding (string) Charset encoding (used only when converting back html entities); default is UTF-8.
|
||||
* @param $diskcache (boolean) DEPRECATED FEATURE
|
||||
* @param $pdfa (boolean) If TRUE set the document to PDF/A mode.
|
||||
* @param $pdfa (integer) If not false, set the document to PDF/A mode and the good version (1 or 3).
|
||||
* @public
|
||||
* @see getPageSizeFromFormat(), setPageFormat()
|
||||
*/
|
||||
@ -1850,8 +1864,14 @@ class TCPDF {
|
||||
$this->font_obj_ids = array();
|
||||
$this->page_obj_id = array();
|
||||
$this->form_obj_id = array();
|
||||
|
||||
// set pdf/a mode
|
||||
$this->pdfa_mode = $pdfa;
|
||||
if ($pdfa != false) {
|
||||
$this->pdfa_mode = true;
|
||||
$this->pdfa_version = $pdfa; // 1 or 3
|
||||
} else
|
||||
$this->pdfa_mode = false;
|
||||
|
||||
$this->force_srgb = false;
|
||||
// set language direction
|
||||
$this->rtl = false;
|
||||
@ -1960,7 +1980,7 @@ class TCPDF {
|
||||
// set default JPEG quality
|
||||
$this->jpeg_quality = 75;
|
||||
// initialize some settings
|
||||
TCPDF_FONTS::utf8Bidi(array(''), '', false, $this->isunicode, $this->CurrentFont);
|
||||
TCPDF_FONTS::utf8Bidi(array(), '', false, $this->isunicode, $this->CurrentFont);
|
||||
// set default font
|
||||
$this->SetFont($this->FontFamily, $this->FontStyle, $this->FontSizePt);
|
||||
$this->setHeaderFont(array($this->FontFamily, $this->FontStyle, $this->FontSizePt));
|
||||
@ -1986,6 +2006,7 @@ class TCPDF {
|
||||
$this->default_graphic_vars = $this->getGraphicVars();
|
||||
$this->header_xobj_autoreset = false;
|
||||
$this->custom_xmp = '';
|
||||
$this->custom_xmp_rdf = '';
|
||||
// Call cleanup method after script execution finishes or exit() is called.
|
||||
// NOTE: This will not be executed if the process is killed with a SIGTERM or SIGKILL signal.
|
||||
register_shutdown_function(array($this, '_destroy'), true);
|
||||
@ -2828,10 +2849,13 @@ class TCPDF {
|
||||
* @since 1.4
|
||||
*/
|
||||
public function SetCompression($compress=true) {
|
||||
$this->compress = false;
|
||||
if (function_exists('gzcompress')) {
|
||||
$this->compress = $compress ? true : false;
|
||||
} else {
|
||||
$this->compress = false;
|
||||
if ($compress) {
|
||||
if ( !$this->pdfa_mode) {
|
||||
$this->compress = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4691,14 +4715,14 @@ class TCPDF {
|
||||
* Defines the page and position a link points to.
|
||||
* @param $link (int) The link identifier returned by AddLink()
|
||||
* @param $y (float) Ordinate of target position; -1 indicates the current position. The default value is 0 (top of page)
|
||||
* @param $page (int) Number of target page; -1 indicates the current page (default value). If you prefix a page number with the * character, then this page will not be changed when adding/deleting/moving pages.
|
||||
* @param $page (int|string) Number of target page; -1 indicates the current page (default value). If you prefix a page number with the * character, then this page will not be changed when adding/deleting/moving pages.
|
||||
* @public
|
||||
* @since 1.5
|
||||
* @see AddLink()
|
||||
*/
|
||||
public function SetLink($link, $y=0, $page=-1) {
|
||||
$fixed = false;
|
||||
if (!empty($page) AND ($page[0] == '*')) {
|
||||
if (!empty($page) AND (substr($page, 0, 1) == '*')) {
|
||||
$page = intval(substr($page, 1));
|
||||
// this page number will not be changed when moving/add/deleting pages
|
||||
$fixed = true;
|
||||
@ -4807,7 +4831,7 @@ class TCPDF {
|
||||
$this->PageAnnots[$page] = array();
|
||||
}
|
||||
$this->PageAnnots[$page][] = array('n' => ++$this->n, 'x' => $x, 'y' => $y, 'w' => $w, 'h' => $h, 'txt' => $text, 'opt' => $opt, 'numspaces' => $spaces);
|
||||
if (!$this->pdfa_mode) {
|
||||
if (!$this->pdfa_mode || ($this->pdfa_mode && $this->pdfa_version == 3)) {
|
||||
if ((($opt['Subtype'] == 'FileAttachment') OR ($opt['Subtype'] == 'Sound')) AND (!TCPDF_STATIC::empty_string($opt['FS']))
|
||||
AND (@TCPDF_STATIC::file_exists($opt['FS']) OR TCPDF_STATIC::isValidURL($opt['FS']))
|
||||
AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) {
|
||||
@ -4833,8 +4857,8 @@ class TCPDF {
|
||||
* @see Annotation()
|
||||
*/
|
||||
protected function _putEmbeddedFiles() {
|
||||
if ($this->pdfa_mode) {
|
||||
// embedded files are not allowed in PDF/A mode
|
||||
if ($this->pdfa_mode && $this->pdfa_version != 3) {
|
||||
// embedded files are not allowed in PDF/A mode version 1 and 2
|
||||
return;
|
||||
}
|
||||
reset($this->embeddedfiles);
|
||||
@ -4847,7 +4871,10 @@ class TCPDF {
|
||||
$this->efnames[$filename] = $filedata['f'].' 0 R';
|
||||
// embedded file specification object
|
||||
$out = $this->_getobj($filedata['f'])."\n";
|
||||
$out .= '<</Type /Filespec /F '.$this->_datastring($filename, $filedata['f']).' /EF <</F '.$filedata['n'].' 0 R>> >>';
|
||||
$out .= '<</Type /Filespec /F '.$this->_datastring($filename, $filedata['f']);
|
||||
$out .= ' /UF '.$this->_datastring($filename, $filedata['f']);
|
||||
$out .= ' /AFRelationship /Source';
|
||||
$out .= ' /EF <</F '.$filedata['n'].' 0 R>> >>';
|
||||
$out .= "\n".'endobj';
|
||||
$this->_out($out);
|
||||
// embedded file object
|
||||
@ -4856,6 +4883,11 @@ class TCPDF {
|
||||
$data = gzcompress($data);
|
||||
$filter = ' /Filter /FlateDecode';
|
||||
}
|
||||
|
||||
if ($this->pdfa_version == 3) {
|
||||
$filter = ' /Subtype /text#2Fxml';
|
||||
}
|
||||
|
||||
$stream = $this->_getrawstream($data, $filedata['n']);
|
||||
$out = $this->_getobj($filedata['n'])."\n";
|
||||
$out .= '<< /Type /EmbeddedFile'.$filter.' /Length '.strlen($stream).' /Params <</Size '.$rawsize.'>> >>';
|
||||
@ -6219,12 +6251,12 @@ class TCPDF {
|
||||
* $this->setPage($page);
|
||||
* if ($page == $start_page) {
|
||||
* // first page
|
||||
* $height = $this->h - $start_y - $this->bMargin;
|
||||
* $height += $this->h - $start_y - $this->bMargin;
|
||||
* } elseif ($page == $end_page) {
|
||||
* // last page
|
||||
* $height = $end_y - $this->tMargin;
|
||||
* $height += $end_y - $this->tMargin;
|
||||
* } else {
|
||||
* $height = $this->h - $this->tMargin - $this->bMargin;
|
||||
* $height += $this->h - $this->tMargin - $this->bMargin;
|
||||
* }
|
||||
* }
|
||||
* }
|
||||
@ -7133,31 +7165,20 @@ class TCPDF {
|
||||
$info['i'] = $this->setImageBuffer($file, $info);
|
||||
}
|
||||
// set alignment
|
||||
$this->img_rb_x = $x + $w;
|
||||
$this->img_rb_y = $y + $h;
|
||||
|
||||
// set alignment
|
||||
if ($this->rtl) {
|
||||
if ($palign == 'L') {
|
||||
$ximg = $this->lMargin;
|
||||
} elseif ($palign == 'C') {
|
||||
$ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2;
|
||||
} elseif ($palign == 'R') {
|
||||
$ximg = $this->w - $this->rMargin - $w;
|
||||
} else {
|
||||
$ximg = $x - $w;
|
||||
}
|
||||
$this->img_rb_x = $ximg;
|
||||
if ($palign == 'L') {
|
||||
$ximg = $this->lMargin;
|
||||
} elseif ($palign == 'C') {
|
||||
$ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2;
|
||||
} elseif ($palign == 'R') {
|
||||
$ximg = $this->w - $this->rMargin - $w;
|
||||
} else {
|
||||
if ($palign == 'L') {
|
||||
$ximg = $this->lMargin;
|
||||
} elseif ($palign == 'C') {
|
||||
$ximg = ($this->w + $this->lMargin - $this->rMargin - $w) / 2;
|
||||
} elseif ($palign == 'R') {
|
||||
$ximg = $this->w - $this->rMargin - $w;
|
||||
} else {
|
||||
$ximg = $x;
|
||||
}
|
||||
$this->img_rb_x = $ximg + $w;
|
||||
$ximg = $x;
|
||||
}
|
||||
|
||||
if ($ismask OR $hidden) {
|
||||
// image is not displayed
|
||||
return $info['i'];
|
||||
@ -7737,6 +7758,7 @@ class TCPDF {
|
||||
return '';
|
||||
}
|
||||
|
||||
protected static $cleaned_ids = array();
|
||||
/**
|
||||
* Unset all class variables except the following critical variables.
|
||||
* @param $destroyall (boolean) if true destroys all class variables, otherwise preserves critical variables.
|
||||
@ -7749,11 +7771,26 @@ class TCPDF {
|
||||
if (isset($this->internal_encoding) AND !empty($this->internal_encoding)) {
|
||||
mb_internal_encoding($this->internal_encoding);
|
||||
}
|
||||
if (isset(self::$cleaned_ids[$this->file_id])) {
|
||||
$destroyall = false;
|
||||
}
|
||||
if ($destroyall AND !$preserve_objcopy) {
|
||||
self::$cleaned_ids[$this->file_id] = true;
|
||||
// remove all temporary files
|
||||
$tmpfiles = glob(K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_*');
|
||||
if (!empty($tmpfiles)) {
|
||||
array_map('unlink', $tmpfiles);
|
||||
if ($handle = @opendir(K_PATH_CACHE)) {
|
||||
while ( false !== ( $file_name = readdir( $handle ) ) ) {
|
||||
if (strpos($file_name, '__tcpdf_'.$this->file_id.'_') === 0) {
|
||||
unlink(K_PATH_CACHE.$file_name);
|
||||
}
|
||||
}
|
||||
closedir($handle);
|
||||
}
|
||||
if (isset($this->imagekeys)) {
|
||||
foreach($this->imagekeys as $file) {
|
||||
if (strpos($file, K_PATH_CACHE) === 0) {
|
||||
@unlink($file);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$preserve = array(
|
||||
@ -7763,6 +7800,7 @@ class TCPDF {
|
||||
'bufferlen',
|
||||
'buffer',
|
||||
'cached_files',
|
||||
'imagekeys',
|
||||
'sign',
|
||||
'signature_data',
|
||||
'signature_max_length',
|
||||
@ -8368,7 +8406,7 @@ class TCPDF {
|
||||
if (is_string($pl['txt']) && !empty($pl['txt'])) {
|
||||
if ($pl['txt'][0] == '#') {
|
||||
// internal destination
|
||||
$annots .= ' /Dest /'.TCPDF_STATIC::encodeNameObject(substr($pl['txt'], 1));
|
||||
$annots .= ' /A <</S /GoTo /D '.TCPDF_STATIC::encodeNameObject(substr($pl['txt'], 1)).'>>';
|
||||
} elseif ($pl['txt'][0] == '%') {
|
||||
// embedded PDF file
|
||||
$filename = basename(substr($pl['txt'], 1));
|
||||
@ -8380,7 +8418,7 @@ class TCPDF {
|
||||
$annots .= ' /A << /S /JavaScript /JS '.$this->_textstring($jsa, $annot_obj_id).'>>';
|
||||
} else {
|
||||
$parsedUrl = parse_url($pl['txt']);
|
||||
if (empty($parsedUrl['scheme']) AND (strtolower(substr($parsedUrl['path'], -4)) == '.pdf')) {
|
||||
if (empty($parsedUrl['scheme']) AND (!empty($parsedUrl['path']) && strtolower(substr($parsedUrl['path'], -4)) == '.pdf')) {
|
||||
// relative link to a PDF file
|
||||
$dest = '[0 /Fit]'; // default page 0
|
||||
if (!empty($parsedUrl['fragment'])) {
|
||||
@ -8487,8 +8525,8 @@ class TCPDF {
|
||||
break;
|
||||
}
|
||||
case 'fileattachment': {
|
||||
if ($this->pdfa_mode) {
|
||||
// embedded files are not allowed in PDF/A mode
|
||||
if ($this->pdfa_mode && $this->pdfa_version != 3) {
|
||||
// embedded files are not allowed in PDF/A mode version 1 and 2
|
||||
break;
|
||||
}
|
||||
if (!isset($pl['opt']['fs'])) {
|
||||
@ -9500,6 +9538,17 @@ class TCPDF {
|
||||
$this->custom_xmp = $xmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set additional XMP data to be added on the default XMP data just before the end of "rdf:RDF" tag.
|
||||
* IMPORTANT: This data is added as-is without controls, so you have to validate your data before using this method!
|
||||
* @param $xmp (string) Custom XMP RDF data.
|
||||
* @since 6.3.0 (2019-09-19)
|
||||
* @public
|
||||
*/
|
||||
public function setExtraXMPRDF($xmp) {
|
||||
$this->custom_xmp_rdf = $xmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Put XMP data object and return ID.
|
||||
* @return (int) The object ID.
|
||||
@ -9569,7 +9618,7 @@ class TCPDF {
|
||||
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
||||
if ($this->pdfa_mode) {
|
||||
$xmp .= "\t\t".'<rdf:Description rdf:about="" xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">'."\n";
|
||||
$xmp .= "\t\t\t".'<pdfaid:part>1</pdfaid:part>'."\n";
|
||||
$xmp .= "\t\t\t".'<pdfaid:part>'.$this->pdfa_version.'</pdfaid:part>'."\n";
|
||||
$xmp .= "\t\t\t".'<pdfaid:conformance>B</pdfaid:conformance>'."\n";
|
||||
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
||||
}
|
||||
@ -9581,6 +9630,16 @@ class TCPDF {
|
||||
$xmp .= "\t\t\t\t\t\t".'<pdfaSchema:namespaceURI>http://ns.adobe.com/pdf/1.3/</pdfaSchema:namespaceURI>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t".'<pdfaSchema:prefix>pdf</pdfaSchema:prefix>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t".'<pdfaSchema:schema>Adobe PDF Schema</pdfaSchema:schema>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t".'<pdfaSchema:property>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t".'<rdf:Seq>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t\t".'<rdf:li rdf:parseType="Resource">'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t\t\t".'<pdfaProperty:category>internal</pdfaProperty:category>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t\t\t".'<pdfaProperty:description>Adobe PDF Schema</pdfaProperty:description>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t\t\t".'<pdfaProperty:name>InstanceID</pdfaProperty:name>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t\t\t".'<pdfaProperty:valueType>URI</pdfaProperty:valueType>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t\t".'</rdf:li>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t\t".'</rdf:Seq>'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t".'</pdfaSchema:property>'."\n";
|
||||
$xmp .= "\t\t\t\t\t".'</rdf:li>'."\n";
|
||||
$xmp .= "\t\t\t\t\t".'<rdf:li rdf:parseType="Resource">'."\n";
|
||||
$xmp .= "\t\t\t\t\t\t".'<pdfaSchema:namespaceURI>http://ns.adobe.com/xap/1.0/mm/</pdfaSchema:namespaceURI>'."\n";
|
||||
@ -9627,6 +9686,7 @@ class TCPDF {
|
||||
$xmp .= "\t\t\t\t".'</rdf:Bag>'."\n";
|
||||
$xmp .= "\t\t\t".'</pdfaExtension:schemas>'."\n";
|
||||
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
||||
$xmp .= $this->custom_xmp_rdf;
|
||||
$xmp .= "\t".'</rdf:RDF>'."\n";
|
||||
$xmp .= $this->custom_xmp;
|
||||
$xmp .= '</x:xmpmeta>'."\n";
|
||||
@ -12221,7 +12281,7 @@ class TCPDF {
|
||||
$x = $this->w;
|
||||
}
|
||||
$fixed = false;
|
||||
if (!empty($page) AND ($page[0] == '*')) {
|
||||
if (!empty($page) AND (substr($page, 0, 1) == '*')) {
|
||||
$page = intval(substr($page, 1));
|
||||
// this page number will not be changed when moving/add/deleting pages
|
||||
$fixed = true;
|
||||
@ -12324,7 +12384,8 @@ class TCPDF {
|
||||
$x = $this->w;
|
||||
}
|
||||
$fixed = false;
|
||||
if (!empty($page) AND ($page[0] == '*')) {
|
||||
$pageAsString = (string) $page;
|
||||
if ($pageAsString && $pageAsString[0] == '*') {
|
||||
$page = intval(substr($page, 1));
|
||||
// this page number will not be changed when moving/add/deleting pages
|
||||
$fixed = true;
|
||||
@ -13988,7 +14049,7 @@ class TCPDF {
|
||||
* @since 3.1.000 (2008-06-09)
|
||||
*/
|
||||
public function setPDFVersion($version='1.7') {
|
||||
if ($this->pdfa_mode) {
|
||||
if ($this->pdfa_mode && $this->pdfa_version == 1 ) {
|
||||
// PDF/A mode
|
||||
$this->PDFVersion = '1.4';
|
||||
} else {
|
||||
@ -15502,8 +15563,7 @@ class TCPDF {
|
||||
* <li>int $style['module_height'] height of a single module in points</li>
|
||||
* <li>array $style['fgcolor'] color array for bars and text</li>
|
||||
* <li>mixed $style['bgcolor'] color array for background or false for transparent</li>
|
||||
* <li>string $style['position'] barcode position on the page: L = left margin; C = center; R = right margin; S = stretch</li><li>$style['module_width'] width of a single module in points</li>
|
||||
* <li>$style['module_height'] height of a single module in points</li></ul>
|
||||
* <li>string $style['position'] barcode position on the page: L = left margin; C = center; R = right margin; S = stretch</li>
|
||||
* @param $align (string) Indicates the alignment of the pointer next to barcode insertion relative to barcode height. The value can be:<ul><li>T: top-right for LTR or top-left for RTL</li><li>M: middle-right for LTR or middle-left for RTL</li><li>B: bottom-right for LTR or bottom-left for RTL</li><li>N: next line</li></ul>
|
||||
* @param $distort (boolean) if true distort the barcode to fit width and height, otherwise preserve aspect ratio
|
||||
* @author Nicola Asuni
|
||||
@ -16897,10 +16957,10 @@ class TCPDF {
|
||||
if (($dom[$key]['value'] == 'pre') OR ($dom[$key]['value'] == 'tt')) {
|
||||
$dom[$key]['fontname'] = $this->default_monospaced_font;
|
||||
}
|
||||
if (!empty($dom[$key]['value']) AND ($dom[$key]['value'][0] == 'h') AND (intval($dom[$key]['value']{1}) > 0) AND (intval($dom[$key]['value']{1}) < 7)) {
|
||||
if (!empty($dom[$key]['value']) AND ($dom[$key]['value'][0] == 'h') AND (intval($dom[$key]['value'][1]) > 0) AND (intval($dom[$key]['value'][1]) < 7)) {
|
||||
// headings h1, h2, h3, h4, h5, h6
|
||||
if (!isset($dom[$key]['attribute']['size']) AND !isset($dom[$key]['style']['font-size'])) {
|
||||
$headsize = (4 - intval($dom[$key]['value']{1})) * 2;
|
||||
$headsize = (4 - intval($dom[$key]['value'][1])) * 2;
|
||||
$dom[$key]['fontsize'] = $dom[0]['fontsize'] + $headsize;
|
||||
}
|
||||
if (!isset($dom[$key]['style']['font-weight'])) {
|
||||
@ -18686,7 +18746,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
$hbz = 0; // distance from y to line bottom
|
||||
$hb = 0; // vertical space between block tags
|
||||
// calculate vertical space for block tags
|
||||
if (isset($this->tagvspaces[$tag['value']][0]['h']) AND ($this->tagvspaces[$tag['value']][0]['h'] >= 0)) {
|
||||
if (isset($this->tagvspaces[$tag['value']][0]['h']) && !empty($this->tagvspaces[$tag['value']][0]['h']) && ($this->tagvspaces[$tag['value']][0]['h'] >= 0)) {
|
||||
$cur_h = $this->tagvspaces[$tag['value']][0]['h'];
|
||||
} elseif (isset($tag['fontsize'])) {
|
||||
$cur_h = $this->getCellHeight($tag['fontsize'] / $this->k);
|
||||
@ -18718,7 +18778,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
}
|
||||
// closing vertical space
|
||||
$hbc = 0;
|
||||
if (isset($this->tagvspaces[$tag['value']][1]['h']) AND ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) {
|
||||
if (isset($this->tagvspaces[$tag['value']][1]['h']) && !empty($this->tagvspaces[$tag['value']][1]['h']) && ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) {
|
||||
$pre_h = $this->tagvspaces[$tag['value']][1]['h'];
|
||||
} elseif (isset($parent['fontsize'])) {
|
||||
$pre_h = $this->getCellHeight($parent['fontsize'] / $this->k);
|
||||
@ -19379,7 +19439,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
$hbz = 0; // distance from y to line bottom
|
||||
$hb = 0; // vertical space between block tags
|
||||
// calculate vertical space for block tags
|
||||
if (isset($this->tagvspaces[$tag['value']][1]['h']) AND ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) {
|
||||
if (isset($this->tagvspaces[$tag['value']][1]['h']) && !empty($this->tagvspaces[$tag['value']][1]['h']) && ($this->tagvspaces[$tag['value']][1]['h'] >= 0)) {
|
||||
$pre_h = $this->tagvspaces[$tag['value']][1]['h'];
|
||||
} elseif (isset($parent['fontsize'])) {
|
||||
$pre_h = $this->getCellHeight($parent['fontsize'] / $this->k);
|
||||
@ -23349,7 +23409,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
*/
|
||||
protected function SVGPath($d, $style='') {
|
||||
if ($this->state != 2) {
|
||||
return;
|
||||
return;
|
||||
}
|
||||
// set fill/stroke style
|
||||
$op = TCPDF_STATIC::getPathPaintOperator($style, '');
|
||||
@ -23369,6 +23429,8 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
$xmax = 0;
|
||||
$ymin = 2147483647;
|
||||
$ymax = 0;
|
||||
$xinitial = 0;
|
||||
$yinitial = 0;
|
||||
$relcoord = false;
|
||||
$minlen = (0.01 / $this->k); // minimum acceptable length (3 point)
|
||||
$firstcmd = true; // used to print first point
|
||||
@ -23413,6 +23475,8 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
if ($ck == 1) {
|
||||
$this->_outPoint($x, $y);
|
||||
$firstcmd = false;
|
||||
$xinitial = $x;
|
||||
$yinitial = $y;
|
||||
} else {
|
||||
$this->_outLine($x, $y);
|
||||
}
|
||||
@ -23600,8 +23664,8 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
if ((($ck + 1) % 7) == 0) {
|
||||
$x0 = $x;
|
||||
$y0 = $y;
|
||||
$rx = abs($params[($ck - 6)]);
|
||||
$ry = abs($params[($ck - 5)]);
|
||||
$rx = max(abs($params[($ck - 6)]), .000000001);
|
||||
$ry = max(abs($params[($ck - 5)]), .000000001);
|
||||
$ang = -$rawparams[($ck - 4)];
|
||||
$angle = deg2rad($ang);
|
||||
$fa = $rawparams[($ck - 3)]; // large-arc-flag
|
||||
@ -23688,6 +23752,8 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
}
|
||||
case 'Z': {
|
||||
$this->_out('h');
|
||||
$x = $x0 = $xinitial;
|
||||
$y = $y0 = $yinitial;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -23995,7 +24061,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||
case 'stop': {
|
||||
// gradient stops
|
||||
if (substr($attribs['offset'], -1) == '%') {
|
||||
$offset = floatval(substr($attribs['offset'], -1)) / 100;
|
||||
$offset = floatval(substr($attribs['offset'], 0, -1)) / 100;
|
||||
} else {
|
||||
$offset = floatval($attribs['offset']);
|
||||
if ($offset > 1) {
|
||||
|
@ -8,7 +8,7 @@
|
||||
<license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL</license>
|
||||
<authorEmail>info@tecnick.com</authorEmail>
|
||||
<authorUrl>www.tecnick.com</authorUrl>
|
||||
<version>6.2.26</version>
|
||||
<version>6.3.5</version>
|
||||
<description>This is a PHP class for generating PDF documents without requiring external extensions.</description>
|
||||
|
||||
<files>
|
||||
|
@ -453,7 +453,7 @@ class TCPDFBarcode {
|
||||
$k = 0;
|
||||
$clen = strlen($code);
|
||||
for ($i = 0; $i < $clen; ++$i) {
|
||||
$char = $code{$i};
|
||||
$char = $code[$i];
|
||||
if(!isset($chr[$char])) {
|
||||
// invalid character
|
||||
return false;
|
||||
@ -464,7 +464,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $chr[$char]{$j};
|
||||
$w = $chr[$char][$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -520,10 +520,10 @@ class TCPDFBarcode {
|
||||
$code_ext = '';
|
||||
$clen = strlen($code);
|
||||
for ($i = 0 ; $i < $clen; ++$i) {
|
||||
if (ord($code{$i}) > 127) {
|
||||
if (ord($code[$i]) > 127) {
|
||||
return false;
|
||||
}
|
||||
$code_ext .= $encode[$code{$i}];
|
||||
$code_ext .= $encode[$code[$i]];
|
||||
}
|
||||
return $code_ext;
|
||||
}
|
||||
@ -543,7 +543,7 @@ class TCPDFBarcode {
|
||||
$sum = 0;
|
||||
$clen = strlen($code);
|
||||
for ($i = 0 ; $i < $clen; ++$i) {
|
||||
$k = array_keys($chars, $code{$i});
|
||||
$k = array_keys($chars, $code[$i]);
|
||||
$sum += $k[0];
|
||||
}
|
||||
$j = ($sum % 43);
|
||||
@ -643,10 +643,10 @@ class TCPDFBarcode {
|
||||
$code_ext = '';
|
||||
$clen = strlen($code);
|
||||
for ($i = 0 ; $i < $clen; ++$i) {
|
||||
if (ord($code{$i}) > 127) {
|
||||
if (ord($code[$i]) > 127) {
|
||||
return false;
|
||||
}
|
||||
$code_ext .= $encode[$code{$i}];
|
||||
$code_ext .= $encode[$code[$i]];
|
||||
}
|
||||
// checksum
|
||||
$code_ext .= $this->checksum_code93($code_ext);
|
||||
@ -656,7 +656,7 @@ class TCPDFBarcode {
|
||||
$k = 0;
|
||||
$clen = strlen($code);
|
||||
for ($i = 0; $i < $clen; ++$i) {
|
||||
$char = ord($code{$i});
|
||||
$char = ord($code[$i]);
|
||||
if(!isset($chr[$char])) {
|
||||
// invalid character
|
||||
return false;
|
||||
@ -667,7 +667,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $chr[$char]{$j};
|
||||
$w = $chr[$char][$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -699,7 +699,7 @@ class TCPDFBarcode {
|
||||
$p = 1;
|
||||
$check = 0;
|
||||
for ($i = ($len - 1); $i >= 0; --$i) {
|
||||
$k = array_keys($chars, $code{$i});
|
||||
$k = array_keys($chars, $code[$i]);
|
||||
$check += ($k[0] * $p);
|
||||
++$p;
|
||||
if ($p > 20) {
|
||||
@ -713,7 +713,7 @@ class TCPDFBarcode {
|
||||
$p = 1;
|
||||
$check = 0;
|
||||
for ($i = $len; $i >= 0; --$i) {
|
||||
$k = array_keys($chars, $code{$i});
|
||||
$k = array_keys($chars, $code[$i]);
|
||||
$check += ($k[0] * $p);
|
||||
++$p;
|
||||
if ($p > 15) {
|
||||
@ -738,11 +738,11 @@ class TCPDFBarcode {
|
||||
$len = strlen($code);
|
||||
$sum = 0;
|
||||
for ($i = 0; $i < $len; $i+=2) {
|
||||
$sum += $code{$i};
|
||||
$sum += $code[$i];
|
||||
}
|
||||
$sum *= 3;
|
||||
for ($i = 1; $i < $len; $i+=2) {
|
||||
$sum += ($code{$i});
|
||||
$sum += ($code[$i]);
|
||||
}
|
||||
$r = $sum % 10;
|
||||
if($r > 0) {
|
||||
@ -783,7 +783,7 @@ class TCPDFBarcode {
|
||||
$p = 2;
|
||||
$check = 0;
|
||||
for ($i = ($clen - 1); $i >= 0; --$i) {
|
||||
$check += (hexdec($code{$i}) * $p);
|
||||
$check += (hexdec($code[$i]) * $p);
|
||||
++$p;
|
||||
if ($p > 7) {
|
||||
$p = 2;
|
||||
@ -798,7 +798,7 @@ class TCPDFBarcode {
|
||||
$seq = '110'; // left guard
|
||||
$clen = strlen($code);
|
||||
for ($i = 0; $i < $clen; ++$i) {
|
||||
$digit = $code{$i};
|
||||
$digit = $code[$i];
|
||||
if (!isset($chr[$digit])) {
|
||||
// invalid character
|
||||
return false;
|
||||
@ -841,7 +841,7 @@ class TCPDFBarcode {
|
||||
$seq = '11011010';
|
||||
$clen = strlen($code);
|
||||
for ($i = 0; $i < $clen; ++$i) {
|
||||
$digit = $code{$i};
|
||||
$digit = $code[$i];
|
||||
if (!isset($chr[$digit])) {
|
||||
// invalid character
|
||||
return false;
|
||||
@ -867,8 +867,8 @@ class TCPDFBarcode {
|
||||
$k = 0;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
$w += 1;
|
||||
if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq{$i} != $seq{($i+1)}))) {
|
||||
if ($seq{$i} == '1') {
|
||||
if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq[$i] != $seq[($i+1)]))) {
|
||||
if ($seq[$i] == '1') {
|
||||
$t = true; // bar
|
||||
} else {
|
||||
$t = false; // space
|
||||
@ -919,8 +919,8 @@ class TCPDFBarcode {
|
||||
$k = 0;
|
||||
$clen = strlen($code);
|
||||
for ($i = 0; $i < $clen; $i = ($i + 2)) {
|
||||
$char_bar = $code{$i};
|
||||
$char_space = $code{$i+1};
|
||||
$char_bar = $code[$i];
|
||||
$char_space = $code[$i+1];
|
||||
if((!isset($chr[$char_bar])) OR (!isset($chr[$char_space]))) {
|
||||
// invalid character
|
||||
return false;
|
||||
@ -929,7 +929,7 @@ class TCPDFBarcode {
|
||||
$seq = '';
|
||||
$chrlen = strlen($chr[$char_bar]);
|
||||
for ($s = 0; $s < $chrlen; $s++){
|
||||
$seq .= $chr[$char_bar]{$s} . $chr[$char_space]{$s};
|
||||
$seq .= $chr[$char_bar][$s] . $chr[$char_space][$s];
|
||||
}
|
||||
$seqlen = strlen($seq);
|
||||
for ($j = 0; $j < $seqlen; ++$j) {
|
||||
@ -938,7 +938,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq{$j};
|
||||
$w = $seq[$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -1085,7 +1085,7 @@ class TCPDFBarcode {
|
||||
case 'A': { // MODE A
|
||||
$startid = 103;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
$char = $code{$i};
|
||||
$char = $code[$i];
|
||||
$char_id = ord($char);
|
||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||
$code_data[] = $fnc_a[$char_id];
|
||||
@ -1100,7 +1100,7 @@ class TCPDFBarcode {
|
||||
case 'B': { // MODE B
|
||||
$startid = 104;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
$char = $code{$i};
|
||||
$char = $code[$i];
|
||||
$char_id = ord($char);
|
||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||
$code_data[] = $fnc_b[$char_id];
|
||||
@ -1124,7 +1124,7 @@ class TCPDFBarcode {
|
||||
return false;
|
||||
}
|
||||
for ($i = 0; $i < $len; $i+=2) {
|
||||
$chrnum = $code{$i}.$code{$i+1};
|
||||
$chrnum = $code[$i].$code[$i+1];
|
||||
if (preg_match('/([0-9]{2})/', $chrnum) > 0) {
|
||||
$code_data[] = intval($chrnum);
|
||||
} else {
|
||||
@ -1180,7 +1180,7 @@ class TCPDFBarcode {
|
||||
}
|
||||
}
|
||||
for ($i = 0; $i < $seq[2]; ++$i) {
|
||||
$char = $seq[1]{$i};
|
||||
$char = $seq[1][$i];
|
||||
$char_id = ord($char);
|
||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||
$code_data[] = $fnc_a[$char_id];
|
||||
@ -1223,7 +1223,7 @@ class TCPDFBarcode {
|
||||
}
|
||||
}
|
||||
for ($i = 0; $i < $seq[2]; ++$i) {
|
||||
$char = $seq[1]{$i};
|
||||
$char = $seq[1][$i];
|
||||
$char_id = ord($char);
|
||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||
$code_data[] = $fnc_b[$char_id];
|
||||
@ -1240,7 +1240,7 @@ class TCPDFBarcode {
|
||||
$code_data[] = 99;
|
||||
}
|
||||
for ($i = 0; $i < $seq[2]; $i+=2) {
|
||||
$chrnum = $seq[1]{$i}.$seq[1]{$i+1};
|
||||
$chrnum = $seq[1][$i].$seq[1][$i+1];
|
||||
$code_data[] = intval($chrnum);
|
||||
}
|
||||
break;
|
||||
@ -1271,7 +1271,7 @@ class TCPDFBarcode {
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq{$j};
|
||||
$w = $seq[$j];
|
||||
$bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
}
|
||||
@ -1337,14 +1337,14 @@ class TCPDFBarcode {
|
||||
// calculate check digit
|
||||
$sum_a = 0;
|
||||
for ($i = 1; $i < $data_len; $i+=2) {
|
||||
$sum_a += $code{$i};
|
||||
$sum_a += $code[$i];
|
||||
}
|
||||
if ($len > 12) {
|
||||
$sum_a *= 3;
|
||||
}
|
||||
$sum_b = 0;
|
||||
for ($i = 0; $i < $data_len; $i+=2) {
|
||||
$sum_b += ($code{$i});
|
||||
$sum_b += ($code[$i]);
|
||||
}
|
||||
if ($len < 13) {
|
||||
$sum_b *= 3;
|
||||
@ -1356,7 +1356,7 @@ class TCPDFBarcode {
|
||||
if ($code_len == $data_len) {
|
||||
// add check digit
|
||||
$code .= $r;
|
||||
} elseif ($r !== intval($code{$data_len})) {
|
||||
} elseif ($r !== intval($code[$data_len])) {
|
||||
// wrong checkdigit
|
||||
return false;
|
||||
}
|
||||
@ -1467,7 +1467,7 @@ class TCPDFBarcode {
|
||||
$bararray = array('code' => $upce_code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
|
||||
$p = $upce_parities[$code[1]][$r];
|
||||
for ($i = 0; $i < 6; ++$i) {
|
||||
$seq .= $codes[$p[$i]][$upce_code{$i}];
|
||||
$seq .= $codes[$p[$i]][$upce_code[$i]];
|
||||
}
|
||||
$seq .= '010101'; // right guard bar
|
||||
} else {
|
||||
@ -1475,17 +1475,17 @@ class TCPDFBarcode {
|
||||
$half_len = intval(ceil($len / 2));
|
||||
if ($len == 8) {
|
||||
for ($i = 0; $i < $half_len; ++$i) {
|
||||
$seq .= $codes['A'][$code{$i}];
|
||||
$seq .= $codes['A'][$code[$i]];
|
||||
}
|
||||
} else {
|
||||
$p = $parities[$code[0]];
|
||||
for ($i = 1; $i < $half_len; ++$i) {
|
||||
$seq .= $codes[$p[$i-1]][$code{$i}];
|
||||
$seq .= $codes[$p[$i-1]][$code[$i]];
|
||||
}
|
||||
}
|
||||
$seq .= '01010'; // center guard bar
|
||||
for ($i = $half_len; $i < $len; ++$i) {
|
||||
$seq .= $codes['C'][$code{$i}];
|
||||
$seq .= $codes['C'][$code[$i]];
|
||||
}
|
||||
$seq .= '101'; // right guard bar
|
||||
}
|
||||
@ -1493,8 +1493,8 @@ class TCPDFBarcode {
|
||||
$w = 0;
|
||||
for ($i = 0; $i < $clen; ++$i) {
|
||||
$w += 1;
|
||||
if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq{$i} != $seq{($i+1)}))) {
|
||||
if ($seq{$i} == '1') {
|
||||
if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq[$i] != $seq[$i+1]))) {
|
||||
if ($seq[$i] == '1') {
|
||||
$t = true; // bar
|
||||
} else {
|
||||
$t = false; // space
|
||||
@ -1578,7 +1578,7 @@ class TCPDFBarcode {
|
||||
$seq .= $codes[$p[0]][$code[0]];
|
||||
for ($i = 1; $i < $len; ++$i) {
|
||||
$seq .= '01'; // separator
|
||||
$seq .= $codes[$p[$i]][$code{$i}];
|
||||
$seq .= $codes[$p[$i]][$code[$i]];
|
||||
}
|
||||
$bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
|
||||
return $this->binseq_to_array($seq, $bararray);
|
||||
@ -1629,7 +1629,7 @@ class TCPDFBarcode {
|
||||
// calculate checksum
|
||||
$sum = 0;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
$sum += intval($code{$i});
|
||||
$sum += intval($code[$i]);
|
||||
}
|
||||
$chkd = ($sum % 10);
|
||||
if($chkd > 0) {
|
||||
@ -1643,7 +1643,7 @@ class TCPDFBarcode {
|
||||
$bararray['maxw'] += 2;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
for ($j = 0; $j < 5; ++$j) {
|
||||
$h = $barlen[$code{$i}][$j];
|
||||
$h = $barlen[$code[$i]][$j];
|
||||
$p = floor(1 / $h);
|
||||
$bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p);
|
||||
$bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0);
|
||||
@ -1756,8 +1756,8 @@ class TCPDFBarcode {
|
||||
$row = 0;
|
||||
$col = 0;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
$row += $checktable[$code{$i}][0];
|
||||
$col += $checktable[$code{$i}][1];
|
||||
$row += $checktable[$code[$i]][0];
|
||||
$col += $checktable[$code[$i]][1];
|
||||
}
|
||||
$row %= 6;
|
||||
$col %= 6;
|
||||
@ -1774,7 +1774,7 @@ class TCPDFBarcode {
|
||||
}
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
for ($j = 0; $j < 4; ++$j) {
|
||||
switch ($barmode[$code{$i}][$j]) {
|
||||
switch ($barmode[$code[$i]][$j]) {
|
||||
case 1: {
|
||||
$p = 0;
|
||||
$h = 2;
|
||||
@ -1846,17 +1846,17 @@ class TCPDFBarcode {
|
||||
$code = 'A'.strtoupper($code).'A';
|
||||
$len = strlen($code);
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
if (!isset($chr[$code{$i}])) {
|
||||
if (!isset($chr[$code[$i]])) {
|
||||
return false;
|
||||
}
|
||||
$seq = $chr[$code{$i}];
|
||||
$seq = $chr[$code[$i]];
|
||||
for ($j = 0; $j < 8; ++$j) {
|
||||
if (($j % 2) == 0) {
|
||||
$t = true; // bar
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq{$j};
|
||||
$w = $seq[$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -1896,7 +1896,7 @@ class TCPDFBarcode {
|
||||
$p = 1;
|
||||
$check = 0;
|
||||
for ($i = ($len - 1); $i >= 0; --$i) {
|
||||
$digit = $code{$i};
|
||||
$digit = $code[$i];
|
||||
if ($digit == '-') {
|
||||
$dval = 10;
|
||||
} else {
|
||||
@ -1918,7 +1918,7 @@ class TCPDFBarcode {
|
||||
$p = 1;
|
||||
$check = 0;
|
||||
for ($i = $len; $i >= 0; --$i) {
|
||||
$digit = $code{$i};
|
||||
$digit = $code[$i];
|
||||
if ($digit == '-') {
|
||||
$dval = 10;
|
||||
} else {
|
||||
@ -1937,17 +1937,17 @@ class TCPDFBarcode {
|
||||
$code = 'S'.$code.'S';
|
||||
$len += 3;
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
if (!isset($chr[$code{$i}])) {
|
||||
if (!isset($chr[$code[$i]])) {
|
||||
return false;
|
||||
}
|
||||
$seq = $chr[$code{$i}];
|
||||
$seq = $chr[$code[$i]];
|
||||
for ($j = 0; $j < 6; ++$j) {
|
||||
if (($j % 2) == 0) {
|
||||
$t = true; // bar
|
||||
} else {
|
||||
$t = false; // space
|
||||
}
|
||||
$w = $seq{$j};
|
||||
$w = $seq[$j];
|
||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||
$bararray['maxw'] += $w;
|
||||
++$k;
|
||||
@ -2016,7 +2016,7 @@ class TCPDFBarcode {
|
||||
$bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 2, 'bcode' => array());
|
||||
$len = strlen($seq);
|
||||
for ($i = 0; $i < $len; ++$i) {
|
||||
switch ($seq{$i}) {
|
||||
switch ($seq[$i]) {
|
||||
case '1': {
|
||||
$p = 1;
|
||||
$h = 1;
|
||||
@ -2255,7 +2255,7 @@ class TCPDFBarcode {
|
||||
$bitval = 1;
|
||||
$len = strlen($hex);
|
||||
for($pos = ($len - 1); $pos >= 0; --$pos) {
|
||||
$dec = bcadd($dec, bcmul(hexdec($hex{$pos}), $bitval));
|
||||
$dec = bcadd($dec, bcmul(hexdec($hex[$pos]), $bitval));
|
||||
$bitval = bcmul($bitval, 16);
|
||||
}
|
||||
return $dec;
|
||||
|
@ -531,10 +531,10 @@ class TCPDF_PARSER {
|
||||
if ($char == '(') {
|
||||
$open_bracket = 1;
|
||||
while ($open_bracket > 0) {
|
||||
if (!isset($this->pdfdata{$strpos})) {
|
||||
if (!isset($this->pdfdata[$strpos])) {
|
||||
break;
|
||||
}
|
||||
$ch = $this->pdfdata{$strpos};
|
||||
$ch = $this->pdfdata[$strpos];
|
||||
switch ($ch) {
|
||||
case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash)
|
||||
// skip next character
|
||||
@ -578,7 +578,7 @@ class TCPDF_PARSER {
|
||||
}
|
||||
case '<': // \x3C LESS-THAN SIGN
|
||||
case '>': { // \x3E GREATER-THAN SIGN
|
||||
if (isset($this->pdfdata{($offset + 1)}) AND ($this->pdfdata{($offset + 1)} == $char)) {
|
||||
if (isset($this->pdfdata[($offset + 1)]) AND ($this->pdfdata[($offset + 1)] == $char)) {
|
||||
// dictionary object
|
||||
$objtype = $char.$char;
|
||||
$offset += 2;
|
||||
|
@ -31,5 +31,21 @@
|
||||
<maintainerurl>https://github.com/llewellynvdm</maintainerurl>
|
||||
<targetplatform name="joomla" version="3.*"/>
|
||||
</update>
|
||||
<update>
|
||||
<name>TCPDF</name>
|
||||
<description>This is a PHP class for generating PDF documents without requiring external extensions.</description>
|
||||
<element>tcpdf</element>
|
||||
<type>library</type>
|
||||
<client>site</client>
|
||||
<folder></folder>
|
||||
<version>6.3.5</version>
|
||||
<infourl title="TCPDF for Joomla!">https://github.com/vdm-io/tcpdf</infourl>
|
||||
<downloads>
|
||||
<downloadurl type="full" format="zip">https://github.com/vdm-io/tcpdf/archive/v6.3.5.zip</downloadurl>
|
||||
</downloads>
|
||||
<maintainer>Llewellyn van der Merwe</maintainer>
|
||||
<maintainerurl>https://github.com/llewellynvdm</maintainerurl>
|
||||
<targetplatform name="joomla" version="3.*"/>
|
||||
</update>
|
||||
</updates>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user