| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- <?php
- //获取字符串中中文字符和英文字符的个数
- function GetStringNum($string, &$ChineseCharNum, &$EnglishCharNum)
- {
- $encode = 'UTF-8';
- $str_num = mb_strlen($string, $encode);
- $j = 0;
- for($i=0; $i < $str_num; $i++)
- {
- if(ord(mb_substr($string, $i, 1, $encode)) > 0xa0)
- {
- $j++;
- }
- }
- $ChineseCharNum = $j;
- $EnglishCharNum = $str_num - $j;
- }
- function GetShowLength($string)
- {
- $stringChineseCharNum = 0;
- $stringEnglishCharNum = 0;
- GetStringNum($string, $stringChineseCharNum, $stringEnglishCharNum);
- $stringShowLength = $stringChineseCharNum*2 + $stringEnglishCharNum;
- return $stringShowLength;
- }
- function GetBigStringLewaimai($string)
- {
- $showString = "<1D2111>" . $string . "<1D2100>";
-
- return $showString;
- }
- function GetBigStringFeyin($string)
- {
- $showString = "<Font# Bold=0 Width=2 Height=2>" . $string . "</Font#>";
- return $showString;
- }
- function GetHalfWidthBigStringLewaimai($string)
- {
- $showString = "<1D2101>" . $string . "<1D2100>";
-
- return $showString;
- }
- function GetHalfWidthBigStringFeyin($string)
- {
- $showString = "<Font# Bold=0 Width=1 Height=2>" . $string . "</Font#>";
- return $showString;
- }
- function CenterTitleLeWaiMai($string)
- {
- $stringChineseCharNum = 0;
- $stringEnglishCharNum = 0;
- GetStringNum($string, $stringChineseCharNum, $stringEnglishCharNum);
- $stringShowLength = $stringChineseCharNum*4 + $stringEnglishCharNum*2;
- if ($stringShowLength > 32)
- {
- //如果超过一行,那么就不双倍宽度了
- return GetHalfWidthBigStringLewaimai(CenterString($string));
- }
- //计算左边需要的空格数量
- $spaceNum = (32 - $stringShowLength)/2;
- $spaceString = "";
- for ($i = 0; $i < $spaceNum; $i++)
- {
- $spaceString = $spaceString . " ";
- }
- $showString = $spaceString . "<1D2111>" . $string . "<1D2100>";
- return $showString;
- }
- //将标题居中显示
- function CenterTitleFeyin($string)
- {
- $stringChineseCharNum = 0;
- $stringEnglishCharNum = 0;
- GetStringNum($string, $stringChineseCharNum, $stringEnglishCharNum);
- $stringShowLength = $stringChineseCharNum*4 + $stringEnglishCharNum*2;
- if ($stringShowLength > 32)
- {
- //如果超过一行,那么就不双倍宽度了
- return GetHalfWidthBigStringFeyin(CenterString($string));
- }
- //计算左边需要的空格数量
- $spaceNum = (32 - $stringShowLength)/2;
- $spaceString = "";
- for ($i = 0; $i < $spaceNum; $i++)
- {
- $spaceString = $spaceString . " ";
- }
-
- $showString = $spaceString . "<Font# Bold=1 Width=2 Height=2>" . $string . "</Font#>";
- return $showString;
- }
- //将字符串居中显示(用空格补齐,一行按打印机的32位显示宽度,即最大16个汉字或32个字母算)
- function CenterString($string)
- {
- $stringChineseCharNum = 0;
- $stringEnglishCharNum = 0;
- GetStringNum($string, $stringChineseCharNum, $stringEnglishCharNum);
- $stringShowLength = $stringChineseCharNum*2 + $stringEnglishCharNum;
- if ($stringShowLength > 32)
- {
- //如果超过一行,那么就不用居中了
- return $string;
- }
- //计算左边需要的空格数量
- $spaceNum = (32 - $stringShowLength)/2;
- $spaceString = "";
- for ($i = 0; $i < $spaceNum; $i++)
- {
- $spaceString = $spaceString . " ";
- }
- $showString = $spaceString . $string;
- return $showString;
- }
- //将字符串右对齐显示
- function RightString($string)
- {
- $stringChineseCharNum = 0;
- $stringEnglishCharNum = 0;
- GetStringNum($string, $stringChineseCharNum, $stringEnglishCharNum);
- $stringShowLength = $stringChineseCharNum*2 + $stringEnglishCharNum;
- if ($stringShowLength > 32)
- {
- //如果超过一行,那么就不用右对齐
- return $string;
- }
- //计算左边需要的空格数量
- $spaceNum = 32 - $stringShowLength;
- $spaceString = "";
- for ($i = 0; $i < $spaceNum; $i++)
- {
- $spaceString = $spaceString . " ";
- }
- $showString = $spaceString . $string;
- return $showString;
- }
- function RightBigString($string)
- {
- $stringChineseCharNum = 0;
- $stringEnglishCharNum = 0;
- GetStringNum($string, $stringChineseCharNum, $stringEnglishCharNum);
- $stringShowLength = $stringChineseCharNum*4 + $stringEnglishCharNum*2;
- if ($stringShowLength > 32)
- {
- //如果超过一行,那么就不用右对齐
- return $string;
- }
- //计算左边需要的空格数量
- $spaceNum = 32 - $stringShowLength;
- $spaceString = "";
- for ($i = 0; $i < $spaceNum; $i++)
- {
- $spaceString = $spaceString . " ";
- }
- $showString = $spaceString . $string;
- return $showString;
- }
- function HandleFoodName($string)
- {
- $resultFoodName = $string;
- //如果少于16个显示长度,就不换行
- $showLength = GetShowLength($string);
- $lineShowLength = $showLength%32;
- if ($lineShowLength < 15)
- {
- $spaceNum = 15 - $lineShowLength;
- }
- else
- {
- $spaceNum = 32 - $lineShowLength + 15;
- }
- for ($i = 0; $i < $spaceNum; $i++)
- {
- $resultFoodName = $resultFoodName . " ";
- }
- return $resultFoodName;
- }
- function HandleNum($string)
- {
- $resultFoodName = $string;
- //如果少于16个显示长度,就不换行
- $showLength = GetShowLength($string);
- if ($showLength <= 5)
- {
- $spaceBeforeNum = floor((5 - $showLength)/2);
- $spaceAfterNum = 5 - $spaceBeforeNum - $showLength;
- for ($i = 0; $i < $spaceBeforeNum; $i++)
- {
- $resultFoodName = " " . $resultFoodName;
- }
- for ($i = 0; $i < $spaceAfterNum; $i++)
- {
- $resultFoodName = $resultFoodName . " ";
- }
- }
- else
- {
- //如果显示长度大于5,直接在后面加一个空格
- $resultFoodName = $resultFoodName . " ";
- }
- return $resultFoodName;
- }
- ?>
|