亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? makefont.php

?? asterisk用 的voip記費軟件
?? PHP
字號:
<?php
/*******************************************************************************
* Utility to generate font definition files                                    *
* Version: 1.12                                                                *
* Date:    2003-12-30                                                          *
*******************************************************************************/

function ReadMap($enc)
{
	//Read a map file
	$file=dirname(__FILE__).'/'.strtolower($enc).'.map';
	$a=file($file);
	if(empty($a))
		die('<B>Error:</B> encoding not found: '.$enc);
	$cc2gn=array();
	foreach($a as $l)
	{
		if($l{0}=='!')
		{
			$e=preg_split('/[ \\t]+/',chop($l));
			$cc=hexdec(substr($e[0],1));
			$gn=$e[2];
			$cc2gn[$cc]=$gn;
		}
	}
	for($i=0;$i<=255;$i++)
		if(!isset($cc2gn[$i]))
			$cc2gn[$i]='.notdef';
	return $cc2gn;
}

function ReadAFM($file,&$map)
{
	//Read a font metric file
	$a=file($file);
	if(empty($a))
		die('File not found');
	$widths=array();
	$fm=array();
	$fix=array('Edot'=>'Edotaccent','edot'=>'edotaccent','Idot'=>'Idotaccent','Zdot'=>'Zdotaccent','zdot'=>'zdotaccent',
		'Odblacute'=>'Ohungarumlaut','odblacute'=>'ohungarumlaut','Udblacute'=>'Uhungarumlaut','udblacute'=>'uhungarumlaut',
		'Gcedilla'=>'Gcommaaccent','gcedilla'=>'gcommaaccent','Kcedilla'=>'Kcommaaccent','kcedilla'=>'kcommaaccent',
		'Lcedilla'=>'Lcommaaccent','lcedilla'=>'lcommaaccent','Ncedilla'=>'Ncommaaccent','ncedilla'=>'ncommaaccent',
		'Rcedilla'=>'Rcommaaccent','rcedilla'=>'rcommaaccent','Scedilla'=>'Scommaaccent','scedilla'=>'scommaaccent',
		'Tcedilla'=>'Tcommaaccent','tcedilla'=>'tcommaaccent','Dslash'=>'Dcroat','dslash'=>'dcroat','Dmacron'=>'Dcroat','dmacron'=>'dcroat',
		'combininggraveaccent'=>'gravecomb','combininghookabove'=>'hookabovecomb','combiningtildeaccent'=>'tildecomb',
		'combiningacuteaccent'=>'acutecomb','combiningdotbelow'=>'dotbelowcomb','dongsign'=>'dong');
	foreach($a as $l)
	{
		$e=explode(' ',chop($l));
		if(count($e)<2)
			continue;
		$code=$e[0];
		$param=$e[1];
		if($code=='C')
		{
			//Character metrics
			$cc=(int)$e[1];
			$w=$e[4];
			$gn=$e[7];
			if(substr($gn,-4)=='20AC')
				$gn='Euro';
			if(isset($fix[$gn]))
			{
				//Fix incorrect glyph name
				foreach($map as $c=>$n)
					if($n==$fix[$gn])
						$map[$c]=$gn;
			}
			if(empty($map))
			{
				//Symbolic font: use built-in encoding
				$widths[$cc]=$w;
			}
			else
			{
				$widths[$gn]=$w;
				if($gn=='X')
					$fm['CapXHeight']=$e[13];
			}
			if($gn=='.notdef')
				$fm['MissingWidth']=$w;
		}
		elseif($code=='FontName')
			$fm['FontName']=$param;
		elseif($code=='Weight')
			$fm['Weight']=$param;
		elseif($code=='ItalicAngle')
			$fm['ItalicAngle']=(double)$param;
		elseif($code=='Ascender')
			$fm['Ascender']=(int)$param;
		elseif($code=='Descender')
			$fm['Descender']=(int)$param;
		elseif($code=='UnderlineThickness')
			$fm['UnderlineThickness']=(int)$param;
		elseif($code=='UnderlinePosition')
			$fm['UnderlinePosition']=(int)$param;
		elseif($code=='IsFixedPitch')
			$fm['IsFixedPitch']=($param=='true');
		elseif($code=='FontBBox')
			$fm['FontBBox']=array($e[1],$e[2],$e[3],$e[4]);
		elseif($code=='CapHeight')
			$fm['CapHeight']=(int)$param;
		elseif($code=='StdVW')
			$fm['StdVW']=(int)$param;
	}
	if(!isset($fm['FontName']))
		die('FontName not found');
	if(!empty($map))
	{
		if(!isset($widths['.notdef']))
			$widths['.notdef']=600;
		if(!isset($widths['Delta']) and isset($widths['increment']))
			$widths['Delta']=$widths['increment'];
		//Order widths according to map
		for($i=0;$i<=255;$i++)
		{
			if(!isset($widths[$map[$i]]))
			{
				echo '<B>Warning:</B> character '.$map[$i].' is missing<BR>';
				$widths[$i]=$widths['.notdef'];
			}
			else
				$widths[$i]=$widths[$map[$i]];
		}
	}
	$fm['Widths']=$widths;
	return $fm;
}

