function MakeFont($fontfile, $afmfile, $enc = 'cp1252', $patch = array(), $type = 'TrueType') { //Generate a font definition file set_magic_quotes_runtime(0); ini_set('auto_detect_line_endings', '1'); if ($enc) { $map = ReadMap($enc); foreach ($patch as $cc => $gn) { $map[$cc] = $gn; } } else { $map = array(); } if (!file_exists($afmfile)) { die('<B>Error:</B> AFM file not found: ' . $afmfile); } $fm = ReadAFM($afmfile, $map); if ($enc) { $diff = MakeFontEncoding($map); } else { $diff = ''; } $fd = MakeFontDescriptor($fm, empty($map)); //Find font type if ($fontfile) { $ext = strtolower(substr($fontfile, -3)); if ($ext == 'ttf') { $type = 'TrueType'; } elseif ($ext == 'pfb') { $type = 'Type1'; } else { die('<B>Error:</B> unrecognized font file extension: ' . $ext); } } else { if ($type != 'TrueType' and $type != 'Type1') { die('<B>Error:</B> incorrect font type: ' . $type); } } //Start generation $s = '<?php' . "\n"; $s .= '$type=\'' . $type . "';\n"; $s .= '$name=\'' . $fm['FontName'] . "';\n"; $s .= '$desc=' . $fd . ";\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= '$up=' . $fm['UnderlinePosition'] . ";\n"; $s .= '$ut=' . $fm['UnderlineThickness'] . ";\n"; $w = MakeWidthArray($fm); $s .= '$cw=' . $w . ";\n"; $s .= '$enc=\'' . $enc . "';\n"; $s .= '$diff=\'' . $diff . "';\n"; $basename = substr(basename($afmfile), 0, -4); if ($fontfile) { //Embedded font if (!file_exists($fontfile)) { die('<B>Error:</B> font file not found: ' . $fontfile); } if ($type == 'TrueType') { CheckTTF($fontfile); } $f = fopen($fontfile, 'rb'); if (!$f) { die('<B>Error:</B> Can\'t open ' . $fontfile); } $file = fread($f, filesize($fontfile)); fclose($f); if ($type == 'Type1') { //Find first two sections and discard third one $header = ord($file[0]) == 128; if ($header) { //Strip first binary header $file = substr($file, 6); } $pos = strpos($file, 'eexec'); if (!$pos) { die('<B>Error:</B> font file does not seem to be valid Type1'); } $size1 = $pos + 6; if ($header and ord($file[$size1]) == 128) { //Strip second binary header $file = substr($file, 0, $size1) . substr($file, $size1 + 6); } $pos = strpos($file, '00000000'); if (!$pos) { die('<B>Error:</B> font file does not seem to be valid Type1'); } $size2 = $pos - $size1; $file = substr($file, 0, $size1 + $size2); } if (function_exists('gzcompress')) { $cmp = $basename . '.z'; SaveToFile($cmp, gzcompress($file), 'b'); $s .= '$file=\'' . $cmp . "';\n"; echo 'Font file compressed (' . $cmp . ')<BR>'; } else { $s .= '$file=\'' . basename($fontfile) . "';\n"; echo '<B>Notice:</B> font file could not be compressed (zlib extension not available)<BR>'; } if ($type == 'Type1') { $s .= '$size1=' . $size1 . ";\n"; $s .= '$size2=' . $size2 . ";\n"; } else { $s .= '$originalsize=' . filesize($fontfile) . ";\n"; } } else { //Not embedded font $s .= '$file=' . "'';\n"; } $s .= "?>\n"; SaveToFile($basename . '.php', $s); echo 'Font definition file generated (' . $basename . '.php' . ')<BR>'; }
function MakeFont($fontfile, $afmfile, $enc = 'cp1252', $patch = array()) { //Generate a font definition file set_magic_quotes_runtime(0); if ($enc) { $map = ReadMap($enc); foreach ($patch as $cc => $gn) { $map[$cc] = $gn; } } else { $map = array(); } if (!file_exists($afmfile)) { die('<B>Error:</B> AFM file not found: ' . $afmfile); } $fm = ReadAFM($afmfile, $map); if ($enc) { $diff = MakeFontEncoding($map); } else { $diff = ''; } $fd = MakeFontDescriptor($fm, empty($map)); $s = '<?php' . "\n"; $s .= '$type=\'TrueType' . "';\n"; $s .= '$name=\'' . $fm['FontName'] . "';\n"; $s .= '$desc=' . $fd . ";\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= '$up=' . $fm['UnderlinePosition'] . ";\n"; $s .= '$ut=' . $fm['UnderlineThickness'] . ";\n"; $w = MakeWidthArray($fm); $s .= '$cw=' . $w . ";\n"; $s .= '$enc=\'' . $enc . "';\n"; $s .= '$diff=\'' . $diff . "';\n"; $basename = substr(basename($afmfile), 0, -4); if ($fontfile) { //Embedded font if (!file_exists($fontfile)) { die('<B>Error:</B> font file not found: ' . $fontfile); } if (function_exists('gzcompress')) { $f = fopen($fontfile, 'rb'); $ttf = fread($f, filesize($fontfile)); fclose($f); $cmp = $basename . '.z'; SaveToFile($cmp, gzcompress($ttf), 'b'); $s .= '$file=\'' . $cmp . "';\n"; echo 'Font file compressed (' . $cmp . ')<BR>'; } else { echo '<B>Notice:</B> font file could not be compressed (gzcompress not available)<BR>'; $s .= '$file=\'' . basename($fontfile) . "';\n"; } $s .= '$originalsize=' . filesize($fontfile) . ";\n"; } else { //Not embedded font $s .= '$file=' . "'';\n"; } $s .= "?>\n"; SaveToFile($basename . '.php', $s); echo 'Font definition file generated (' . $basename . '.php' . ')<BR>'; }
/** * * @param string $fontfile path to font file (TTF or PFB). * @param string $fmfile font metrics file (UFM or AFM). * @param boolean $embedded Set to false to not embed the font, true otherwise (default). * @param string $enc Name of the encoding table to use. Omit this parameter for TrueType Unicode, OpenType Unicode and symbolic fonts like Symbol or ZapfDingBats. * @param array $patch Optional modification of the encoding */ function MakeFont($fontfile, $fmfile, $embedded = true, $enc = "cp1252", $patch = array()) { //Generate a font definition file set_magic_quotes_runtime(0); ini_set('auto_detect_line_endings', '1'); if (!file_exists($fontfile)) { die('Error: file not found: ' . $fontfile); } if (!file_exists($fmfile)) { die('Error: file not found: ' . $fmfile); } $cidtogidmap = ''; $map = array(); $diff = ''; $ffext = strtolower(substr($fontfile, -3)); $fmext = strtolower(substr($fmfile, -3)); if ($fmext == 'afm') { if ($ffext == 'ttf') { $type = 'TrueType'; } elseif ($ffext == 'pfb') { $type = 'Type1'; } else { die('Error: unrecognized font file extension: ' . $ext); } if ($enc) { $map = ReadMap($enc); foreach ($patch as $cc => $gn) { $map[$cc] = $gn; } } $fm = ReadAFM($fmfile, $map); if ($enc) { $diff = MakeFontEncoding($map); } $fd = MakeFontDescriptor($fm, empty($map)); } elseif ($fmext == 'ufm') { $enc = ""; if ($ffext == 'ttf') { $type = 'TrueTypeUnicode'; } else { die('Error: not a TrueType font: ' . $ffext); } $fm = ReadUFM($fmfile, $cidtogidmap); $fd = MakeFontDescriptor($fm, false); } //Start generation $s = '<?php' . "\n"; $s .= '$type=\'' . $type . "';\n"; $s .= '$name=\'' . $fm['FontName'] . "';\n"; $s .= '$desc=' . $fd . ";\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= '$up=' . $fm['UnderlinePosition'] . ";\n"; $s .= '$ut=' . $fm['UnderlineThickness'] . ";\n"; $w = MakeWidthArray($fm); $s .= '$cw=' . $w . ";\n"; $s .= '$enc=\'' . $enc . "';\n"; $s .= '$diff=\'' . $diff . "';\n"; $basename = substr(basename($fmfile), 0, -4); if ($embedded) { //Embedded font if ($type == 'TrueType' or $type == 'TrueTypeUnicode') { CheckTTF($fontfile); } $f = fopen($fontfile, 'rb'); if (!$f) { die('Error: Unable to open ' . $fontfile); } $file = fread($f, filesize($fontfile)); fclose($f); if ($type == 'Type1') { //Find first two sections and discard third one $header = ord($file[0]) == 128; if ($header) { //Strip first binary header $file = substr($file, 6); } $pos = strpos($file, 'eexec'); if (!$pos) { die('Error: font file does not seem to be valid Type1'); } $size1 = $pos + 6; if ($header and ord($file[$size1]) == 128) { //Strip second binary header $file = substr($file, 0, $size1) . substr($file, $size1 + 6); } $pos = strpos($file, '00000000'); if (!$pos) { die('Error: font file does not seem to be valid Type1'); } $size2 = $pos - $size1; $file = substr($file, 0, $size1 + $size2); } if (function_exists('gzcompress')) { $cmp = $basename . '.z'; SaveToFile($cmp, gzcompress($file), 'b'); $s .= '$file=\'' . $cmp . "';\n"; print "Font file compressed (" . $cmp . ")\n"; if (!empty($cidtogidmap)) { $cmp = $basename . '.ctg.z'; SaveToFile($cmp, gzcompress($cidtogidmap), 'b'); print "CIDToGIDMap created and compressed (" . $cmp . ")\n"; $s .= '$ctg=\'' . $cmp . "';\n"; } } else { $s .= '$file=\'' . basename($fontfile) . "';\n"; print "Notice: font file could not be compressed (zlib extension not available)\n"; if (!empty($cidtogidmap)) { $cmp = $basename . '.ctg'; $f = fopen($cmp, 'wb'); fwrite($f, $cidtogidmap); fclose($f); print "CIDToGIDMap created (" . $cmp . ")\n"; $s .= '$ctg=\'' . $cmp . "';\n"; } } if ($type == 'Type1') { $s .= '$size1=' . $size1 . ";\n"; $s .= '$size2=' . $size2 . ";\n"; } else { $s .= '$originalsize=' . filesize($fontfile) . ";\n"; } } else { //Not embedded font $s .= '$file=' . "'';\n"; } $s .= "?>"; SaveToFile($basename . '.php', $s); print "Font definition file generated (" . $basename . ".php)\n"; }
function MakeFont($fontfile, $ufmfile) { //Generate a font definition file set_magic_quotes_runtime(0); if (!file_exists($ufmfile)) { die('<B>Error:</B> UFM file not found: ' . $ufmfile); } $cidtogidmap = ''; $fm = ReadUFM($ufmfile, $cidtogidmap); $fd = MakeFontDescriptor($fm); //Find font type if ($fontfile) { $ext = strtolower(substr($fontfile, -3)); if ($ext == 'ttf') { $type = 'TrueTypeUnicode'; } else { die('<B>Error:</B> not a truetype font: ' . $ext); } } else { if ($type != 'TrueTypeUnicode') { die('<B>Error:</B> incorrect font type: ' . $type); } } //Start generation $basename = strtolower(substr(basename($ufmfile), 0, -4)); $s = 'TCPDFFontDescriptor.define(\'' . $basename . "') do |font|\n"; $s .= " font[:type]='" . $type . "'\n"; $s .= " font[:name]='" . $fm['FontName'] . "'\n"; $s .= " font[:desc]=" . $fd . "\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= " font[:up]=" . $fm['UnderlinePosition'] . "\n"; $s .= " font[:ut]=" . $fm['UnderlineThickness'] . "\n"; $s .= " font[:cw]=" . MakeWidthArray($fm) . "\n"; $s .= " font[:enc]=''\n"; $s .= " font[:diff]=''\n"; if ($fontfile) { //Embedded font if (!file_exists($fontfile)) { die('<B>Error:</B> font file not found: ' . $fontfile); } CheckTTF($fontfile); $f = fopen($fontfile, 'rb'); if (!$f) { die('<B>Error:</B> Can\'t open ' . $fontfile); } $file = fread($f, filesize($fontfile)); fclose($f); if (function_exists('gzcompress')) { $cmp = $basename . '.z'; SaveToFile($cmp, gzcompress($file), 'b'); $s .= ' font[:file]=\'' . $cmp . "'\n"; echo 'Font file compressed (' . $cmp . ')<BR>'; $cmp = $basename . '.ctg.z'; SaveToFile($cmp, gzcompress($cidtogidmap), 'b'); echo 'CIDToGIDMap created and compressed (' . $cmp . ')<BR>'; $s .= ' font[:ctg]=\'' . $cmp . "'\n"; } else { $s .= '$file=\'' . basename($fontfile) . "'\n"; echo '<B>Notice:</B> font file could not be compressed (gzcompress not available)<BR>'; $cmp = $basename . '.ctg'; $f = fopen($cmp, 'wb'); fwrite($f, $cidtogidmap); fclose($f); echo 'CIDToGIDMap created (' . $cmp . ')<BR>'; $s .= ' font[:ctg]=\'' . $cmp . "'\n"; } if ($type == 'Type1') { $s .= ' font[:size1]=' . $size1 . "\n"; $s .= ' font[:size2]=' . $size2 . "\n"; } else { $s .= ' font[:originalsize]=' . filesize($fontfile) . "\n"; } } else { //Not embedded font $s .= ' font[:file]=' . "''\n"; } $s .= "end\n"; SaveToFile($basename . '.rb', $s); echo 'Font definition file generated (' . $basename . '.rb' . ')<BR>'; }
function MakeFont($fontfile, $enc = 'cp1252', $embed = true) { // Generate a font definition file if (get_magic_quotes_runtime()) { @set_magic_quotes_runtime(0); } ini_set('auto_detect_line_endings', '1'); if (!file_exists($fontfile)) { Error('Font file not found: ' . $fontfile); } $ext = strtolower(substr($fontfile, -3)); if ($ext == 'ttf' || $ext == 'otf') { $type = 'TrueType'; } elseif ($ext == 'pfb') { $type = 'Type1'; } else { Error('Unrecognized font file extension: ' . $ext); } $map = LoadMap($enc); if ($type == 'TrueType') { $info = GetInfoFromTrueType($fontfile, $embed, $map); } else { $info = GetInfoFromType1($fontfile, $embed, $map); } $basename = substr(basename($fontfile), 0, -4); if ($embed) { if (function_exists('gzcompress')) { $file = $basename . '.z'; SaveToFile($file, gzcompress($info['Data']), 'b'); $info['File'] = $file; Message('Font file compressed: ' . $file); } else { $info['File'] = basename($fontfile); Notice('Font file could not be compressed (zlib extension not available)'); } } MakeDefinitionFile($basename . '.php', $type, $enc, $embed, $map, $info); Message('Font definition file generated: ' . $basename . '.php'); }
/** * @return void * @param string $filename 文件名 * @param array $inputArray 要输出的数组 * @desc 将数组输出到文件中 */ function saveArrayToFile($filename, $inputArray) { $str = var_export($inputArray); SaveToFile($filename, $str, 'w'); }
function saveTranslated($out) { SaveToFile("/home/www/cb3/temp/translated.txt", $out); }
function MakeFont($fontfile, $afmfile, $destdir, $destfile, $enc) { // Generate a font definition file set_magic_quotes_runtime(0); ini_set('auto_detect_line_endings', '1'); $manager = ManagerEncoding::get(); $map = $manager->get_encoding_glyphs($enc); $fm = ReadAFM($afmfile, $map); if (is_null($fm)) { error_log(sprintf("Notice: Missing AFM file '%s'; attempting to parse font file '%s' directly", $afmfile, $fontfile)); $fm = ReadTTF($fontfile, $manager->getEncodingVector($enc)); if (is_null($fm)) { die(sprintf("Cannot get font metrics for '%s'", $fontfile)); } } $diff = MakeFontEncoding($map); $cmap = MakeFontCMap($enc); $fd = MakeFontDescriptor($fm, empty($map)); //Find font type if ($fontfile) { $ext = strtolower(substr($fontfile, -3)); if ($ext == 'ttf') { $type = 'TrueType'; } elseif ($ext == 'pfb') { $type = 'Type1'; } else { die('<B>Error:</B> unrecognized font file extension: ' . $ext); } } else { if ($type != 'TrueType' and $type != 'Type1') { die('<B>Error:</B> incorrect font type: ' . $type); } } //Start generation $s = '<?php' . "\n"; $s .= '$type=\'' . $type . "';\n"; $s .= '$name=\'' . $fm['FontName'] . "';\n"; $s .= '$desc=' . $fd . ";\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= '$up=' . $fm['UnderlinePosition'] . ";\n"; $s .= '$ut=' . $fm['UnderlineThickness'] . ";\n"; $w = MakeWidthArray($fm); $s .= '$cw=' . $w . ";\n"; $s .= '$enc=\'' . $enc . "';\n"; $s .= '$diff=\'' . $diff . "';\n"; $s .= '$cmap=' . $cmap . ";\n"; $basename = substr(basename($afmfile), 0, -4); if ($fontfile) { //Embedded font if (!file_exists($fontfile)) { die('<B>Error:</B> font file not found: ' . $fontfile); } if ($type == 'TrueType') { CheckTTF($fontfile); } $f = fopen($fontfile, 'rb'); if (!$f) { die('<B>Error:</B> Can\'t open ' . $fontfile); } $file = fread($f, filesize($fontfile)); fclose($f); if ($type == 'Type1') { //Find first two sections and discard third one $header = ord($file[0]) == 128; if ($header) { //Strip first binary header $file = substr($file, 6); } $pos = strpos($file, 'eexec'); if (!$pos) { die('<B>Error:</B> font file does not seem to be valid Type1'); } $size1 = $pos + 6; if ($header and ord($file[$size1]) == 128) { //Strip second binary header $file = substr($file, 0, $size1) . substr($file, $size1 + 6); } $pos = strpos($file, '00000000'); if (!$pos) { die('<B>Error:</B> font file does not seem to be valid Type1'); } $size2 = $pos - $size1; $file = substr($file, 0, $size1 + $size2); } $gzcompress_exists = function_exists('gzcompress'); if ($gzcompress_exists) { $cmp = $basename . '.z'; SaveToFile($destdir . $cmp, gzcompress($file), 'b'); $s .= '$file=\'' . $cmp . "';\n"; } else { $cmp = $basename . '.ttf'; SaveToFile($destdir . $cmp, $file, 'b'); $s .= '$file=\'' . basename($fontfile) . "';\n"; error_log('Notice: font file could not be compressed (zlib extension not available)'); } if ($type == 'Type1') { $s .= '$size1=' . $size1 . ";\n"; $s .= '$size2=' . $size2 . ";\n"; } else { $s .= '$originalsize=' . filesize($fontfile) . ";\n"; } } else { //Not embedded font $s .= '$file=' . "'';\n"; } $s .= "?>\n"; SaveToFile($destdir . $destfile, $s); }
/** * * @param string $fontfile path to font file (TTF, OTF or PFB). * @param string $fmfile font metrics file (UFM or AFM). * @param boolean $embedded Set to false to not embed the font, true otherwise (default). * @param string $enc Name of the encoding table to use. Omit this parameter for TrueType Unicode, OpenType Unicode and symbolic fonts like Symbol or ZapfDingBats. * @param array $patch Optional modification of the encoding */ function MakeFont($fontfile, $fmfile, $embedded = true, $enc = 'cp1252', $patch = array(), $cidInfo = "") { //Generate a font definition file set_magic_quotes_runtime(0); ini_set('auto_detect_line_endings', '1'); if (!file_exists($fontfile)) { die('Error: file not found: ' . $fontfile); } if (!file_exists($fmfile)) { die('Error: file not found: ' . $fmfile); } $cidtogidmap = ''; $map = array(); $diff = ''; $dw = 0; // default width $ffext = strtolower(substr($fontfile, -3)); $fmext = strtolower(substr($fmfile, -3)); if ($fmext == 'afm') { if ($ffext == 'ttf' or $ffext == 'otf') { $type = 'TrueType'; } elseif ($ffext == 'pfb') { $type = 'Type1'; } else { die('Error: unrecognized font file extension: ' . $ffext); } if ($enc) { $map = ReadMap($enc); foreach ($patch as $cc => $gn) { $map[$cc] = $gn; } } $fm = ReadAFM($fmfile, $map); if (isset($widths['.notdef'])) { $dw = $widths['.notdef']; } if ($enc) { $diff = MakeFontEncoding($map); } $fd = MakeFontDescriptor($fm, empty($map)); } elseif ($fmext == 'ufm') { $enc = ''; if ($ffext == 'ttf' or $ffext == 'otf') { $type = 'TrueTypeUnicode'; } else { die('Error: not a TrueType font: ' . $ffext); } $fm = ReadUFM($fmfile, $cidtogidmap); $dw = $fm['MissingWidth']; $fd = MakeFontDescriptor($fm, false); } //Start generation $s = '<?php /* Modification information for LGPL compliance r56990 - 2010-06-16 13:05:36 -0700 (Wed, 16 Jun 2010) - kjing - snapshot "Mango" svn branch to a new one for GitHub sync r56989 - 2010-06-16 13:01:33 -0700 (Wed, 16 Jun 2010) - kjing - defunt "Mango" svn dev branch before github cutover r55980 - 2010-04-19 13:31:28 -0700 (Mon, 19 Apr 2010) - kjing - create Mango (6.1) based on windex r51719 - 2009-10-22 10:18:00 -0700 (Thu, 22 Oct 2009) - mitani - Converted to Build 3 tags and updated the build system r51634 - 2009-10-19 13:32:22 -0700 (Mon, 19 Oct 2009) - mitani - Windex is the branch for Sugar Sales 1.0 development r50375 - 2009-08-24 18:07:43 -0700 (Mon, 24 Aug 2009) - dwong - branch kobe2 from tokyo r50372 r47930 - 2009-06-02 16:21:39 -0700 (Tue, 02 Jun 2009) - jenny - Updating with changes from bsoufflet. */ ' . "\n"; // BEGIN SUGARCRM SPECIFIC if ($embedded) { // END SUGARCRM SPECIFIC $s .= '$type=\'' . $type . "';\n"; // BEGIN SUGARCRM SPECIFIC } else { $s .= '$type=\'' . "cidfont0';\n"; } // END SUGARCRM SPECIFIC $s .= '$name=\'' . $fm['FontName'] . "';\n"; $s .= '$desc=' . $fd . ";\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= '$up=' . $fm['UnderlinePosition'] . ";\n"; $s .= '$ut=' . $fm['UnderlineThickness'] . ";\n"; if ($dw <= 0) { if (isset($fm['Widths'][32]) and $fm['Widths'][32] > 0) { // assign default space width $dw = $fm['Widths'][32]; } else { $dw = 600; } } // BEGIN SUGARCRM SPECIFIC if ($embedded) { // END SUGARCRM SPECIFIC $s .= '$dw=' . $dw . ";\n"; // BEGIN SUGARCRM SPECIFIC } else { $s .= '$dw=' . "1000;\n"; } // END SUGARCRM SPECIFIC $w = MakeWidthArray($fm); $s .= '$cw=' . $w . ";\n"; // BEGIN SUGARCRM SPECIFIC if ($embedded) { // END SUGARCRM SPECIFIC $s .= '$enc=\'' . $enc . "';\n"; // BEGIN SUGARCRM SPECIFIC } // END SUGARCRM SPECIFIC $s .= '$diff=\'' . $diff . "';\n"; $basename = substr(basename($fmfile), 0, -4); // BEGIN SUGARCRM SPECIFIC $dirname = dirname($fmfile); // END SUGARCRM SPECIFIC if ($embedded) { //Embedded font if ($type == 'TrueType' or $type == 'TrueTypeUnicode') { CheckTTF($fontfile); } $f = fopen($fontfile, 'rb'); if (!$f) { die('Error: Unable to open ' . $fontfile); } $file = stream_get_contents($f); fclose($f); if ($type == 'Type1') { //Find first two sections and discard third one $header = ord($file[0]) == 128; if ($header) { //Strip first binary header $file = substr($file, 6); } $pos = strpos($file, 'eexec'); if (!$pos) { die('Error: font file does not seem to be valid Type1'); } $size1 = $pos + 6; if ($header and ord($file[$size1]) == 128) { //Strip second binary header $file = substr($file, 0, $size1) . substr($file, $size1 + 6); } $pos = strpos($file, '00000000'); if (!$pos) { die('Error: font file does not seem to be valid Type1'); } $size2 = $pos - $size1; $file = substr($file, 0, $size1 + $size2); } $basename = strtolower($basename); if (function_exists('gzcompress')) { $cmp = $basename . '.z'; // BEGIN SUGARCRM SPECIFIC /* // END SUGARCRM SPECIFIC SaveToFile($cmp, gzcompress($file, 9), 'b'); // BEGIN SUGARCRM SPECIFIC */ SaveToFile($dirname . "/" . $cmp, gzcompress($file, 9), 'b'); // END SUGARCRM SPECIFIC $s .= '$file=\'' . $cmp . "';\n"; print "Font file compressed (" . $cmp . ")\n"; if (!empty($cidtogidmap)) { $cmp = $basename . '.ctg.z'; // BEGIN SUGARCRM SPECIFIC /* // END SUGARCRM SPECIFIC SaveToFile($cmp, gzcompress($cidtogidmap, 9), 'b'); // BEGIN SUGARCRM SPECIFIC */ SaveToFile($dirname . "/" . $cmp, gzcompress($cidtogidmap, 9), 'b'); // END SUGARCRM SPECIFIC print "CIDToGIDMap created and compressed (" . $cmp . ")\n"; $s .= '$ctg=\'' . $cmp . "';\n"; } } else { $s .= '$file=\'' . basename($fontfile) . "';\n"; print "Notice: font file could not be compressed (zlib extension not available)\n"; if (!empty($cidtogidmap)) { $cmp = $basename . '.ctg'; // BEGIN SUGARCRM SPECIFIC /* // END SUGARCRM SPECIFIC $f = fopen($cmp, 'wb'); // BEGIN SUGARCRM SPECIFIC */ $f = fopen($dirname . "/" . $cmp, 'wb'); // END SUGARCRM SPECIFIC fwrite($f, $cidtogidmap); fclose($f); print "CIDToGIDMap created (" . $cmp . ")\n"; $s .= '$ctg=\'' . $cmp . "';\n"; } } if ($type == 'Type1') { $s .= '$size1=' . $size1 . ";\n"; $s .= '$size2=' . $size2 . ";\n"; } else { $s .= '$originalsize=' . filesize($fontfile) . ";\n"; } } else { //Not embedded font // BEGIN SUGARCRM SPECIFIC /* // END SUGARCRM SPECIFIC $s .= '$file='."'';\n"; // BEGIN SUGARCRM SPECIFIC */ $s .= $cidInfo; // END SUGARCRM SPECIFIC } $s .= "?>"; // BEGIN SUGARCRM SPECIFIC /* // END SUGARCRM SPECIFIC SaveToFile($basename.'.php',$s); // BEGIN SUGARCRM SPECIFIC */ SaveToFile($dirname . "/" . $basename . '.php', $s); // END SUGARCRM SPECIFIC print "Font definition file generated (" . $basename . ".php)\n"; // BEGIN SUGARCRM SPECIFIC return $dirname . "/" . $basename; // END SUGARCRM SPECIFIC }
function MakeFontTTF($fontfile, $ufmfile) { //Generate a font definition file if (ini_get("magic_quotes_runtime")) { set_magic_quotes_runtime(0); } if (!file_exists($ufmfile)) { die('<B>Error:</B> UFM file not found: ' . $ufmfile); } $cidtogidmap = ''; $fm = ReadUFM($ufmfile, $cidtogidmap); $fd = MakeFontDescriptorTTF($fm); //Find font type if ($fontfile) { $ext = strtolower(substr($fontfile, -3)); if ($ext == 'ttf') { $type = 'TrueTypeUnicode'; } else { die('<B>Error:</B> not a truetype font: ' . $ext); } } else { if ($type != 'TrueTypeUnicode') { die('<B>Error:</B> incorrect font type: ' . $type); } } //Start generation $s = '<?php' . "\n"; $s .= '$type=\'' . $type . "';\n"; $s .= '$name=\'' . $fm['FontName'] . "';\n"; $s .= '$desc=' . $fd . ";\n"; if (!isset($fm['UnderlinePosition'])) { $fm['UnderlinePosition'] = -100; } if (!isset($fm['UnderlineThickness'])) { $fm['UnderlineThickness'] = 50; } $s .= '$up=' . $fm['UnderlinePosition'] . ";\n"; $s .= '$ut=' . $fm['UnderlineThickness'] . ";\n"; $w = MakeWidthArrayTTF($fm); $s .= '$cw=' . $w . ";\n"; $s .= "\$enc='';\n"; $s .= "\$diff='';\n"; $basename = substr(basename($ufmfile), 0, -4); if ($fontfile) { //Embedded font if (!file_exists($fontfile)) { die('<B>Error:</B> font file not found: ' . $fontfile); } CheckTTF($fontfile); $f = fopen($fontfile, 'rb'); if (!$f) { die('<B>Error:</B> Can\'t open ' . $fontfile); } $file = fread($f, filesize($fontfile)); fclose($f); if (function_exists('gzcompress')) { $cmp = $basename . '.z'; SaveToFile($cmp, gzcompress($file), 'b'); $s .= '$file=\'' . $cmp . "';\n"; // echo 'Font file compressed ('.$cmp.')<BR>'; $cmp = $basename . '.ctg.z'; SaveToFile($cmp, gzcompress($cidtogidmap), 'b'); //echo 'CIDToGIDMap created and compressed ('.$cmp.')<BR>'; $s .= '$ctg=\'' . $cmp . "';\n"; } else { $s .= '$file=\'' . basename($fontfile) . "';\n"; echo '<B>Notice:</B> font file could not be compressed (gzcompress not available)<BR>'; $cmp = $basename . '.ctg'; $f = fopen($cmp, 'wb'); fwrite($f, $cidtogidmap); fclose($f); echo 'CIDToGIDMap created (' . $cmp . ')<BR>'; $s .= '$ctg=\'' . $cmp . "';\n"; } if ($type == 'Type1') { $s .= '$size1=' . $size1 . ";\n"; $s .= '$size2=' . $size2 . ";\n"; } else { $s .= '$originalsize=' . filesize($fontfile) . ";\n"; } } else { //Not embedded font $s .= '$file=' . "'';\n"; } $s .= "?>\n"; SaveToFile($basename . '.php', $s); // echo 'Font definition file generated ('.$basename.'.php'.')<BR>'; return true; }
/** * Метод выполняет перерасчет стркутуры базы данных хранящейся в конфигурации сайта на основании структур * таблиц различных модулей, при этом происходит сохранение сгенерированной структуры. */ function RecountDBStructure() { if ($arModules = $this->GetList(false, array('active' => 1))) { $arResultStructure = array(); foreach ($arModules as $arModule) { if (file_exists(KS_MODULES_DIR . '/' . $arModule['title'] . '/install/db/db_structure.php')) { include KS_MODULES_DIR . '/' . $arModule['title'] . '/install/db/db_structure.php'; $arResultStructure = array_merge($arResultStructure, $arStructure); } } if (file_exists(KS_MODULES_DIR . '/koloslib/install/db/db_structure.php')) { include KS_MODULES_DIR . '/koloslib/install/db/db_structure.php'; $arResultStructure = array_merge($arResultStructure, $arStructure); } SaveToFile(KS_MODULES_DIR . '/koloslib/cache/db_structure.php', '$arStructure', $arResultStructure); } }
/** * Akcja dla :http://raport/tabelaryczny * i :http://raport/tabelaryczny/ankieta/#id */ public function tabelarycznyAction($excel = 0, $id_ankieta = 0) { $poll = new Ankiety(); $db = $poll->getAdapter(); if (!$excel) { $post = new Zend_Filter_Input($_POST); $pollId = $this->_getParam('ankieta'); if (empty($pollId)) { $pollId = $post->getInt('ankieta_id'); } } else { $pollId = $id_ankieta; } /* $pytanie=false; $queId=$this->_getParam('pytanie'); if (empty($queId)) $queId = $post->getInt('pytanie_id'); if (!empty($queId)) {$this->view->queId=$queId; $pytanie=true;} */ $this->view->pollId = $pollId; $this->view->pool = $poll->find($pollId); $question = new Pytania(); $this->view->questions = $question->findAllWithAnkietaId($pollId); $this->view->qV = array('jednokrotne' => 0, 'wielokrotne' => 1, 'otwarte' => 2); $rap = new Raporty(); $this->view->info = $rap->FindInformationsAboutAnkietaId($pollId); $this->view->fill = $rap->AmountOfFilledId($pollId); $this->view->ques = $rap->AmountOfQuestionsId($pollId); $this->view->body = $this->view->render('/raport/raportTabelaryczny.php'); /*if ($pytanie) { $this->view->queInfo=$rap->InfoAboutQuestionId($queId); if ($this->view->queInfo["nazwa_typu"]!='otwarte') { $this->view->ansInfo=$rap->InfoAboutAnswersId($queId); $this->view->body.=$this->view->render('/raport/PytZamkniete.php'); } else { $this->view->ansInfo=$rap->AnswersOpened($queId); $this->view->body.=$this->view->render('/raport/PytOtwarte.php'); } } */ foreach ($this->view->questions as $row) { $queId = $row->idPytanie; $this->view->queInfo = $rap->InfoAboutQuestionId($queId); if ($this->view->queInfo["nazwa_typu"] != 'otwarte') { $this->view->ansInfo = $rap->InfoAboutAnswersId($queId); $ilResp = $rap->AmountOfRespondentsWhoAnsweredId($queId); $this->view->ilResp = $ilResp["ilresp"]; $this->view->body .= $this->view->render('/raport/PytZamkniete.php'); } else { $this->view->ansInfo = $rap->AnswersOpened($queId); $this->view->queId = $queId; $this->view->excel = $excel; $this->view->limit = 2; //tu decydujemy ile ma sie wyswietalc odpowiedzi otwartych $this->view->body .= $this->view->render('/raport/PytOtwarte.php'); SaveToFile("/documents/raporty/OA_{$queId}.txt", $this->view->ansInfo); } } if (!$excel) { $this->display(); } else { return $this->view->body; } }