mirror of
https://github.com/vdm-io/tcpdf.git
synced 2024-05-28 11:50:48 +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
|
|
@ -7,6 +7,8 @@
|
||||||
published by the Free Software Foundation, either version 3 of the
|
published by the Free Software Foundation, either version 3 of the
|
||||||
License, or (at your option) any later version.
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
2002-2019 Nicola Asuni - Tecnick.com LTD
|
||||||
|
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
* **category** Library
|
* **category** Library
|
||||||
* **author** Nicola Asuni <info@tecnick.com>
|
* **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)
|
* **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT)
|
||||||
* **link** http://www.tcpdf.org
|
* **link** http://www.tcpdf.org
|
||||||
* **source** https://github.com/tecnickcom/TCPDF
|
* **source** https://github.com/tecnickcom/TCPDF
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "tecnickcom/tcpdf",
|
"name": "tecnickcom/tcpdf",
|
||||||
"version": "6.2.26",
|
"version": "6.3.5",
|
||||||
"homepage": "http://www.tcpdf.org/",
|
"homepage": "http://www.tcpdf.org/",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
|
"description": "TCPDF is a PHP class for generating PDF documents and barcodes.",
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"pdf417",
|
"pdf417",
|
||||||
"barcodes"
|
"barcodes"
|
||||||
],
|
],
|
||||||
"license": "LGPL-3.0",
|
"license": "LGPL-3.0-only",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Nicola Asuni",
|
"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]) {
|
if ($numch[ENC_C40] == $numch[ENC_X12]) {
|
||||||
$k = ($pos + $charscount + 1);
|
$k = ($pos + $charscount + 1);
|
||||||
while ($k < $data_length) {
|
while ($k < $data_length) {
|
||||||
$tmpchr = ord($data{$k});
|
$tmpchr = ord($data[$k]);
|
||||||
if ($this->isCharMode($tmpchr, ENC_X12)) {
|
if ($this->isCharMode($tmpchr, ENC_X12)) {
|
||||||
return ENC_X12;
|
return ENC_X12;
|
||||||
} elseif (!($this->isCharMode($tmpchr, ENC_X12) OR $this->isCharMode($tmpchr, ENC_C40))) {
|
} 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
|
$txtarr = array(); // array of characters and sub-mode switching characters
|
||||||
$codelen = strlen($code);
|
$codelen = strlen($code);
|
||||||
for ($i = 0; $i < $codelen; ++$i) {
|
for ($i = 0; $i < $codelen; ++$i) {
|
||||||
$chval = ord($code{$i});
|
$chval = ord($code[$i]);
|
||||||
if (($k = array_search($chval, $this->textsubmodes[$submode])) !== false) {
|
if (($k = array_search($chval, $this->textsubmodes[$submode])) !== false) {
|
||||||
// we are on the same sub-mode
|
// we are on the same sub-mode
|
||||||
$txtarr[] = $k;
|
$txtarr[] = $k;
|
||||||
|
@ -888,7 +888,7 @@ class PDF417 {
|
||||||
// search new sub-mode
|
// search new sub-mode
|
||||||
if (($s != $submode) AND (($k = array_search($chval, $this->textsubmodes[$s])) !== false)) {
|
if (($s != $submode) AND (($k = array_search($chval, $this->textsubmodes[$s])) !== false)) {
|
||||||
// $s is the new submode
|
// $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)
|
// shift (temporary change only for this char)
|
||||||
if ($s == 3) {
|
if ($s == 3) {
|
||||||
// shift to puntuaction
|
// shift to puntuaction
|
||||||
|
@ -952,7 +952,7 @@ class PDF417 {
|
||||||
$cw = array_merge($cw, $cw6);
|
$cw = array_merge($cw, $cw6);
|
||||||
} else {
|
} else {
|
||||||
for ($i = 0; $i < $sublen; ++$i) {
|
for ($i = 0; $i < $sublen; ++$i) {
|
||||||
$cw[] = ord($code{$i});
|
$cw[] = ord($code[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$code = $rest;
|
$code = $rest;
|
||||||
|
|
|
@ -358,7 +358,7 @@ class TCPDF_COLORS {
|
||||||
$color_code = self::$webcolor[$color];
|
$color_code = self::$webcolor[$color];
|
||||||
} else {
|
} else {
|
||||||
// spot color
|
// spot color
|
||||||
$returncolor = self::getSpotColor($color, $spotc);
|
$returncolor = self::getSpotColor($hcolor, $spotc);
|
||||||
if ($returncolor === false) {
|
if ($returncolor === false) {
|
||||||
$returncolor = $defcol;
|
$returncolor = $defcol;
|
||||||
}
|
}
|
||||||
|
|
|
@ -279,7 +279,7 @@ class TCPDF_FILTERS {
|
||||||
// convert string to binary string
|
// convert string to binary string
|
||||||
$bitstring = '';
|
$bitstring = '';
|
||||||
for ($i = 0; $i < $data_length; ++$i) {
|
for ($i = 0; $i < $data_length; ++$i) {
|
||||||
$bitstring .= sprintf('%08b', ord($data{$i}));
|
$bitstring .= sprintf('%08b', ord($data[$i]));
|
||||||
}
|
}
|
||||||
// get the number of bits
|
// get the number of bits
|
||||||
$data_length = strlen($bitstring);
|
$data_length = strlen($bitstring);
|
||||||
|
@ -376,7 +376,7 @@ class TCPDF_FILTERS {
|
||||||
$i = 0;
|
$i = 0;
|
||||||
while($i < $data_length) {
|
while($i < $data_length) {
|
||||||
// get current byte value
|
// get current byte value
|
||||||
$byte = ord($data{$i});
|
$byte = ord($data[$i]);
|
||||||
if ($byte == 128) {
|
if ($byte == 128) {
|
||||||
// a length value of 128 denote EOD
|
// a length value of 128 denote EOD
|
||||||
break;
|
break;
|
||||||
|
@ -389,7 +389,7 @@ class TCPDF_FILTERS {
|
||||||
} else {
|
} else {
|
||||||
// if length is in the range 129 to 255,
|
// if length is in the range 129 to 255,
|
||||||
// the following single byte shall be copied 257 - length (2 to 128) times during decompression
|
// 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
|
// move to next block
|
||||||
$i += 2;
|
$i += 2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1664,6 +1664,7 @@ class TCPDF_FONTS {
|
||||||
* @public static
|
* @public static
|
||||||
*/
|
*/
|
||||||
public static function unichr($c, $unicode=true) {
|
public static function unichr($c, $unicode=true) {
|
||||||
|
$c = intval($c);
|
||||||
if (!$unicode) {
|
if (!$unicode) {
|
||||||
return chr($c);
|
return chr($c);
|
||||||
} elseif ($c <= 0x7F) {
|
} elseif ($c <= 0x7F) {
|
||||||
|
|
|
@ -311,7 +311,7 @@ class TCPDF_IMAGES {
|
||||||
if ($n > 0) {
|
if ($n > 0) {
|
||||||
$trns = array();
|
$trns = array();
|
||||||
for ($i = 0; $i < $n; ++ $i) {
|
for ($i = 0; $i < $n; ++ $i) {
|
||||||
$trns[] = ord($t{$i});
|
$trns[] = ord($t[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?php
|
<?php
|
||||||
//============================================================+
|
//============================================================+
|
||||||
// File name : tcpdf_static.php
|
// File name : tcpdf_static.php
|
||||||
// Version : 1.1.3
|
// Version : 1.1.4
|
||||||
// Begin : 2002-08-03
|
// 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
|
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
|
@ -55,7 +55,7 @@ class TCPDF_STATIC {
|
||||||
* Current TCPDF version.
|
* Current TCPDF version.
|
||||||
* @private static
|
* @private static
|
||||||
*/
|
*/
|
||||||
private static $tcpdf_version = '6.2.26';
|
private static $tcpdf_version = '6.3.5';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* String alias for total number of pages.
|
* String alias for total number of pages.
|
||||||
|
@ -1829,6 +1829,8 @@ class TCPDF_STATIC {
|
||||||
*/
|
*/
|
||||||
public static function url_exists($url) {
|
public static function url_exists($url) {
|
||||||
$crs = curl_init();
|
$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_URL, $url);
|
||||||
curl_setopt($crs, CURLOPT_NOBODY, true);
|
curl_setopt($crs, CURLOPT_NOBODY, true);
|
||||||
curl_setopt($crs, CURLOPT_FAILONERROR, true);
|
curl_setopt($crs, CURLOPT_FAILONERROR, true);
|
||||||
|
@ -1846,6 +1848,26 @@ class TCPDF_STATIC {
|
||||||
return ($code == 200);
|
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.
|
* Wrapper for file_exists.
|
||||||
* Checks whether a file or directory exists.
|
* Checks whether a file or directory exists.
|
||||||
|
@ -1926,10 +1948,10 @@ class TCPDF_STATIC {
|
||||||
$alt = array_unique($alt);
|
$alt = array_unique($alt);
|
||||||
foreach ($alt as $path) {
|
foreach ($alt as $path) {
|
||||||
if (!self::file_exists($path)) {
|
if (!self::file_exists($path)) {
|
||||||
return false;
|
continue;
|
||||||
}
|
}
|
||||||
$ret = @file_get_contents($path);
|
$ret = @file_get_contents($path);
|
||||||
if ($ret !== false) {
|
if ( $ret != false ) {
|
||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
// try to use CURL for URLs
|
// try to use CURL for URLs
|
||||||
|
|
180
tcpdf.php
180
tcpdf.php
|
@ -1,13 +1,13 @@
|
||||||
<?php
|
<?php
|
||||||
//============================================================+
|
//============================================================+
|
||||||
// File name : tcpdf.php
|
// File name : tcpdf.php
|
||||||
// Version : 6.2.26
|
// Version : 6.3.2
|
||||||
// Begin : 2002-08-03
|
// 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
|
// Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com
|
||||||
// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html)
|
// 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.
|
// This file is part of TCPDF software library.
|
||||||
//
|
//
|
||||||
|
@ -45,7 +45,7 @@
|
||||||
// * font subsetting;
|
// * font subsetting;
|
||||||
// * methods to publish some XHTML + CSS code, Javascript and Forms;
|
// * methods to publish some XHTML + CSS code, Javascript and Forms;
|
||||||
// * images, graphic (geometric figures) and transformation methods;
|
// * 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;
|
// * 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;
|
// * JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;
|
||||||
// * automatic page header and footer management;
|
// * automatic page header and footer management;
|
||||||
|
@ -80,7 +80,7 @@
|
||||||
* <li>font subsetting;</li>
|
* <li>font subsetting;</li>
|
||||||
* <li>methods to publish some XHTML + CSS code, Javascript and Forms;</li>
|
* <li>methods to publish some XHTML + CSS code, Javascript and Forms;</li>
|
||||||
* <li>images, graphic (geometric figures) and transformation methods;
|
* <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>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>JPEG and PNG ICC profiles, Grayscale, RGB, CMYK, Spot Colors and Transparencies;</li>
|
||||||
* <li>automatic page header and footer management;</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>
|
* Tools to encode your unicode fonts are on fonts/utils directory.</p>
|
||||||
* @package com.tecnick.tcpdf
|
* @package com.tecnick.tcpdf
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
* @version 6.2.26
|
* @version 6.3.2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// TCPDF configuration
|
// 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>
|
* 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
|
* @package com.tecnick.tcpdf
|
||||||
* @brief PHP class for generating PDF documents without requiring external extensions.
|
* @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
|
* @author Nicola Asuni - info@tecnick.com
|
||||||
* @IgnoreAnnotation("protected")
|
* @IgnoreAnnotation("protected")
|
||||||
* @IgnoreAnnotation("public")
|
* @IgnoreAnnotation("public")
|
||||||
|
@ -1760,6 +1760,13 @@ class TCPDF {
|
||||||
*/
|
*/
|
||||||
protected $pdfa_mode = false;
|
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
|
* Document creation date-time
|
||||||
* @protected
|
* @protected
|
||||||
|
@ -1781,6 +1788,13 @@ class TCPDF {
|
||||||
*/
|
*/
|
||||||
protected $custom_xmp = '';
|
protected $custom_xmp = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Custom XMP RDF data.
|
||||||
|
* @protected
|
||||||
|
* @since 6.3.0 (2019-09-19)
|
||||||
|
*/
|
||||||
|
protected $custom_xmp_rdf = '';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Overprint mode array.
|
* Overprint mode array.
|
||||||
* (Check the "Entries in a Graphics State Parameter Dictionary" on PDF 32000-1:2008).
|
* (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 $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 $encoding (string) Charset encoding (used only when converting back html entities); default is UTF-8.
|
||||||
* @param $diskcache (boolean) DEPRECATED FEATURE
|
* @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
|
* @public
|
||||||
* @see getPageSizeFromFormat(), setPageFormat()
|
* @see getPageSizeFromFormat(), setPageFormat()
|
||||||
*/
|
*/
|
||||||
|
@ -1850,8 +1864,14 @@ class TCPDF {
|
||||||
$this->font_obj_ids = array();
|
$this->font_obj_ids = array();
|
||||||
$this->page_obj_id = array();
|
$this->page_obj_id = array();
|
||||||
$this->form_obj_id = array();
|
$this->form_obj_id = array();
|
||||||
|
|
||||||
// set pdf/a mode
|
// 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;
|
$this->force_srgb = false;
|
||||||
// set language direction
|
// set language direction
|
||||||
$this->rtl = false;
|
$this->rtl = false;
|
||||||
|
@ -1960,7 +1980,7 @@ class TCPDF {
|
||||||
// set default JPEG quality
|
// set default JPEG quality
|
||||||
$this->jpeg_quality = 75;
|
$this->jpeg_quality = 75;
|
||||||
// initialize some settings
|
// initialize some settings
|
||||||
TCPDF_FONTS::utf8Bidi(array(''), '', false, $this->isunicode, $this->CurrentFont);
|
TCPDF_FONTS::utf8Bidi(array(), '', false, $this->isunicode, $this->CurrentFont);
|
||||||
// set default font
|
// set default font
|
||||||
$this->SetFont($this->FontFamily, $this->FontStyle, $this->FontSizePt);
|
$this->SetFont($this->FontFamily, $this->FontStyle, $this->FontSizePt);
|
||||||
$this->setHeaderFont(array($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->default_graphic_vars = $this->getGraphicVars();
|
||||||
$this->header_xobj_autoreset = false;
|
$this->header_xobj_autoreset = false;
|
||||||
$this->custom_xmp = '';
|
$this->custom_xmp = '';
|
||||||
|
$this->custom_xmp_rdf = '';
|
||||||
// Call cleanup method after script execution finishes or exit() is called.
|
// 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.
|
// NOTE: This will not be executed if the process is killed with a SIGTERM or SIGKILL signal.
|
||||||
register_shutdown_function(array($this, '_destroy'), true);
|
register_shutdown_function(array($this, '_destroy'), true);
|
||||||
|
@ -2828,10 +2849,13 @@ class TCPDF {
|
||||||
* @since 1.4
|
* @since 1.4
|
||||||
*/
|
*/
|
||||||
public function SetCompression($compress=true) {
|
public function SetCompression($compress=true) {
|
||||||
if (function_exists('gzcompress')) {
|
|
||||||
$this->compress = $compress ? true : false;
|
|
||||||
} else {
|
|
||||||
$this->compress = false;
|
$this->compress = false;
|
||||||
|
if (function_exists('gzcompress')) {
|
||||||
|
if ($compress) {
|
||||||
|
if ( !$this->pdfa_mode) {
|
||||||
|
$this->compress = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4691,14 +4715,14 @@ class TCPDF {
|
||||||
* Defines the page and position a link points to.
|
* Defines the page and position a link points to.
|
||||||
* @param $link (int) The link identifier returned by AddLink()
|
* @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 $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
|
* @public
|
||||||
* @since 1.5
|
* @since 1.5
|
||||||
* @see AddLink()
|
* @see AddLink()
|
||||||
*/
|
*/
|
||||||
public function SetLink($link, $y=0, $page=-1) {
|
public function SetLink($link, $y=0, $page=-1) {
|
||||||
$fixed = false;
|
$fixed = false;
|
||||||
if (!empty($page) AND ($page[0] == '*')) {
|
if (!empty($page) AND (substr($page, 0, 1) == '*')) {
|
||||||
$page = intval(substr($page, 1));
|
$page = intval(substr($page, 1));
|
||||||
// this page number will not be changed when moving/add/deleting pages
|
// this page number will not be changed when moving/add/deleting pages
|
||||||
$fixed = true;
|
$fixed = true;
|
||||||
|
@ -4807,7 +4831,7 @@ class TCPDF {
|
||||||
$this->PageAnnots[$page] = array();
|
$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);
|
$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']))
|
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 (@TCPDF_STATIC::file_exists($opt['FS']) OR TCPDF_STATIC::isValidURL($opt['FS']))
|
||||||
AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) {
|
AND (!isset($this->embeddedfiles[basename($opt['FS'])]))) {
|
||||||
|
@ -4833,8 +4857,8 @@ class TCPDF {
|
||||||
* @see Annotation()
|
* @see Annotation()
|
||||||
*/
|
*/
|
||||||
protected function _putEmbeddedFiles() {
|
protected function _putEmbeddedFiles() {
|
||||||
if ($this->pdfa_mode) {
|
if ($this->pdfa_mode && $this->pdfa_version != 3) {
|
||||||
// embedded files are not allowed in PDF/A mode
|
// embedded files are not allowed in PDF/A mode version 1 and 2
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
reset($this->embeddedfiles);
|
reset($this->embeddedfiles);
|
||||||
|
@ -4847,7 +4871,10 @@ class TCPDF {
|
||||||
$this->efnames[$filename] = $filedata['f'].' 0 R';
|
$this->efnames[$filename] = $filedata['f'].' 0 R';
|
||||||
// embedded file specification object
|
// embedded file specification object
|
||||||
$out = $this->_getobj($filedata['f'])."\n";
|
$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';
|
$out .= "\n".'endobj';
|
||||||
$this->_out($out);
|
$this->_out($out);
|
||||||
// embedded file object
|
// embedded file object
|
||||||
|
@ -4856,6 +4883,11 @@ class TCPDF {
|
||||||
$data = gzcompress($data);
|
$data = gzcompress($data);
|
||||||
$filter = ' /Filter /FlateDecode';
|
$filter = ' /Filter /FlateDecode';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($this->pdfa_version == 3) {
|
||||||
|
$filter = ' /Subtype /text#2Fxml';
|
||||||
|
}
|
||||||
|
|
||||||
$stream = $this->_getrawstream($data, $filedata['n']);
|
$stream = $this->_getrawstream($data, $filedata['n']);
|
||||||
$out = $this->_getobj($filedata['n'])."\n";
|
$out = $this->_getobj($filedata['n'])."\n";
|
||||||
$out .= '<< /Type /EmbeddedFile'.$filter.' /Length '.strlen($stream).' /Params <</Size '.$rawsize.'>> >>';
|
$out .= '<< /Type /EmbeddedFile'.$filter.' /Length '.strlen($stream).' /Params <</Size '.$rawsize.'>> >>';
|
||||||
|
@ -6219,12 +6251,12 @@ class TCPDF {
|
||||||
* $this->setPage($page);
|
* $this->setPage($page);
|
||||||
* if ($page == $start_page) {
|
* if ($page == $start_page) {
|
||||||
* // first page
|
* // first page
|
||||||
* $height = $this->h - $start_y - $this->bMargin;
|
* $height += $this->h - $start_y - $this->bMargin;
|
||||||
* } elseif ($page == $end_page) {
|
* } elseif ($page == $end_page) {
|
||||||
* // last page
|
* // last page
|
||||||
* $height = $end_y - $this->tMargin;
|
* $height += $end_y - $this->tMargin;
|
||||||
* } else {
|
* } else {
|
||||||
* $height = $this->h - $this->tMargin - $this->bMargin;
|
* $height += $this->h - $this->tMargin - $this->bMargin;
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
* }
|
* }
|
||||||
|
@ -7133,20 +7165,10 @@ class TCPDF {
|
||||||
$info['i'] = $this->setImageBuffer($file, $info);
|
$info['i'] = $this->setImageBuffer($file, $info);
|
||||||
}
|
}
|
||||||
// set alignment
|
// set alignment
|
||||||
|
$this->img_rb_x = $x + $w;
|
||||||
$this->img_rb_y = $y + $h;
|
$this->img_rb_y = $y + $h;
|
||||||
|
|
||||||
// set alignment
|
// 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;
|
|
||||||
} else {
|
|
||||||
if ($palign == 'L') {
|
if ($palign == 'L') {
|
||||||
$ximg = $this->lMargin;
|
$ximg = $this->lMargin;
|
||||||
} elseif ($palign == 'C') {
|
} elseif ($palign == 'C') {
|
||||||
|
@ -7156,8 +7178,7 @@ class TCPDF {
|
||||||
} else {
|
} else {
|
||||||
$ximg = $x;
|
$ximg = $x;
|
||||||
}
|
}
|
||||||
$this->img_rb_x = $ximg + $w;
|
|
||||||
}
|
|
||||||
if ($ismask OR $hidden) {
|
if ($ismask OR $hidden) {
|
||||||
// image is not displayed
|
// image is not displayed
|
||||||
return $info['i'];
|
return $info['i'];
|
||||||
|
@ -7737,6 +7758,7 @@ class TCPDF {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static $cleaned_ids = array();
|
||||||
/**
|
/**
|
||||||
* Unset all class variables except the following critical variables.
|
* Unset all class variables except the following critical variables.
|
||||||
* @param $destroyall (boolean) if true destroys all class variables, otherwise preserves 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)) {
|
if (isset($this->internal_encoding) AND !empty($this->internal_encoding)) {
|
||||||
mb_internal_encoding($this->internal_encoding);
|
mb_internal_encoding($this->internal_encoding);
|
||||||
}
|
}
|
||||||
|
if (isset(self::$cleaned_ids[$this->file_id])) {
|
||||||
|
$destroyall = false;
|
||||||
|
}
|
||||||
if ($destroyall AND !$preserve_objcopy) {
|
if ($destroyall AND !$preserve_objcopy) {
|
||||||
|
self::$cleaned_ids[$this->file_id] = true;
|
||||||
// remove all temporary files
|
// remove all temporary files
|
||||||
$tmpfiles = glob(K_PATH_CACHE.'__tcpdf_'.$this->file_id.'_*');
|
if ($handle = @opendir(K_PATH_CACHE)) {
|
||||||
if (!empty($tmpfiles)) {
|
while ( false !== ( $file_name = readdir( $handle ) ) ) {
|
||||||
array_map('unlink', $tmpfiles);
|
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(
|
$preserve = array(
|
||||||
|
@ -7763,6 +7800,7 @@ class TCPDF {
|
||||||
'bufferlen',
|
'bufferlen',
|
||||||
'buffer',
|
'buffer',
|
||||||
'cached_files',
|
'cached_files',
|
||||||
|
'imagekeys',
|
||||||
'sign',
|
'sign',
|
||||||
'signature_data',
|
'signature_data',
|
||||||
'signature_max_length',
|
'signature_max_length',
|
||||||
|
@ -8368,7 +8406,7 @@ class TCPDF {
|
||||||
if (is_string($pl['txt']) && !empty($pl['txt'])) {
|
if (is_string($pl['txt']) && !empty($pl['txt'])) {
|
||||||
if ($pl['txt'][0] == '#') {
|
if ($pl['txt'][0] == '#') {
|
||||||
// internal destination
|
// 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] == '%') {
|
} elseif ($pl['txt'][0] == '%') {
|
||||||
// embedded PDF file
|
// embedded PDF file
|
||||||
$filename = basename(substr($pl['txt'], 1));
|
$filename = basename(substr($pl['txt'], 1));
|
||||||
|
@ -8380,7 +8418,7 @@ class TCPDF {
|
||||||
$annots .= ' /A << /S /JavaScript /JS '.$this->_textstring($jsa, $annot_obj_id).'>>';
|
$annots .= ' /A << /S /JavaScript /JS '.$this->_textstring($jsa, $annot_obj_id).'>>';
|
||||||
} else {
|
} else {
|
||||||
$parsedUrl = parse_url($pl['txt']);
|
$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
|
// relative link to a PDF file
|
||||||
$dest = '[0 /Fit]'; // default page 0
|
$dest = '[0 /Fit]'; // default page 0
|
||||||
if (!empty($parsedUrl['fragment'])) {
|
if (!empty($parsedUrl['fragment'])) {
|
||||||
|
@ -8487,8 +8525,8 @@ class TCPDF {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'fileattachment': {
|
case 'fileattachment': {
|
||||||
if ($this->pdfa_mode) {
|
if ($this->pdfa_mode && $this->pdfa_version != 3) {
|
||||||
// embedded files are not allowed in PDF/A mode
|
// embedded files are not allowed in PDF/A mode version 1 and 2
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!isset($pl['opt']['fs'])) {
|
if (!isset($pl['opt']['fs'])) {
|
||||||
|
@ -9500,6 +9538,17 @@ class TCPDF {
|
||||||
$this->custom_xmp = $xmp;
|
$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.
|
* Put XMP data object and return ID.
|
||||||
* @return (int) The object ID.
|
* @return (int) The object ID.
|
||||||
|
@ -9569,7 +9618,7 @@ class TCPDF {
|
||||||
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
||||||
if ($this->pdfa_mode) {
|
if ($this->pdfa_mode) {
|
||||||
$xmp .= "\t\t".'<rdf:Description rdf:about="" xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/">'."\n";
|
$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\t".'<pdfaid:conformance>B</pdfaid:conformance>'."\n";
|
||||||
$xmp .= "\t\t".'</rdf:Description>'."\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: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: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: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>'."\n";
|
||||||
$xmp .= "\t\t\t\t\t".'<rdf:li rdf:parseType="Resource">'."\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";
|
$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\t".'</rdf:Bag>'."\n";
|
||||||
$xmp .= "\t\t\t".'</pdfaExtension:schemas>'."\n";
|
$xmp .= "\t\t\t".'</pdfaExtension:schemas>'."\n";
|
||||||
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
$xmp .= "\t\t".'</rdf:Description>'."\n";
|
||||||
|
$xmp .= $this->custom_xmp_rdf;
|
||||||
$xmp .= "\t".'</rdf:RDF>'."\n";
|
$xmp .= "\t".'</rdf:RDF>'."\n";
|
||||||
$xmp .= $this->custom_xmp;
|
$xmp .= $this->custom_xmp;
|
||||||
$xmp .= '</x:xmpmeta>'."\n";
|
$xmp .= '</x:xmpmeta>'."\n";
|
||||||
|
@ -12221,7 +12281,7 @@ class TCPDF {
|
||||||
$x = $this->w;
|
$x = $this->w;
|
||||||
}
|
}
|
||||||
$fixed = false;
|
$fixed = false;
|
||||||
if (!empty($page) AND ($page[0] == '*')) {
|
if (!empty($page) AND (substr($page, 0, 1) == '*')) {
|
||||||
$page = intval(substr($page, 1));
|
$page = intval(substr($page, 1));
|
||||||
// this page number will not be changed when moving/add/deleting pages
|
// this page number will not be changed when moving/add/deleting pages
|
||||||
$fixed = true;
|
$fixed = true;
|
||||||
|
@ -12324,7 +12384,8 @@ class TCPDF {
|
||||||
$x = $this->w;
|
$x = $this->w;
|
||||||
}
|
}
|
||||||
$fixed = false;
|
$fixed = false;
|
||||||
if (!empty($page) AND ($page[0] == '*')) {
|
$pageAsString = (string) $page;
|
||||||
|
if ($pageAsString && $pageAsString[0] == '*') {
|
||||||
$page = intval(substr($page, 1));
|
$page = intval(substr($page, 1));
|
||||||
// this page number will not be changed when moving/add/deleting pages
|
// this page number will not be changed when moving/add/deleting pages
|
||||||
$fixed = true;
|
$fixed = true;
|
||||||
|
@ -13988,7 +14049,7 @@ class TCPDF {
|
||||||
* @since 3.1.000 (2008-06-09)
|
* @since 3.1.000 (2008-06-09)
|
||||||
*/
|
*/
|
||||||
public function setPDFVersion($version='1.7') {
|
public function setPDFVersion($version='1.7') {
|
||||||
if ($this->pdfa_mode) {
|
if ($this->pdfa_mode && $this->pdfa_version == 1 ) {
|
||||||
// PDF/A mode
|
// PDF/A mode
|
||||||
$this->PDFVersion = '1.4';
|
$this->PDFVersion = '1.4';
|
||||||
} else {
|
} else {
|
||||||
|
@ -15502,8 +15563,7 @@ class TCPDF {
|
||||||
* <li>int $style['module_height'] height of a single module in points</li>
|
* <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>array $style['fgcolor'] color array for bars and text</li>
|
||||||
* <li>mixed $style['bgcolor'] color array for background or false for transparent</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>string $style['position'] barcode position on the page: L = left margin; C = center; R = right margin; S = stretch</li>
|
||||||
* <li>$style['module_height'] height of a single module in points</li></ul>
|
|
||||||
* @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 $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
|
* @param $distort (boolean) if true distort the barcode to fit width and height, otherwise preserve aspect ratio
|
||||||
* @author Nicola Asuni
|
* @author Nicola Asuni
|
||||||
|
@ -16897,10 +16957,10 @@ class TCPDF {
|
||||||
if (($dom[$key]['value'] == 'pre') OR ($dom[$key]['value'] == 'tt')) {
|
if (($dom[$key]['value'] == 'pre') OR ($dom[$key]['value'] == 'tt')) {
|
||||||
$dom[$key]['fontname'] = $this->default_monospaced_font;
|
$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
|
// headings h1, h2, h3, h4, h5, h6
|
||||||
if (!isset($dom[$key]['attribute']['size']) AND !isset($dom[$key]['style']['font-size'])) {
|
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;
|
$dom[$key]['fontsize'] = $dom[0]['fontsize'] + $headsize;
|
||||||
}
|
}
|
||||||
if (!isset($dom[$key]['style']['font-weight'])) {
|
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
|
$hbz = 0; // distance from y to line bottom
|
||||||
$hb = 0; // vertical space between block tags
|
$hb = 0; // vertical space between block tags
|
||||||
// calculate vertical space for 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'];
|
$cur_h = $this->tagvspaces[$tag['value']][0]['h'];
|
||||||
} elseif (isset($tag['fontsize'])) {
|
} elseif (isset($tag['fontsize'])) {
|
||||||
$cur_h = $this->getCellHeight($tag['fontsize'] / $this->k);
|
$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
|
// closing vertical space
|
||||||
$hbc = 0;
|
$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'];
|
$pre_h = $this->tagvspaces[$tag['value']][1]['h'];
|
||||||
} elseif (isset($parent['fontsize'])) {
|
} elseif (isset($parent['fontsize'])) {
|
||||||
$pre_h = $this->getCellHeight($parent['fontsize'] / $this->k);
|
$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
|
$hbz = 0; // distance from y to line bottom
|
||||||
$hb = 0; // vertical space between block tags
|
$hb = 0; // vertical space between block tags
|
||||||
// calculate vertical space for 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'];
|
$pre_h = $this->tagvspaces[$tag['value']][1]['h'];
|
||||||
} elseif (isset($parent['fontsize'])) {
|
} elseif (isset($parent['fontsize'])) {
|
||||||
$pre_h = $this->getCellHeight($parent['fontsize'] / $this->k);
|
$pre_h = $this->getCellHeight($parent['fontsize'] / $this->k);
|
||||||
|
@ -23369,6 +23429,8 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||||
$xmax = 0;
|
$xmax = 0;
|
||||||
$ymin = 2147483647;
|
$ymin = 2147483647;
|
||||||
$ymax = 0;
|
$ymax = 0;
|
||||||
|
$xinitial = 0;
|
||||||
|
$yinitial = 0;
|
||||||
$relcoord = false;
|
$relcoord = false;
|
||||||
$minlen = (0.01 / $this->k); // minimum acceptable length (3 point)
|
$minlen = (0.01 / $this->k); // minimum acceptable length (3 point)
|
||||||
$firstcmd = true; // used to print first 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) {
|
if ($ck == 1) {
|
||||||
$this->_outPoint($x, $y);
|
$this->_outPoint($x, $y);
|
||||||
$firstcmd = false;
|
$firstcmd = false;
|
||||||
|
$xinitial = $x;
|
||||||
|
$yinitial = $y;
|
||||||
} else {
|
} else {
|
||||||
$this->_outLine($x, $y);
|
$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) {
|
if ((($ck + 1) % 7) == 0) {
|
||||||
$x0 = $x;
|
$x0 = $x;
|
||||||
$y0 = $y;
|
$y0 = $y;
|
||||||
$rx = abs($params[($ck - 6)]);
|
$rx = max(abs($params[($ck - 6)]), .000000001);
|
||||||
$ry = abs($params[($ck - 5)]);
|
$ry = max(abs($params[($ck - 5)]), .000000001);
|
||||||
$ang = -$rawparams[($ck - 4)];
|
$ang = -$rawparams[($ck - 4)];
|
||||||
$angle = deg2rad($ang);
|
$angle = deg2rad($ang);
|
||||||
$fa = $rawparams[($ck - 3)]; // large-arc-flag
|
$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': {
|
case 'Z': {
|
||||||
$this->_out('h');
|
$this->_out('h');
|
||||||
|
$x = $x0 = $xinitial;
|
||||||
|
$y = $y0 = $yinitial;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -23995,7 +24061,7 @@ Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value:
|
||||||
case 'stop': {
|
case 'stop': {
|
||||||
// gradient stops
|
// gradient stops
|
||||||
if (substr($attribs['offset'], -1) == '%') {
|
if (substr($attribs['offset'], -1) == '%') {
|
||||||
$offset = floatval(substr($attribs['offset'], -1)) / 100;
|
$offset = floatval(substr($attribs['offset'], 0, -1)) / 100;
|
||||||
} else {
|
} else {
|
||||||
$offset = floatval($attribs['offset']);
|
$offset = floatval($attribs['offset']);
|
||||||
if ($offset > 1) {
|
if ($offset > 1) {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
<license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL</license>
|
<license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPL</license>
|
||||||
<authorEmail>info@tecnick.com</authorEmail>
|
<authorEmail>info@tecnick.com</authorEmail>
|
||||||
<authorUrl>www.tecnick.com</authorUrl>
|
<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>
|
<description>This is a PHP class for generating PDF documents without requiring external extensions.</description>
|
||||||
|
|
||||||
<files>
|
<files>
|
||||||
|
|
|
@ -453,7 +453,7 @@ class TCPDFBarcode {
|
||||||
$k = 0;
|
$k = 0;
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0; $i < $clen; ++$i) {
|
for ($i = 0; $i < $clen; ++$i) {
|
||||||
$char = $code{$i};
|
$char = $code[$i];
|
||||||
if(!isset($chr[$char])) {
|
if(!isset($chr[$char])) {
|
||||||
// invalid character
|
// invalid character
|
||||||
return false;
|
return false;
|
||||||
|
@ -464,7 +464,7 @@ class TCPDFBarcode {
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
}
|
}
|
||||||
$w = $chr[$char]{$j};
|
$w = $chr[$char][$j];
|
||||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||||
$bararray['maxw'] += $w;
|
$bararray['maxw'] += $w;
|
||||||
++$k;
|
++$k;
|
||||||
|
@ -520,10 +520,10 @@ class TCPDFBarcode {
|
||||||
$code_ext = '';
|
$code_ext = '';
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0 ; $i < $clen; ++$i) {
|
for ($i = 0 ; $i < $clen; ++$i) {
|
||||||
if (ord($code{$i}) > 127) {
|
if (ord($code[$i]) > 127) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$code_ext .= $encode[$code{$i}];
|
$code_ext .= $encode[$code[$i]];
|
||||||
}
|
}
|
||||||
return $code_ext;
|
return $code_ext;
|
||||||
}
|
}
|
||||||
|
@ -543,7 +543,7 @@ class TCPDFBarcode {
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0 ; $i < $clen; ++$i) {
|
for ($i = 0 ; $i < $clen; ++$i) {
|
||||||
$k = array_keys($chars, $code{$i});
|
$k = array_keys($chars, $code[$i]);
|
||||||
$sum += $k[0];
|
$sum += $k[0];
|
||||||
}
|
}
|
||||||
$j = ($sum % 43);
|
$j = ($sum % 43);
|
||||||
|
@ -643,10 +643,10 @@ class TCPDFBarcode {
|
||||||
$code_ext = '';
|
$code_ext = '';
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0 ; $i < $clen; ++$i) {
|
for ($i = 0 ; $i < $clen; ++$i) {
|
||||||
if (ord($code{$i}) > 127) {
|
if (ord($code[$i]) > 127) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$code_ext .= $encode[$code{$i}];
|
$code_ext .= $encode[$code[$i]];
|
||||||
}
|
}
|
||||||
// checksum
|
// checksum
|
||||||
$code_ext .= $this->checksum_code93($code_ext);
|
$code_ext .= $this->checksum_code93($code_ext);
|
||||||
|
@ -656,7 +656,7 @@ class TCPDFBarcode {
|
||||||
$k = 0;
|
$k = 0;
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0; $i < $clen; ++$i) {
|
for ($i = 0; $i < $clen; ++$i) {
|
||||||
$char = ord($code{$i});
|
$char = ord($code[$i]);
|
||||||
if(!isset($chr[$char])) {
|
if(!isset($chr[$char])) {
|
||||||
// invalid character
|
// invalid character
|
||||||
return false;
|
return false;
|
||||||
|
@ -667,7 +667,7 @@ class TCPDFBarcode {
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
}
|
}
|
||||||
$w = $chr[$char]{$j};
|
$w = $chr[$char][$j];
|
||||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||||
$bararray['maxw'] += $w;
|
$bararray['maxw'] += $w;
|
||||||
++$k;
|
++$k;
|
||||||
|
@ -699,7 +699,7 @@ class TCPDFBarcode {
|
||||||
$p = 1;
|
$p = 1;
|
||||||
$check = 0;
|
$check = 0;
|
||||||
for ($i = ($len - 1); $i >= 0; --$i) {
|
for ($i = ($len - 1); $i >= 0; --$i) {
|
||||||
$k = array_keys($chars, $code{$i});
|
$k = array_keys($chars, $code[$i]);
|
||||||
$check += ($k[0] * $p);
|
$check += ($k[0] * $p);
|
||||||
++$p;
|
++$p;
|
||||||
if ($p > 20) {
|
if ($p > 20) {
|
||||||
|
@ -713,7 +713,7 @@ class TCPDFBarcode {
|
||||||
$p = 1;
|
$p = 1;
|
||||||
$check = 0;
|
$check = 0;
|
||||||
for ($i = $len; $i >= 0; --$i) {
|
for ($i = $len; $i >= 0; --$i) {
|
||||||
$k = array_keys($chars, $code{$i});
|
$k = array_keys($chars, $code[$i]);
|
||||||
$check += ($k[0] * $p);
|
$check += ($k[0] * $p);
|
||||||
++$p;
|
++$p;
|
||||||
if ($p > 15) {
|
if ($p > 15) {
|
||||||
|
@ -738,11 +738,11 @@ class TCPDFBarcode {
|
||||||
$len = strlen($code);
|
$len = strlen($code);
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
for ($i = 0; $i < $len; $i+=2) {
|
for ($i = 0; $i < $len; $i+=2) {
|
||||||
$sum += $code{$i};
|
$sum += $code[$i];
|
||||||
}
|
}
|
||||||
$sum *= 3;
|
$sum *= 3;
|
||||||
for ($i = 1; $i < $len; $i+=2) {
|
for ($i = 1; $i < $len; $i+=2) {
|
||||||
$sum += ($code{$i});
|
$sum += ($code[$i]);
|
||||||
}
|
}
|
||||||
$r = $sum % 10;
|
$r = $sum % 10;
|
||||||
if($r > 0) {
|
if($r > 0) {
|
||||||
|
@ -783,7 +783,7 @@ class TCPDFBarcode {
|
||||||
$p = 2;
|
$p = 2;
|
||||||
$check = 0;
|
$check = 0;
|
||||||
for ($i = ($clen - 1); $i >= 0; --$i) {
|
for ($i = ($clen - 1); $i >= 0; --$i) {
|
||||||
$check += (hexdec($code{$i}) * $p);
|
$check += (hexdec($code[$i]) * $p);
|
||||||
++$p;
|
++$p;
|
||||||
if ($p > 7) {
|
if ($p > 7) {
|
||||||
$p = 2;
|
$p = 2;
|
||||||
|
@ -798,7 +798,7 @@ class TCPDFBarcode {
|
||||||
$seq = '110'; // left guard
|
$seq = '110'; // left guard
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0; $i < $clen; ++$i) {
|
for ($i = 0; $i < $clen; ++$i) {
|
||||||
$digit = $code{$i};
|
$digit = $code[$i];
|
||||||
if (!isset($chr[$digit])) {
|
if (!isset($chr[$digit])) {
|
||||||
// invalid character
|
// invalid character
|
||||||
return false;
|
return false;
|
||||||
|
@ -841,7 +841,7 @@ class TCPDFBarcode {
|
||||||
$seq = '11011010';
|
$seq = '11011010';
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0; $i < $clen; ++$i) {
|
for ($i = 0; $i < $clen; ++$i) {
|
||||||
$digit = $code{$i};
|
$digit = $code[$i];
|
||||||
if (!isset($chr[$digit])) {
|
if (!isset($chr[$digit])) {
|
||||||
// invalid character
|
// invalid character
|
||||||
return false;
|
return false;
|
||||||
|
@ -867,8 +867,8 @@ class TCPDFBarcode {
|
||||||
$k = 0;
|
$k = 0;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
$w += 1;
|
$w += 1;
|
||||||
if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq{$i} != $seq{($i+1)}))) {
|
if (($i == ($len - 1)) OR (($i < ($len - 1)) AND ($seq[$i] != $seq[($i+1)]))) {
|
||||||
if ($seq{$i} == '1') {
|
if ($seq[$i] == '1') {
|
||||||
$t = true; // bar
|
$t = true; // bar
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
|
@ -919,8 +919,8 @@ class TCPDFBarcode {
|
||||||
$k = 0;
|
$k = 0;
|
||||||
$clen = strlen($code);
|
$clen = strlen($code);
|
||||||
for ($i = 0; $i < $clen; $i = ($i + 2)) {
|
for ($i = 0; $i < $clen; $i = ($i + 2)) {
|
||||||
$char_bar = $code{$i};
|
$char_bar = $code[$i];
|
||||||
$char_space = $code{$i+1};
|
$char_space = $code[$i+1];
|
||||||
if((!isset($chr[$char_bar])) OR (!isset($chr[$char_space]))) {
|
if((!isset($chr[$char_bar])) OR (!isset($chr[$char_space]))) {
|
||||||
// invalid character
|
// invalid character
|
||||||
return false;
|
return false;
|
||||||
|
@ -929,7 +929,7 @@ class TCPDFBarcode {
|
||||||
$seq = '';
|
$seq = '';
|
||||||
$chrlen = strlen($chr[$char_bar]);
|
$chrlen = strlen($chr[$char_bar]);
|
||||||
for ($s = 0; $s < $chrlen; $s++){
|
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);
|
$seqlen = strlen($seq);
|
||||||
for ($j = 0; $j < $seqlen; ++$j) {
|
for ($j = 0; $j < $seqlen; ++$j) {
|
||||||
|
@ -938,7 +938,7 @@ class TCPDFBarcode {
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
}
|
}
|
||||||
$w = $seq{$j};
|
$w = $seq[$j];
|
||||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||||
$bararray['maxw'] += $w;
|
$bararray['maxw'] += $w;
|
||||||
++$k;
|
++$k;
|
||||||
|
@ -1085,7 +1085,7 @@ class TCPDFBarcode {
|
||||||
case 'A': { // MODE A
|
case 'A': { // MODE A
|
||||||
$startid = 103;
|
$startid = 103;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
$char = $code{$i};
|
$char = $code[$i];
|
||||||
$char_id = ord($char);
|
$char_id = ord($char);
|
||||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||||
$code_data[] = $fnc_a[$char_id];
|
$code_data[] = $fnc_a[$char_id];
|
||||||
|
@ -1100,7 +1100,7 @@ class TCPDFBarcode {
|
||||||
case 'B': { // MODE B
|
case 'B': { // MODE B
|
||||||
$startid = 104;
|
$startid = 104;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
$char = $code{$i};
|
$char = $code[$i];
|
||||||
$char_id = ord($char);
|
$char_id = ord($char);
|
||||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||||
$code_data[] = $fnc_b[$char_id];
|
$code_data[] = $fnc_b[$char_id];
|
||||||
|
@ -1124,7 +1124,7 @@ class TCPDFBarcode {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < $len; $i+=2) {
|
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) {
|
if (preg_match('/([0-9]{2})/', $chrnum) > 0) {
|
||||||
$code_data[] = intval($chrnum);
|
$code_data[] = intval($chrnum);
|
||||||
} else {
|
} else {
|
||||||
|
@ -1180,7 +1180,7 @@ class TCPDFBarcode {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < $seq[2]; ++$i) {
|
for ($i = 0; $i < $seq[2]; ++$i) {
|
||||||
$char = $seq[1]{$i};
|
$char = $seq[1][$i];
|
||||||
$char_id = ord($char);
|
$char_id = ord($char);
|
||||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||||
$code_data[] = $fnc_a[$char_id];
|
$code_data[] = $fnc_a[$char_id];
|
||||||
|
@ -1223,7 +1223,7 @@ class TCPDFBarcode {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < $seq[2]; ++$i) {
|
for ($i = 0; $i < $seq[2]; ++$i) {
|
||||||
$char = $seq[1]{$i};
|
$char = $seq[1][$i];
|
||||||
$char_id = ord($char);
|
$char_id = ord($char);
|
||||||
if (($char_id >= 241) AND ($char_id <= 244)) {
|
if (($char_id >= 241) AND ($char_id <= 244)) {
|
||||||
$code_data[] = $fnc_b[$char_id];
|
$code_data[] = $fnc_b[$char_id];
|
||||||
|
@ -1240,7 +1240,7 @@ class TCPDFBarcode {
|
||||||
$code_data[] = 99;
|
$code_data[] = 99;
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < $seq[2]; $i+=2) {
|
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);
|
$code_data[] = intval($chrnum);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -1271,7 +1271,7 @@ class TCPDFBarcode {
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
}
|
}
|
||||||
$w = $seq{$j};
|
$w = $seq[$j];
|
||||||
$bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
$bararray['bcode'][] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||||
$bararray['maxw'] += $w;
|
$bararray['maxw'] += $w;
|
||||||
}
|
}
|
||||||
|
@ -1337,14 +1337,14 @@ class TCPDFBarcode {
|
||||||
// calculate check digit
|
// calculate check digit
|
||||||
$sum_a = 0;
|
$sum_a = 0;
|
||||||
for ($i = 1; $i < $data_len; $i+=2) {
|
for ($i = 1; $i < $data_len; $i+=2) {
|
||||||
$sum_a += $code{$i};
|
$sum_a += $code[$i];
|
||||||
}
|
}
|
||||||
if ($len > 12) {
|
if ($len > 12) {
|
||||||
$sum_a *= 3;
|
$sum_a *= 3;
|
||||||
}
|
}
|
||||||
$sum_b = 0;
|
$sum_b = 0;
|
||||||
for ($i = 0; $i < $data_len; $i+=2) {
|
for ($i = 0; $i < $data_len; $i+=2) {
|
||||||
$sum_b += ($code{$i});
|
$sum_b += ($code[$i]);
|
||||||
}
|
}
|
||||||
if ($len < 13) {
|
if ($len < 13) {
|
||||||
$sum_b *= 3;
|
$sum_b *= 3;
|
||||||
|
@ -1356,7 +1356,7 @@ class TCPDFBarcode {
|
||||||
if ($code_len == $data_len) {
|
if ($code_len == $data_len) {
|
||||||
// add check digit
|
// add check digit
|
||||||
$code .= $r;
|
$code .= $r;
|
||||||
} elseif ($r !== intval($code{$data_len})) {
|
} elseif ($r !== intval($code[$data_len])) {
|
||||||
// wrong checkdigit
|
// wrong checkdigit
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1467,7 +1467,7 @@ class TCPDFBarcode {
|
||||||
$bararray = array('code' => $upce_code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
|
$bararray = array('code' => $upce_code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
|
||||||
$p = $upce_parities[$code[1]][$r];
|
$p = $upce_parities[$code[1]][$r];
|
||||||
for ($i = 0; $i < 6; ++$i) {
|
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
|
$seq .= '010101'; // right guard bar
|
||||||
} else {
|
} else {
|
||||||
|
@ -1475,17 +1475,17 @@ class TCPDFBarcode {
|
||||||
$half_len = intval(ceil($len / 2));
|
$half_len = intval(ceil($len / 2));
|
||||||
if ($len == 8) {
|
if ($len == 8) {
|
||||||
for ($i = 0; $i < $half_len; ++$i) {
|
for ($i = 0; $i < $half_len; ++$i) {
|
||||||
$seq .= $codes['A'][$code{$i}];
|
$seq .= $codes['A'][$code[$i]];
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$p = $parities[$code[0]];
|
$p = $parities[$code[0]];
|
||||||
for ($i = 1; $i < $half_len; ++$i) {
|
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
|
$seq .= '01010'; // center guard bar
|
||||||
for ($i = $half_len; $i < $len; ++$i) {
|
for ($i = $half_len; $i < $len; ++$i) {
|
||||||
$seq .= $codes['C'][$code{$i}];
|
$seq .= $codes['C'][$code[$i]];
|
||||||
}
|
}
|
||||||
$seq .= '101'; // right guard bar
|
$seq .= '101'; // right guard bar
|
||||||
}
|
}
|
||||||
|
@ -1493,8 +1493,8 @@ class TCPDFBarcode {
|
||||||
$w = 0;
|
$w = 0;
|
||||||
for ($i = 0; $i < $clen; ++$i) {
|
for ($i = 0; $i < $clen; ++$i) {
|
||||||
$w += 1;
|
$w += 1;
|
||||||
if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq{$i} != $seq{($i+1)}))) {
|
if (($i == ($clen - 1)) OR (($i < ($clen - 1)) AND ($seq[$i] != $seq[$i+1]))) {
|
||||||
if ($seq{$i} == '1') {
|
if ($seq[$i] == '1') {
|
||||||
$t = true; // bar
|
$t = true; // bar
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
|
@ -1578,7 +1578,7 @@ class TCPDFBarcode {
|
||||||
$seq .= $codes[$p[0]][$code[0]];
|
$seq .= $codes[$p[0]][$code[0]];
|
||||||
for ($i = 1; $i < $len; ++$i) {
|
for ($i = 1; $i < $len; ++$i) {
|
||||||
$seq .= '01'; // separator
|
$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());
|
$bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array());
|
||||||
return $this->binseq_to_array($seq, $bararray);
|
return $this->binseq_to_array($seq, $bararray);
|
||||||
|
@ -1629,7 +1629,7 @@ class TCPDFBarcode {
|
||||||
// calculate checksum
|
// calculate checksum
|
||||||
$sum = 0;
|
$sum = 0;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
$sum += intval($code{$i});
|
$sum += intval($code[$i]);
|
||||||
}
|
}
|
||||||
$chkd = ($sum % 10);
|
$chkd = ($sum % 10);
|
||||||
if($chkd > 0) {
|
if($chkd > 0) {
|
||||||
|
@ -1643,7 +1643,7 @@ class TCPDFBarcode {
|
||||||
$bararray['maxw'] += 2;
|
$bararray['maxw'] += 2;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
for ($j = 0; $j < 5; ++$j) {
|
for ($j = 0; $j < 5; ++$j) {
|
||||||
$h = $barlen[$code{$i}][$j];
|
$h = $barlen[$code[$i]][$j];
|
||||||
$p = floor(1 / $h);
|
$p = floor(1 / $h);
|
||||||
$bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p);
|
$bararray['bcode'][$k++] = array('t' => 1, 'w' => 1, 'h' => $h, 'p' => $p);
|
||||||
$bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0);
|
$bararray['bcode'][$k++] = array('t' => 0, 'w' => 1, 'h' => 2, 'p' => 0);
|
||||||
|
@ -1756,8 +1756,8 @@ class TCPDFBarcode {
|
||||||
$row = 0;
|
$row = 0;
|
||||||
$col = 0;
|
$col = 0;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
$row += $checktable[$code{$i}][0];
|
$row += $checktable[$code[$i]][0];
|
||||||
$col += $checktable[$code{$i}][1];
|
$col += $checktable[$code[$i]][1];
|
||||||
}
|
}
|
||||||
$row %= 6;
|
$row %= 6;
|
||||||
$col %= 6;
|
$col %= 6;
|
||||||
|
@ -1774,7 +1774,7 @@ class TCPDFBarcode {
|
||||||
}
|
}
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
for ($j = 0; $j < 4; ++$j) {
|
for ($j = 0; $j < 4; ++$j) {
|
||||||
switch ($barmode[$code{$i}][$j]) {
|
switch ($barmode[$code[$i]][$j]) {
|
||||||
case 1: {
|
case 1: {
|
||||||
$p = 0;
|
$p = 0;
|
||||||
$h = 2;
|
$h = 2;
|
||||||
|
@ -1846,17 +1846,17 @@ class TCPDFBarcode {
|
||||||
$code = 'A'.strtoupper($code).'A';
|
$code = 'A'.strtoupper($code).'A';
|
||||||
$len = strlen($code);
|
$len = strlen($code);
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
if (!isset($chr[$code{$i}])) {
|
if (!isset($chr[$code[$i]])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$seq = $chr[$code{$i}];
|
$seq = $chr[$code[$i]];
|
||||||
for ($j = 0; $j < 8; ++$j) {
|
for ($j = 0; $j < 8; ++$j) {
|
||||||
if (($j % 2) == 0) {
|
if (($j % 2) == 0) {
|
||||||
$t = true; // bar
|
$t = true; // bar
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
}
|
}
|
||||||
$w = $seq{$j};
|
$w = $seq[$j];
|
||||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||||
$bararray['maxw'] += $w;
|
$bararray['maxw'] += $w;
|
||||||
++$k;
|
++$k;
|
||||||
|
@ -1896,7 +1896,7 @@ class TCPDFBarcode {
|
||||||
$p = 1;
|
$p = 1;
|
||||||
$check = 0;
|
$check = 0;
|
||||||
for ($i = ($len - 1); $i >= 0; --$i) {
|
for ($i = ($len - 1); $i >= 0; --$i) {
|
||||||
$digit = $code{$i};
|
$digit = $code[$i];
|
||||||
if ($digit == '-') {
|
if ($digit == '-') {
|
||||||
$dval = 10;
|
$dval = 10;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1918,7 +1918,7 @@ class TCPDFBarcode {
|
||||||
$p = 1;
|
$p = 1;
|
||||||
$check = 0;
|
$check = 0;
|
||||||
for ($i = $len; $i >= 0; --$i) {
|
for ($i = $len; $i >= 0; --$i) {
|
||||||
$digit = $code{$i};
|
$digit = $code[$i];
|
||||||
if ($digit == '-') {
|
if ($digit == '-') {
|
||||||
$dval = 10;
|
$dval = 10;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1937,17 +1937,17 @@ class TCPDFBarcode {
|
||||||
$code = 'S'.$code.'S';
|
$code = 'S'.$code.'S';
|
||||||
$len += 3;
|
$len += 3;
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
if (!isset($chr[$code{$i}])) {
|
if (!isset($chr[$code[$i]])) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$seq = $chr[$code{$i}];
|
$seq = $chr[$code[$i]];
|
||||||
for ($j = 0; $j < 6; ++$j) {
|
for ($j = 0; $j < 6; ++$j) {
|
||||||
if (($j % 2) == 0) {
|
if (($j % 2) == 0) {
|
||||||
$t = true; // bar
|
$t = true; // bar
|
||||||
} else {
|
} else {
|
||||||
$t = false; // space
|
$t = false; // space
|
||||||
}
|
}
|
||||||
$w = $seq{$j};
|
$w = $seq[$j];
|
||||||
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
$bararray['bcode'][$k] = array('t' => $t, 'w' => $w, 'h' => 1, 'p' => 0);
|
||||||
$bararray['maxw'] += $w;
|
$bararray['maxw'] += $w;
|
||||||
++$k;
|
++$k;
|
||||||
|
@ -2016,7 +2016,7 @@ class TCPDFBarcode {
|
||||||
$bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 2, 'bcode' => array());
|
$bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 2, 'bcode' => array());
|
||||||
$len = strlen($seq);
|
$len = strlen($seq);
|
||||||
for ($i = 0; $i < $len; ++$i) {
|
for ($i = 0; $i < $len; ++$i) {
|
||||||
switch ($seq{$i}) {
|
switch ($seq[$i]) {
|
||||||
case '1': {
|
case '1': {
|
||||||
$p = 1;
|
$p = 1;
|
||||||
$h = 1;
|
$h = 1;
|
||||||
|
@ -2255,7 +2255,7 @@ class TCPDFBarcode {
|
||||||
$bitval = 1;
|
$bitval = 1;
|
||||||
$len = strlen($hex);
|
$len = strlen($hex);
|
||||||
for($pos = ($len - 1); $pos >= 0; --$pos) {
|
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);
|
$bitval = bcmul($bitval, 16);
|
||||||
}
|
}
|
||||||
return $dec;
|
return $dec;
|
||||||
|
|
|
@ -531,10 +531,10 @@ class TCPDF_PARSER {
|
||||||
if ($char == '(') {
|
if ($char == '(') {
|
||||||
$open_bracket = 1;
|
$open_bracket = 1;
|
||||||
while ($open_bracket > 0) {
|
while ($open_bracket > 0) {
|
||||||
if (!isset($this->pdfdata{$strpos})) {
|
if (!isset($this->pdfdata[$strpos])) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$ch = $this->pdfdata{$strpos};
|
$ch = $this->pdfdata[$strpos];
|
||||||
switch ($ch) {
|
switch ($ch) {
|
||||||
case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash)
|
case '\\': { // REVERSE SOLIDUS (5Ch) (Backslash)
|
||||||
// skip next character
|
// skip next character
|
||||||
|
@ -578,7 +578,7 @@ class TCPDF_PARSER {
|
||||||
}
|
}
|
||||||
case '<': // \x3C LESS-THAN SIGN
|
case '<': // \x3C LESS-THAN SIGN
|
||||||
case '>': { // \x3E GREATER-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
|
// dictionary object
|
||||||
$objtype = $char.$char;
|
$objtype = $char.$char;
|
||||||
$offset += 2;
|
$offset += 2;
|
||||||
|
|
|
@ -31,5 +31,21 @@
|
||||||
<maintainerurl>https://github.com/llewellynvdm</maintainerurl>
|
<maintainerurl>https://github.com/llewellynvdm</maintainerurl>
|
||||||
<targetplatform name="joomla" version="3.*"/>
|
<targetplatform name="joomla" version="3.*"/>
|
||||||
</update>
|
</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>
|
</updates>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user