function MakeFontDescriptor($fm,$symbolic)
{
	//Ascent
	$asc=(isset($fm['Ascender']) ? $fm['Ascender'] : 1000);
	$fd="array('Ascent'=>".$asc;
	//Descent
	$desc=(isset($fm['Descender']) ? $fm['Descender'] : -200);
	$fd.=",'Descent'=>".$desc;
	//CapHeight
	if(isset($fm['CapHeight']))
		$ch=$fm['CapHeight'];
	elseif(isset($fm['CapXHeight']))
		$ch=$fm['CapXHeight'];
	else
		$ch=$asc;
	$fd.=",'CapHeight'=>".$ch;
	//Flags
	$flags=0;
	if(isset($fm['IsFixedPitch']) and $fm['IsFixedPitch'])
		$flags+=1<<0;
	if($symbolic)
		$flags+=1<<2;
	if(!$symbolic)
		$flags+=1<<5;
	if(isset($fm['ItalicAngle']) and $fm['ItalicAngle']!=0)
		$flags+=1<<6;
	$fd.=",'Flags'=>".$flags;
	//FontBBox
	if(isset($fm['FontBBox']))
		$fbb=$fm['FontBBox'];
	else
		$fbb=array(0,$des-100,1000,$asc+100);
	$fd.=",'FontBBox'=>'[".$fbb[0].' '.$fbb[1].' '.$fbb[2].' '.$fbb[3]."]'";
	//ItalicAngle
	$ia=(isset($fm['ItalicAngle']) ? $fm['ItalicAngle'] : 0);
	$fd.=",'ItalicAngle'=>".$ia;
	//StemV
	if(isset($fm['StdVW']))
		$stemv=$fm['StdVW'];
	elseif(isset($fm['Weight']) and eregi('(bold|black)',$fm['Weight']))
		$stemv=120;
	else
		$stemv=70;
	$fd.=",'StemV'=>".$stemv;
	//MissingWidth
	if(isset($fm['MissingWidth']))
		$fd.=",'MissingWidth'=>".$fm['MissingWidth'];
	$fd.=')';
	return $fd;
}

function MakeWidthArray($fm)
{
	//Make character width array
	$s="array(\n\t";
	$cw=$fm['Widths'];
	for($i=0;$i<=255;$i++)
	{
		if(chr($i)=="'")
			$s.="'\\''";
		elseif(chr($i)=="\\")
			$s.="'\\\\'";
		elseif($i>=32 and $i<=126)
			$s.="'".chr($i)."'";
		else
			$s.="chr($i)";
		$s.='=>'.$fm['Widths'][$i];
		if($i<255)
			$s.=',';
		if(($i+1)%22==0)
			$s.="\n\t";
	}
	$s.=')';
	return $s;
}

function MakeFontEncoding($map)
{
	//Build differences from reference encoding
	$ref=ReadMap('cp1252');
	$s='';
	$last=0;
	for($i=32;$i<=255;$i++)
	{
		if($map[$i]!=$ref[$i])
		{
			if($i!=$last+1)
				$s.=$i.' ';
			$last=$i;
			$s.='/'.$map[$i].' ';
		}
	}
	return chop($s);
}

function SaveToFile($file,$s,$mode='t')
{
	$f=fopen($file,'w'.$mode);
	if(!$f)
		die('Can\'t write to file '.$file);
	fwrite($f,$s,strlen($s));
	fclose($f);
}

