summaryrefslogtreecommitdiffstats
path: root/php-tcpdf_sysfonts.patch
blob: 1a847bcf1c8f74b8c7b20ced738010fe11712a86 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
--- tcpdf/include/tcpdf_fonts.php.prev	2013-05-13 09:43:35.000000000 +0200
+++ tcpdf/include/tcpdf_fonts.php	2013-05-13 09:48:19.000000000 +0200
@@ -57,12 +57,13 @@
 	 * @param $platid (int) Platform ID for CMAP table to extract (when building a Unicode font for Windows this value should be 3, for Macintosh should be 1).
 	 * @param $encid (int) 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.
 	 * @param $addcbbox (boolean) If true includes the character bounding box information on the php font file.
+	 * @param $link (boolean) If true link to system font instead of copying the font data (not transportable).
 	 * @return (string) TCPDF font name.
 	 * @author Nicola Asuni
 	 * @since 5.9.123 (2010-09-30)
 	 * @public static
 	 */
-	public static function addTTFfont($fontfile, $fonttype='', $enc='', $flags=32, $outpath='', $platid=3, $encid=1, $addcbbox=false) {
+	public static function addTTFfont($fontfile, $fonttype='', $enc='', $flags=32, $outpath='', $platid=3, $encid=1, $addcbbox=false, $link=false) {
 		if (!file_exists($fontfile)) {
 			// Could not find file
 			return false;
@@ -92,7 +93,7 @@
 			// this font already exist (delete it from fonts folder to rebuild it)
 			return $font_name;
 		}
-		$fmetric['file'] = $font_name.'.z';
+		$fmetric['file'] = $font_name;
 		$fmetric['ctg'] = $font_name.'.ctg.z';
 		// get font data
 		$font = file_get_contents($fontfile);
@@ -178,6 +179,7 @@
 			$encrypted = substr($font, (12 + $fmetric['size1']), $fmetric['size2']);
 			$data .= $encrypted;
 			// store compressed font
+			$fmetric['file'] .= '.z';
 			$fp = fopen($outpath.$fmetric['file'], 'wb');
 			fwrite($fp, gzcompress($data));
 			fclose($fp);
@@ -347,10 +349,15 @@
 		} else {
 			// ---------- TRUE TYPE ----------
 			if ($fmetric['type'] != 'cidfont0') {
-				// store compressed font
-				$fp = fopen($outpath.$fmetric['file'], 'wb');
-				fwrite($fp, gzcompress($font));
-				fclose($fp);
+				if ($link) {
+					symlink($fontfile, $outpath.$fmetric['file']);
+				} else {
+					$fmetric['file'] .= '.z';
+					// store compressed font
+					$fp = fopen($outpath.$fmetric['file'], 'wb');
+					fwrite($fp, gzcompress($font));
+					fclose($fp);
+				}
 			}
 			$offset = 0; // offset position of the font data
 			if (TCPDF_STATIC::_getULONG($font, $offset) != 0x10000) {