等级和等级自适应显示

使用php中文截取函数,而不是英文截取函数:

/**
     * @param $text
     * @return string
     * 字体大小自适应
     */
    public static function adapteText($text, $cols=4){
        $mb_str_len = $cols * 1.5;
        $adapteText = '';
        if(mb_strlen($text, 'utf-8')>=$mb_str_len*1.5){
            $adapteText = '<span style="font-size: 9px; margin: 0;">'.mb_substr($text, 0, floor($mb_str_len*1.5), 'utf-8').'</span>';
        }elseif(mb_strlen($text, 'utf-8')>=$mb_str_len*1.2){
            $adapteText = '<span style="font-size: 10px; margin: 0;">'.mb_substr($text, 0, floor($mb_str_len*1.2), 'utf-8').'</span>';
        }elseif (mb_strlen($text, 'utf-8')>=$mb_str_len){
            $adapteText = '<span style="font-size: 11px;  margin: 0;">'.$text.'</span>';
        }else{
            $adapteText = $text;
        }
        return $adapteText;
    }

等级和等级自适应出库函数:

/**
     * @param $print_info
     * 向tcpdf模板写入等级和等级备注信息
     */
    public function writeGradeInfo($print_info){
        $x = 2.8 * \core\components\PrintHelper::KX;
        $y = 10.2 * \core\components\PrintHelper::KY;
        $w = 2 * \core\components\PrintHelper::KW;
        $h = 0.4 * \core\components\PrintHelper::KH;

        if (!empty($print_info['detail_list'])){
            foreach ($print_info['detail_list'] as $key => $detail_info){
                $grade_info_name = isset($detail_info['grade_info_name']) ? $detail_info['grade_info_name'] : '';
                $grade_describe = isset($detail_info['grade_describe']) ? $detail_info['grade_describe'] : '';
                if (!empty($grade_describe)){
                    $this->SetFont('msyh', '', 8);
                    $grade_info_name = mb_substr($grade_info_name, 0, 9, 'UTF-8');
                    $grade_describe = mb_substr($grade_describe, 0, 9, 'UTF-8');
                    $this->writeHTMLCell($w, $h, $x, $y + $key * \core\components\PrintHelper::KY, $grade_info_name, 0, 0, 0, 'R', 'T');
                    $this->writeHTMLCell($w, $h, $x, $y + $key * \core\components\PrintHelper::KY + $h, $grade_describe, 0, 0, 0, 'R', 'T');
                }else{
                    if (mb_strlen($grade_info_name, 'UTF-8') <= 6){
                        $this->SetFont('msyh', '', 12);
                        $this->writeHTMLCell($w, $h, $x, $y + $key * \core\components\PrintHelper::KY, $grade_info_name, 0, 0, 0, 'R', 'M');
                    }elseif (mb_strlen($grade_info_name, 'UTF-8') <= 8){
                        $this->SetFont('msyh', '', 10);
                        $this->writeHTMLCell($w, $h, $x, $y + $key * \core\components\PrintHelper::KY, $grade_info_name, 0, 0, 0, 'R', 'M');
                    }else{
                        $this->SetFont('msyh', '', 8);
                        $grade_info_name = mb_substr($grade_info_name, 0, 18, 'UTF-8');
                        $this->writeHTMLCell($w, $h, $x, $y + $key * \core\components\PrintHelper::KY, $grade_info_name, 0, 0, 0, 'R', 'T');
                    }
                }
            }
        }
        $this->SetFont('msyh', '', 12);
    }

猜你喜欢

转载自www.cnblogs.com/liuzhiqaingxyz/p/10097841.html