function ReadShort($f)
{
	$a=unpack('n1n',fread($f,2));
	return $a['n'];
}

function ReadLong($f)
{
	$a=unpack('N1N',fread($f,4));
	return $a['N'];
}

function CheckTTF($file)
{
	//Check if font license allows embedding
	$f=fopen($file,'rb');
	if(!$f)
		die('<B>Error:</B> Can\'t open '.$file);
	//Extract number of tables
	fseek($f,4,SEEK_CUR);
	$nb=ReadShort($f);
	fseek($f,6,SEEK_CUR);
	//Seek OS/2 table
	$found=false;
	for($i=0;$i<$nb;$i++)
	{
		if(fread($f,4)=='OS/2')
		{
			$found=true;
			break;
		}
		fseek($f,12,SEEK_CUR);
	}
	if(!$found)
	{
		fclose($f);
		return;
	}
	fseek($f,4,SEEK_CUR);
	$offset=ReadLong($f);
	fseek($f,$offset,SEEK_SET);
	//Extract fsType flags
	fseek($f,8,SEEK_CUR);
	$fsType=ReadShort($f);
	$rl=($fsType & 0x02)!=0;
	$pp=($fsType & 0x04)!=0;
	$e=($fsType & 0x08)!=0;
	fclose($f);
	if($rl and !$pp and !$e)
		echo '<B>Warning:</B> font license does not allow embedding';
}

