diff options
| author | Maksymilian Jopek <maks@jopek.eu> | 2023-03-26 18:31:50 +0200 |
|---|---|---|
| committer | Maksymilian Jopek <maks@jopek.eu> | 2023-03-26 18:31:50 +0200 |
| commit | 5aa7c4f9499135dd12162045e441f5215ee050aa (patch) | |
| tree | 4f95f9f2daedb0053a0b6a95a8e354d76b3c115d /php/tcpdf/tools | |
| download | calendrier-menstruel-5aa7c4f9499135dd12162045e441f5215ee050aa.tar.gz calendrier-menstruel-5aa7c4f9499135dd12162045e441f5215ee050aa.tar.zst calendrier-menstruel-5aa7c4f9499135dd12162045e441f5215ee050aa.zip | |
Full working app
Diffstat (limited to 'php/tcpdf/tools')
| -rw-r--r-- | php/tcpdf/tools/.htaccess | 1 | ||||
| -rw-r--r-- | php/tcpdf/tools/convert_fonts_examples.txt | 28 | ||||
| -rwxr-xr-x | php/tcpdf/tools/tcpdf_addfont.php | 269 |
3 files changed, 298 insertions, 0 deletions
diff --git a/php/tcpdf/tools/.htaccess b/php/tcpdf/tools/.htaccess new file mode 100644 index 0000000..8d2f256 --- /dev/null +++ b/php/tcpdf/tools/.htaccess @@ -0,0 +1 @@ +deny from all diff --git a/php/tcpdf/tools/convert_fonts_examples.txt b/php/tcpdf/tools/convert_fonts_examples.txt new file mode 100644 index 0000000..d5f8a4e --- /dev/null +++ b/php/tcpdf/tools/convert_fonts_examples.txt @@ -0,0 +1,28 @@ +./tcpdf_addfont.php -b -t Type1 -f 4 -e symbol -i pdfasymbol.pfb +./tcpdf_addfont.php -b -t Type1 -f 4 -i pdfazapfdingbats.pfb +./tcpdf_addfont.php -b -t Type1 -f 32 -e cp1252 -i pdfatimes.pfb,pdfatimesb.pfb,pdfahelvetica.pfb,pdfahelveticab.pfb +./tcpdf_addfont.php -b -t Type1 -f 33 -e cp1252 -i pdfacourier.pfb,pdfacourierb.pfb +./tcpdf_addfont.php -b -t Type1 -f 96 -e cp1252 -i pdfahelveticabi.pfb,pdfahelveticai.pfb,pdfatimesi.pfb,pdfatimesbi.pfb +./tcpdf_addfont.php -b -t Type1 -f 97 -e cp1252 -i pdfacourieri.pfb,pdfacourierbi.pfb + + +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 32 -i DejaVuSans.ttf,DejaVuSans-Bold.ttf,DejaVuSansCondensed.ttf,DejaVuSansCondensed-Bold.ttf,DejaVuSans-ExtraLight.ttf,DejaVuSerif.ttf,DejaVuSerif-Bold.ttf,DejaVuSerifCondensed.ttf,DejaVuSerifCondensed-Bold.ttf +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 33 -i DejaVuSansMono.ttf,DejaVuSansMono-Bold.ttf +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 96 -i DejaVuSans-BoldOblique.ttf,DejaVuSansCondensed-BoldOblique.ttf,DejaVuSansCondensed-Oblique.ttf,DejaVuSerifCondensed-BoldItalic.ttf,DejaVuSerifCondensed-Italic.ttf,DejaVuSerif-Italic.ttf,DejaVuSerif-BoldItalic.ttf,DejaVuSans-Oblique.ttf +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 97 -i DejaVuSansMono-BoldOblique.ttf,DejaVuSansMono-Oblique.ttf + + + +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 32 -i FreeSans.ttf,FreeSansBold.ttf,FreeSerif.ttf,FreeSerifBold.ttf +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 33 -i FreeMono.ttf,FreeMonoBold.ttf +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 96 -i FreeSansBoldOblique.ttf,FreeSansOblique.ttf,FreeSerifBoldItalic.ttf,FreeSerifItalic.ttf +./tcpdf_addfont.php -b -t TrueTypeUnicode -f 97 -i FreeMonoBoldOblique.ttf,FreeMonoOblique.ttf + + +./tcpdf_addfont.php -b -t TrueTypeUnicode -i aeAlArabiya.ttf,aeFurat.ttf + + +./tcpdf_addfont.php -b -t CID0JP -f 32 -i cid0jp.ttf +./tcpdf_addfont.php -b -t CID0KR -f 32 -i cid0kr.ttf +./tcpdf_addfont.php -b -t CID0CS -f 32 -i cid0cs.ttf +./tcpdf_addfont.php -b -t CID0CT -f 32 -i cid0ct.ttf diff --git a/php/tcpdf/tools/tcpdf_addfont.php b/php/tcpdf/tools/tcpdf_addfont.php new file mode 100755 index 0000000..2937c75 --- /dev/null +++ b/php/tcpdf/tools/tcpdf_addfont.php @@ -0,0 +1,269 @@ +#!/usr/bin/env php +<?php +//============================================================+ +// File name : tcpdf_addfont.php +// Version : 1.0.002 +// Begin : 2013-05-13 +// Last Update : 2013-08-05 +// Authors : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com +// Remi Collet +// License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) +// ------------------------------------------------------------------- +// Copyright (C) 2011-2013 Nicola Asuni - Tecnick.com LTD +// +// This file is part of TCPDF software library. +// +// TCPDF is free software: you can redistribute it and/or modify it +// under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// TCPDF is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +// See the GNU Lesser General Public License for more details. +// +// You should have received a copy of the License +// along with TCPDF. If not, see +// <http://www.tecnick.com/pagefiles/tcpdf/LICENSE.TXT>. +// +// See LICENSE.TXT file for more information. +// ------------------------------------------------------------------- +// +// Description : This is a command line script to generate TCPDF fonts. +// +//============================================================+ + +/** + * @file + * This is a command line script to generate TCPDF fonts.<br> + * @package com.tecnick.tcpdf + * @version 1.0.000 + */ + +if (php_sapi_name() != 'cli') { + echo 'You need to run this command from console.'; + exit(1); +} + +$tcpdf_include_dirs = array(realpath(dirname(__FILE__).'/../tcpdf.php'), '/usr/share/php/tcpdf/tcpdf.php', '/usr/share/tcpdf/tcpdf.php', '/usr/share/php-tcpdf/tcpdf.php', '/var/www/tcpdf/tcpdf.php', '/var/www/html/tcpdf/tcpdf.php', '/usr/local/apache2/htdocs/tcpdf/tcpdf.php'); +foreach ($tcpdf_include_dirs as $tcpdf_include_path) { + if (@file_exists($tcpdf_include_path)) { + require_once($tcpdf_include_path); + break; + } +} + +/** + * Display help guide for this command. + */ +function showHelp() { + $help = <<<EOD +tcpdf_addfont - command line tool to convert fonts for the TCPDF library. + +Usage: tcpdf_addfont.php [ options ] -i fontfile[,fontfile]... + +Options: + + -t + --type Font type. Leave empty for autodetect mode. + Valid values are: + TrueTypeUnicode + TrueType + Type1 + CID0JP = CID-0 Japanese + CID0KR = CID-0 Korean + CID0CS = CID-0 Chinese Simplified + CID0CT = CID-0 Chinese Traditional + + -e + --enc Name of the encoding table to use. Leave empty for + default mode. Omit this parameter for TrueType Unicode + and symbolic fonts like Symbol or ZapfDingBats. + + -f + --flags Unsigned 32-bit integer containing flags specifying + various characteristics of the font (PDF32000:2008 - + 9.8.2 Font Descriptor Flags): +1 for fixed font; +4 for + symbol or +32 for non-symbol; +64 for italic. Fixed and + Italic mode are generally autodetected so you have to + set it to 32 = non-symbolic font (default) or 4 = + symbolic font. + + -o + --outpath Output path for generated font files (must be writeable + by the web server). Leave empty for default font folder. + + -p + --platid Platform ID for CMAP table to extract (when building a + Unicode font for Windows this value should be 3, for + Macintosh should be 1). + + -n + --encid Encoding ID for CMAP table to extract (when building a + Unicode font for Windows this value should be 1, for + Macintosh should be 0). When Platform ID is 3, legal + values for Encoding ID are: 0=Symbol, 1=Unicode, + 2=ShiftJIS, 3=PRC, 4=Big5, 5=Wansung, 6=Johab, + 7=Reserved, 8=Reserved, 9=Reserved, 10=UCS-4. + + -b + --addcbbox Includes the character bounding box information on the + php font file. + + -l + --link Link to system font instead of copying the font data # + (not transportable) - Note: do not work with Type1 fonts. + + -i + --fonts Comma-separated list of input font files. + + -h + --help Display this help and exit. +EOD; + echo $help."\n\n"; + exit(0); +} + +// remove the name of the executing script +array_shift($argv); + +// no options chosen +if (!is_array($argv)) { + showHelp(); +} + +// initialize the array of options +$options = array('type'=>'', 'enc'=>'', 'flags'=>32, 'outpath'=>K_PATH_FONTS, 'platid'=>3, 'encid'=>1, 'addcbbox'=>false, 'link'=>false); + +// short input options +$sopt = ''; +$sopt .= 't:'; +$sopt .= 'e:'; +$sopt .= 'f:'; +$sopt .= 'o:'; +$sopt .= 'p:'; +$sopt .= 'n:'; +$sopt .= 'b'; +$sopt .= 'l'; +$sopt .= 'i:'; +$sopt .= 'h'; + +// long input options +$lopt = array(); +$lopt[] = 'type:'; +$lopt[] = 'enc:'; +$lopt[] = 'flags:'; +$lopt[] = 'outpath:'; +$lopt[] = 'platid:'; +$lopt[] = 'encid:'; +$lopt[] = 'addcbbox'; +$lopt[] = 'link'; +$lopt[] = 'fonts:'; +$lopt[] = 'help'; + +// parse input options +$inopt = getopt($sopt, $lopt); + +// import options (with some sanitization) +foreach ($inopt as $opt => $val) { + switch ($opt) { + case 't': + case 'type': { + if (in_array($val, array('TrueTypeUnicode', 'TrueType', 'Type1', 'CID0JP', 'CID0KR', 'CID0CS', 'CID0CT'))) { + $options['type'] = $val; + } + break; + } + case 'e': + case 'enc': { + $options['enc'] = $val; + break; + } + case 'f': + case 'flags': { + $options['flags'] = intval($val); + break; + } + case 'o': + case 'outpath': { + $options['outpath'] = realpath($val); + if (substr($options['outpath'], -1) != '/') { + $options['outpath'] .= '/'; + } + break; + } + case 'p': + case 'platid': { + $options['platid'] = min(max(1, intval($val)), 3); + break; + } + case 'n': + case 'encid': { + $options['encid'] = min(max(0, intval($val)), 10); + break; + } + case 'b': + case 'addcbbox': { + $options['addcbbox'] = true; + break; + } + case 'l': + case 'link': { + $options['link'] = true; + break; + } + case 'i': + case 'fonts': { + $options['fonts'] = explode(',', $val); + break; + } + case 'h': + case 'help': + default: { + showHelp(); + break; + } + } // end of switch +} // end of while loop + +if (empty($options['fonts'])) { + echo "ERROR: missing input fonts (try --help for usage)\n\n"; + exit(2); +} + +// check the output path +if (!is_dir($options['outpath']) OR !is_writable($options['outpath'])) { + echo "ERROR: Can't write to ".$options['outpath']."\n\n"; + exit(3); +} + +echo "\n>>> Converting fonts for TCPDF:\n"; + +echo '*** Output dir set to '.$options['outpath']."\n"; + +// check if there are conversion errors +$errors = false; + +foreach ($options['fonts'] as $font) { + $fontfile = realpath($font); + $fontname = TCPDF_FONTS::addTTFfont($fontfile, $options['type'], $options['enc'], $options['flags'], $options['outpath'], $options['platid'], $options['encid'], $options['addcbbox'], $options['link']); + if ($fontname === false) { + $errors = true; + echo "--- ERROR: can't add ".$font."\n"; + } else { + echo "+++ OK : ".$fontfile.' added as '.$fontname."\n"; + } +} + +if ($errors) { + echo "--- Process completed with ERRORS!\n\n"; + exit(4); +} + +echo ">>> Process successfully completed!\n\n"; +exit(0); + +//============================================================+ +// END OF FILE +//============================================================+ |