/*******************************************************************************
* $fontfile: path to TTF file (or empty string if not to be embedded)          *
* $afmfile:  path to AFM file                                                  *
* $enc:      font encoding (or empty string for symbolic fonts)                *
* $patch:    optional patch for encoding                                       *
* $type :    font type if $fontfile is empty                                   *
*******************************************************************************/
function MakeFont($fontfile,$afmfile,$enc='cp1252',$patch=array(),$type='TrueType')
{
	//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));
	//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
			$pos=strpos($file,'eexec');
			if(!$pos)
				die('<B>Error:</B> font file does not seem to be valid Type1');
			$size1=$pos+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 (gzcompress 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>';
}
?>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜激情在线| 久久久亚洲精品石原莉奈| 懂色av一区二区三区蜜臀| 欧美a级一区二区| 香蕉成人啪国产精品视频综合网| 综合电影一区二区三区 | 国产亚洲欧美日韩在线一区| 欧美丰满高潮xxxx喷水动漫| 欧美精品123区| 欧美一卡二卡在线| 久久久综合激的五月天| 国产欧美视频一区二区| 国产精品国产三级国产有无不卡 | 亚洲一区二区在线免费观看视频| 一区二区久久久| 丝袜美腿亚洲一区| 蜜臀精品一区二区三区在线观看| 久久黄色级2电影| 高清beeg欧美| 欧美三级在线看| 欧美一区二区三区免费在线看 | 色狠狠一区二区| 欧美午夜免费电影| 日韩欧美中文字幕精品| 久久久蜜桃精品| 亚洲欧洲综合另类| 无码av免费一区二区三区试看 | 国产免费观看久久| 伊人婷婷欧美激情| 久久99国产精品久久99| 成人激情视频网站| 国产精品中文有码| 精品视频1区2区3区| 6080日韩午夜伦伦午夜伦| 欧美mv和日韩mv国产网站| 国产亚洲精品7777| 午夜精品一区二区三区电影天堂| 激情欧美日韩一区二区| 91成人网在线| 久久亚洲精华国产精华液| 亚洲日本va在线观看| 日本免费在线视频不卡一不卡二| 成人一区二区三区| 欧美一区二区三区色| 亚洲日本在线a| 国产精品香蕉一区二区三区| 欧美日韩免费电影| 国产精品久久久久一区二区三区| 午夜日韩在线观看| 97久久超碰国产精品电影| 亚洲色图19p| 日韩欧美不卡在线观看视频| 日本一区二区免费在线观看视频| 亚洲在线中文字幕| 国产成人综合在线| 欧美一级欧美三级| 一区二区三区日韩| 波多野结衣一区二区三区| 日韩精品一区二区在线观看| 亚洲亚洲精品在线观看| 国产成人精品亚洲777人妖| 日韩一级片在线观看| 亚洲国产精品精华液网站| 91在线国产福利| 国产精品久久久久久久久免费樱桃| 精品一区二区综合| 日韩一区二区三区四区五区六区| 亚洲电影一级片| 日本韩国视频一区二区| 亚洲三级理论片| 色综合中文综合网| 中文字幕一区二区三区四区不卡| 国产乱码精品一品二品| 欧美电视剧在线观看完整版| 日韩高清在线观看| 欧美一区二区三区精品| 丝袜脚交一区二区| 欧美伦理电影网| 日本成人中文字幕在线视频| 欧美精品乱码久久久久久 | 国产一区欧美日韩| 久久综合网色—综合色88| 老司机精品视频线观看86| 日韩欧美综合一区| 久久99精品国产麻豆婷婷| 久久影院视频免费| 国产成人在线视频网站| 中文字幕在线观看一区二区| 色域天天综合网| 亚洲大片免费看| 日韩精品中文字幕在线不卡尤物| 久久国产日韩欧美精品| 国产偷国产偷亚洲高清人白洁| 高清久久久久久| 亚洲欧美日韩在线播放| 精品视频免费在线| 激情综合一区二区三区| 国产精品私人自拍| 欧美日韩一级视频| 国模套图日韩精品一区二区| 国产精品麻豆久久久| 欧美日韩国产一二三| 天天综合天天综合色| 久久人人爽人人爽| 色婷婷国产精品综合在线观看| 五月天亚洲精品| 国产网站一区二区| 欧美日韩国产一级片| 懂色一区二区三区免费观看| 一区二区不卡在线播放| 欧美精品一区二| 91精品办公室少妇高潮对白| 美女mm1313爽爽久久久蜜臀| 中文字幕亚洲一区二区av在线| 欧美日韩国产综合久久 | 色94色欧美sute亚洲13| 日韩成人伦理电影在线观看| 久久久精品综合| 欧美人动与zoxxxx乱| 成人一区二区三区中文字幕| 免费成人在线播放| 国产女人18水真多18精品一级做 | 精油按摩中文字幕久久| 中文字幕在线不卡一区二区三区| 91精品久久久久久久久99蜜臂| 成人性生交大片免费看在线播放| 日韩一区精品字幕| 日韩美女视频19| 久久久久久久电影| 91精品国产综合久久精品| 色综合久久88色综合天天| 国产一区二区免费在线| 日韩av网站免费在线| 一区二区三区四区中文字幕| 欧美国产激情二区三区| 精品日韩欧美在线| 欧美精品一二三区| 日本韩国精品一区二区在线观看| 国产成人综合在线| 精品一区二区精品| 久久国产麻豆精品| 日韩福利电影在线| 日韩激情中文字幕| 亚洲成人你懂的| 亚洲永久免费视频| 一区二区三区日韩在线观看| 亚洲精选一二三| 亚洲视频一二三区| 亚洲私人影院在线观看| 国产精品第四页| 国产精品久线观看视频| 亚洲国产精品激情在线观看| 国产视频一区在线观看| 国产欧美日本一区视频| 久久精品人人做人人综合 | 国产精品无人区| 欧美国产精品一区二区三区| 中文字幕精品一区二区精品绿巨人| 久久久久国产精品人| 久久精品视频一区| 最新久久zyz资源站| 亚洲精品视频自拍| 亚洲成人午夜影院| 久久av资源网| 国产电影一区在线| 91最新地址在线播放| 色综合久久天天综合网| 欧美日韩精品是欧美日韩精品| 91精品国产手机| 欧美激情综合五月色丁香| 国产精品成人一区二区艾草| 亚洲精品乱码久久久久| 日韩中文字幕麻豆| 国产精品夜夜嗨| 色爱区综合激月婷婷| 777午夜精品视频在线播放| 亚洲精品一区二区三区福利| 国产精品天干天干在观线| 亚洲成人免费在线观看| 精品一二三四区| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 久久久www成人免费无遮挡大片| 国产精品久久网站| 午夜激情一区二区| 国产乱子伦视频一区二区三区 | 青娱乐精品视频在线| 国产精品自拍在线| 色菇凉天天综合网| 欧美一区二区三区四区高清| 国产精品久99| 蜜臀a∨国产成人精品| 亚洲色欲色欲www| 亚洲成人tv网| 国产综合色在线| 91在线观看地址| 精品久久免费看| 亚洲自拍偷拍网站| 成人免费黄色大片| 日韩欧美国产一区在线观看| 中文字幕一区二区在线观看|