TCPDF生成PDF文件,含jpjraph生成雷达图

news2024/11/15 17:51:13

TCPDF生成PDF文件,含jpjraph生成雷达图

依赖自行安装

        "tecnickcom/tcpdf": "^6.6",
        "amenadiel/jpgraph": "4"

雷达图生成

中文字体添加安装

没有封装,只作为测试案例展示

// 创建新的PDF文档
        $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
//        $pdf = new \TCPDF('P', 'mm', 'A4', true, 'UTF-8', false, true);
        $pdf->SetPrintHeader(false);
        $pdf->SetPrintFooter(false);
        //禁用自动分页
        $pdf->SetAutoPageBreak(false);

// 设置文档信息
//        $pdf->SetCreator(PDF_CREATOR);  //设置 PDF 文件的创建者。
//        $pdf->SetAuthor('Your Name');   //设置 PDF 文件的作者姓名。
//        $pdf->SetTitle('Radar Chart');      //设置 PDF 文件的标题。
//        $pdf->SetSubject('TCPDF Tutorial');//设置 PDF 文件的主题。
//        $pdf->SetKeywords('TCPDF, PDF, example, test, guide');//设置 PDF 文件的关键词。
// 设置默认的页眉数据
//        $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);
// 设置页眉和页脚字体
//        $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
//        $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// 设置默认等宽字体
//        $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// 设置边距
//        $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
//        $pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
//        $pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// 设置自动分页
//        $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// 设置图像缩放因子
//        $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set font
//        $pdf->SetFont('helvetica', '', 10);

        $pageWidth = $pdf->getPageWidth();// 页宽度
        $pageHeight = $pdf->getPageHeight();// 页宽度
        $titleFont = 'yahei'; // 字体
        $titleFontSize = 16; // 字号
        
        //封面
        $pdf->AddPage();
        $cover_img = 'https://******.png';
        $pdf->Image($cover_img, 0, 0, $pageWidth, $pageHeight);
        // 设置文字颜色
        $pdf->SetTextColor(0,0,0);
        // 设置字体和字号
        $pdf->SetFont($titleFont, '', $titleFontSize-6);
        $pdf->Text(23, 275, '扫一扫在线浏览报告');
        //======================编号
        // 设置文字颜色
        $pdf->SetTextColor(0,0,0);
        // 设置字体和字号
        $pdf->SetFont($titleFont, '', $titleFontSize-6);
        $pdf->Text(18, 30, '报告编号:');
        //======================自测时间
        $dateTime = new \DateTime($row['create_time']);
        $yearMonthDay = $dateTime->format('Y-m-d');

        $pdf->Text(157, 265, '自测时间:'.$yearMonthDay);
        //======================报告单位
        $pdf->Text(115, 271, '报告提供单位:');
        //======================企业名称
        // 设置文字颜色
        $pdf->SetTextColor(67, 16, 16);
        // 设置字体和字号
        $pdf->SetFont($titleFont, '', $titleFontSize+3);
        $pdf->Text($pdf->GetX()-180, $pdf->GetY()-145, $qy_data['Name'] ?? '');

        //第一页
        $pdf->AddPage();
        $headerImgPath = 'https://*****.png';
        $footerImgPath = 'https://******.png';
        $headerImgHeight = 30; // 页眉图片高度
        $footerImgHeight = 30; // 页脚图片高度

        // 添加页眉图片
        $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
        // 添加页脚图片
        $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
        $pdf->SetFont($titleFont, '', 8);
        $pdf->SetTextColor(144, 144, 144);
        $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);

//================开始========================
        // 设置标题样式
        $titleWidth = $pageWidth - 20; // 标题宽度(以点为单位)
        $titleHeight = 15; // 标题高度(以点为单位)
        $titleBackgroundColor = array(0, 130, 237); // 背景颜色(RGB颜色值)
        $titleTextColor = array(255, 255, 255); // 文字颜色(RGB颜色值)

        // 设置背景颜色
        $pdf->SetFillColor($titleBackgroundColor[0], $titleBackgroundColor[1], $titleBackgroundColor[2]);
        // 设置文字颜色
        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
        // 设置字体和字号
        $pdf->SetFont($titleFont, 'B', $titleFontSize);
        // 绘制带有背景颜色的矩形作为标题
        $pdf->Rect(10, 25, $titleWidth, $titleHeight, 'F');
        // 在标题矩形内居中显示标题文本
        $titleText = '企业概要';
        $pdf->Text(12, 29, $titleText);

//===================黑字文案=================
        $pdf->SetTextColor(0,0,0);
        $pdf->SetFont($titleFont, '', 12);
        $pdf->Text(12, 45, '企业基本信息数据来源于测试主体在相关信息公示、公开信息数据整理分析所得');

        //======================

        // 设置背景颜色
        $pdf->SetFillColor(95, 183, 255);
        // 设置文字颜色
        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
        $pdf->Rect(10, 55, $titleWidth, $titleHeight-2, 'F');
        // 在标题矩形内居中显示标题文本
        $pdf->SetFont($titleFont, 'B', 12);
        $titleText = '基本信息';
        $pdf->Text(12, 59, $titleText);


        $pdf->Ln(12); // 换行
        // 设置字体
        $pdf->SetTextColor(0,0,0);
        $pdf->SetFont($titleFont, '', 8);
        // 表格数据
        $data = [
            ['企业名称', $qy_data['Name'] ?? '', '统一社会信用代码', $qy_data['CreditCode'] ?? ''],
            ['法人代表', $qy_data['OperName'] ?? '', '注册资本', $qy_data['RegistCapi'] ?? ''],
            ['企业类型', $qy_data['EconKind'] ?? '', '登记状态', $qy_data['Status'] ?? ''],
            ['成立日期', $qy_data['StartDate'] ? date('Y-m-d',strtotime($qy_data['StartDate'])) : '', '核准日期', $qy_data['CheckDate'] ? date('Y-m-d',strtotime($qy_data['CheckDate'])) : ''],
            ['营业期限', date('Y-m-d',strtotime($qy_data['TermStart'])).'至'.$qy_data['TeamEnd'] ? date('Y-m-d',strtotime($qy_data['TeamEnd'])) :'无固定期限', '登记机关', $qy_data['BelongOrg'] ?? ''],
//            ['注册地址', 'B4', 'C4', 'D4'],
//            ['经营范围', 'B4', 'C4', 'D4'],
        ];

        // 遍历表格数据
        $tHeight = 30;
        foreach ($data as $key => $val) {
            foreach ($val as $colIndex => $cell) {
                // 设置单元格背景颜色
                if ($colIndex == 0 || $colIndex == 2) {
                    $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                    $tWidth = 30;
                    $align = 'C';
                } else {
                    $pdf->SetFillColor(255, 255, 255); // 白色背景
                    $tWidth = 65;
                    $align = 'L';
                }

                // 创建单元格
                $pdf->Cell($tWidth, 10, $cell, ['LTRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 0, $align, 1);
            }
            $pdf->Ln(); // 换行
        }
        // 合并最后一行的后三列
//        $pdf->SetXY(12, $pdf->GetY()); // 设置位置为当前 Y 坐标
        $tWidth = 30;
        $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
        $pdf->Cell($tWidth, 10, '注册地址', 1, 0, 'C',1);
        $pdf->SetFillColor(255, 255, 255); // 白色背景
        $pdf->Cell($tWidth + 130, 10, $qy_data['Address']??'', ['LTRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 1, 'L', 1, '', 3);
        $pdf->SetFillColor(244, 244, 244); // 淡灰色背景


        $contentHeight = $pdf->GetStringHeight($tWidth + 130,$qy_data['Scope']??'');
        $rowHeight = max(10, $contentHeight)+2; // 行高度,取标题和内容高度的最大值
        $pdf->Cell($tWidth, $rowHeight, '经营范围', 1, 0, 'C',1);
        $pdf->MultiCell($tWidth + 130, $rowHeight, $qy_data['Scope']??'', ['LTRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 1,'', '', true, 0, false, true, $rowHeight, 'M');

============2. 企业投资人信息=======
/// 表格数据
//        $data = [
//            [
//                "KeyNo" => "1xxxxxxxxxxxxxxxxx",
//                "StockName" => "1xxx",
//                "StockType" => "1自然人股东1",
//                "StockPercent" => "12.8338%",
//                "ShouldCapi" => "1641.6913",
//                "ShoudDate" => "1007-10-22",
//                "StakeDate" => "1007-08-22",
//                "CreditCode" => "1xxxxxxxxxxxxx"
//            ],[
//                "KeyNo" => "2xxxxxxxxxxxxxxxxx",
//                "StockName" => "2xxx",
//                "StockType" => "自然人股东2",
//                "StockPercent" => "22.8338%",
//                "ShouldCapi" => "2641.6913",
//                "ShoudDate" => "2007-10-22",
//                "StakeDate" => "2007-08-22",
//                "CreditCode" => "2xxxxxxxxxxxxxx"
//            ]
//        ];
        $data = $qy_datas['t']['Result'];
        if(!$data){
            $data = [
                [
                    "KeyNo" => "-",
                    "StockName" => "-",
                    "StockType" => "-",
                    "StockPercent" => "-",
                    "ShouldCapi" => "-",
                    "ShoudDate" => "-",
                    "StakeDate" => "-",
                    "CreditCode" => "-"
                ]
            ];
        }
            // 检查是否需要换页
            if ($pdf->GetY() + 20 > $pdf->getPageHeight()) {
                $pdf->AddPage(); // 换页        // 添加页眉图片
                $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                // 添加页脚图片
                $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                $pdf->SetFont($titleFont, '', 8);
                $pdf->SetTextColor(144, 144, 144);
                $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                $pdf->Ln(12);
            }
            $pdf->SetFont($titleFont, 'B', 12);
            // 设置背景颜色
            $pdf->SetFillColor(95, 183, 255);
            // 设置文字颜色
            $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
            $pdf->Rect($pdf->GetX(), $pdf->GetY()+3, $titleWidth, $titleHeight-2, 'F');
            // 在标题矩形内居中显示标题文本
            $titleText = '企业投资人信息';
            $pdf->Text(12, $pdf->GetY()+7, $titleText);

            $pdf->Ln(12); // 换行
            // 遍历表格数据
            foreach ($data as $key => $val) {
                // 检查是否需要换页
                if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
                    $pdf->AddPage(); // 换页        // 添加页眉图片
                    $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    // 添加页脚图片
                    $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    $pdf->SetFont($titleFont, '', 8);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                    $pdf->Ln(12);
                }
                // 设置字体
                $pdf->SetTextColor(0,0,0);
                $pdf->SetFont($titleFont, '', 8);

                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '投资人姓名', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['StockName'], 1, 0, 'L', 1);
                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '投资人类型', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['StockType'], 1, 1, 'L', 1);
                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '持股比例', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['StockPercent'], 1, 0, 'L', 1);
                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '认缴出资额', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['ShouldCapi'], 1, 1, 'L', 1);
                $pdf->Ln(2); // 换行
            }

//============3. 企业资质(如高新技术企业、创新型/科技型中小企业)=======
        // 表格数据
//        $data = [
//            [
//                "Name" => "高新技术企业",
//                "Level" => "国家级",
//                "Source" => "关于辽宁省2020年第三批高新技术企业备案的复函",
//                "PublishOffice" => "全国高新技术企业认定管理工作领导小组办公室",
//                "PublishDate" => "2021-01-18",
//                "BegingDate" => "2020-12-01",
//                "DeadLine" => "2023-12-01"
//            ],
//            [
//                "Name" => "科技型中小企业",
//                "Level" => "国家级",
//                "Source" => "辽宁省2020年第五批入库科技型中小企业名单公告",
//                "PublishOffice" => "辽宁省科学技术厅",
//                "PublishDate" => "2020-11-30",
//                "BegingDate" => "2020-11-30",
//                "DeadLine" => "2023-11-30"
//            ]
//        ];
        $data = $qy_datas['z']['Result']['Data'];
        if(!$data){
                    $data = [
            [
                "Name" => "-",
                "Level" => "-",
                "Source" => "-",
                "PublishOffice" => "-",
                "PublishDate" => "-",
                "BegingDate" => "-",
                "DeadLine" => "-"
            ]
        ];
        }
            // 检查是否需要换页
            if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
                $pdf->AddPage(); // 换页        // 添加页眉图片
                $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                // 添加页脚图片
                $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                $pdf->SetFont($titleFont, '', 8);
                $pdf->SetTextColor(144, 144, 144);
                $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                $pdf->Ln(12);
            }
        // 设置背景颜色
        $pdf->SetFillColor(95, 183, 255);
        // 设置文字颜色
        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
        $pdf->Rect($pdf->GetX(), $pdf->GetY(), $titleWidth, $titleHeight-2, 'F');
        $pdf->SetFont($titleFont, 'B', 12);
        // 在标题矩形内居中显示标题文本
            $titleText = ' 企业资质(如高新技术企业、创新型/科技型中小企业)';
            $pdf->Text(12, $pdf->GetY()+4, $titleText);

//=====表格

            $pdf->Ln(12); // 换行
            // 遍历表格数据
            foreach ($data as $key => $val) {
                // 检查是否需要换页
                if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
                    $pdf->AddPage(); // 换页        // 添加页眉图片
                    $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    // 添加页脚图片
                    $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    $pdf->SetFont($titleFont, '', 8);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                    $pdf->Ln(12);
                }
                // 设置字体
                $pdf->SetTextColor(0,0,0);
                $pdf->SetFont($titleFont, '', 8);

                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '资质名称', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['Name'], 1, 0, 'L', 1);
                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '级别', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['Level'], 1, 1, 'L', 1);
                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '来源', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['Source'], 1, 0, 'L', 1);
                $pdf->SetFillColor(244, 244, 244); // 淡灰色背景
                // 创建单元格
                $pdf->Cell(30, 10, '发布单位', 1, 0, 'C', 1);
                $pdf->SetFillColor(255, 255, 255); // 白色背景
                // 创建单元格
                $pdf->Cell(65, 10, $val['PublishOffice'], 1, 1, 'L', 1);
                $pdf->Ln(2); // 换行
            }


//===================第二页======================
        $pdf->AddPage();
        // 添加页眉图片
        $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
        // 添加页脚图片
        $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
        $pdf->SetFont($titleFont, '', 8);
        $pdf->SetTextColor(144, 144, 144);
        $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
        $pdf->Ln(12);

        //=============================
        // 设置背景颜色
        $pdf->SetFillColor($titleBackgroundColor[0], $titleBackgroundColor[1], $titleBackgroundColor[2]);
        // 设置文字颜色
        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
        // 设置字体和字号
        $pdf->SetFont($titleFont, 'B', $titleFontSize);
        // 绘制带有背景颜色的矩形作为标题
        $pdf->Rect(10, 25, $titleWidth, $titleHeight, 'F');
        // 在标题矩形内居中显示标题文本
        $titleText = '企业评测结果概览';
        $pdf->Text(12, 29, $titleText);
        $pdf->Ln(); // 换行

        $scoreImg = 'https://******.png';
        $pdf->Image($scoreImg, 35, 45, 135, 45, '', '', 'C', false, 300, '', false, false, 0);
//============================分数================================
        $zongScore = Question::with(['record'])
            ->where(['gp_id' => 1, 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->sum('record.result_value');

        $pdf->SetTextColor(34, 84, 244);
        $pdf->SetFont($titleFont, '', 19);
        if($zongScore>99){
            $pdf->Text(48, 49, $zongScore); 
        }elseif($zongScore<10){
            $pdf->Text(53, 49, $zongScore);
        }else{
            $pdf->Text(50, 49, $zongScore); 
        }

        $pdf->SetTextColor(50, 113, 229);
        $pdf->SetFont($titleFont, '', 24);
        if($row['score']>100){
            $pdf->Text(92, 62, $row['score']);
        }else{
            $pdf->Text(96, 62, $row['score']); 
        }

        $pdf->SetTextColor(98, 199, 184);
        $pdf->SetFont($titleFont, '', 19);
        if($row['score']-$zongScore>99){
            $pdf->Text(131, 52, $row['score']-$zongScore);
        }else{
            $pdf->Text(133, 52, $row['score']-$zongScore);
        }

        $analysis = 'https://********.png';
        $pdf->Image($analysis, 10, 100, $titleWidth, 52, '', '', 'C', false, 300, '', false, false, 0);

        $pdf->SetTextColor(44,44,44);
        $pdf->SetFont($titleFont, '', 12);
        $zong = '本次报告测评结果分为【综合评汉分数】与【维度评测分数】两部分组成,总分为200分。在本次测评中,您的企业综合评测得分为X分,维度评测分数为Y分。您的综合评指标存在不足,上年度研发占比、上年度获得机构融资总额未满足,需有针对性地加强。维度评测得分<60分,专业化、精细化、特色化、创新力方面需有针对性地加强,经过专业辅导后可满足申报条件。如您的企业有申报需求,可在线咨询平台专家,专家会根据您报告得分的具体情况为您提供专业建议并制定申报辅导方案。';
        $pdf->MultiCell(145, 0, $zong, 0, 'L', false, 1, 52, 103, true, 0, false, true, 0, 'T', false);

//=======================综合评测分数分析=======================================
        $pdf->SetFillColor($titleBackgroundColor[0], $titleBackgroundColor[1], $titleBackgroundColor[2]);
        // 设置文字颜色
        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
        // 设置字体和字号
        $pdf->SetFont($titleFont, 'B', $titleFontSize);
        // 绘制带有背景颜色的矩形作为标题
        $pdf->Rect(10, 166, $titleWidth, $titleHeight, 'F');
        // 在标题矩形内居中显示标题文本
        $titleText = '综合评测分数分析';
        $pdf->Text(12, 170, $titleText);

//============================已满足条件分析==============
        $pdf->Ln(12); // 换行
//        $pdf->SetFont($titleFont, '', 12);
//        $pdf->SetFillColor(95, 183, 255);
//        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
//        $pdf->Rect(10, 174, $titleWidth, $titleHeight-2, 'F');
//        $pdf->Text(12, 178, '已满足条件分析');

//        $pdf->Ln(14); // 换行

        // 设置字体
        $pdf->SetTextColor(0,0,0);
        $pdf->SetFont($titleFont, '', 8);

        // 表格数据
        $data = Question::with(['record'])
            ->where(['gp_id' => 1, 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->select();
//        echo json_encode($data);
//        $data = [
//            '从事特定细分市场时间达到2年以上',
//            '企业从事特定细分市场已有2年以上,满足条件。',
//        ];
        // 自定义排序函数,根据 result_value 的值进行排序
        usort($data, function($a, $b) {
            if ($a['record']['result_value'] > 0 && $b['record']['result_value'] <= 0) {
                return -1; // $a 在 $b 之前
            } elseif ($a['record']['result_value'] <= 0 && $b['record']['result_value'] > 0) {
                return 1; // $a 在 $b 之后
            } else {
                return 0; // 保持原来的顺序
            }
        });
//        echo json_encode($datas);

        // 遍历表格数据
        $is_true = 0;
        $is_false = 0;
        foreach ($data as $key => $val) {
            if($key < 6){
                //判断第6题是否选择正确,暂时用下面的空字符串和null判断
//                if($key == 5){
//                    $select_data = QuestionSelect::where(['record_id' => $val['record']['id']])->value('select_data');
//                    $val['record']['result_value']=1;
//                }
//==========已满足、未满足大标题
                // 检查是否需要换页
                if ($pdf->GetY() + 35 > $pdf->getPageHeight()) {
                    $pdf->AddPage(); // 换页        // 添加页眉图片
                    $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    // 添加页脚图片
                    $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    $pdf->SetFont($titleFont, '', 8);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                    $pdf->Ln(12); // 换行
                }
                if($val['record']['result_value']>0 || ($val['record']['result_value']==0 && $val['record']['data'] === '')){
                    if($is_true == 0){
                        $pdf->Ln(); // 换行
                        $pdf->SetFont($titleFont, 'B', 12);
                        $pdf->SetFillColor(95, 183, 255);
                        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
                        $pdf->Rect($pdf->GetX(), $pdf->GetY()-6, $titleWidth, $titleHeight-2, 'F');
                        $pdf->Text($pdf->GetX(), $pdf->GetY()-2, '  已满足条件分析');
                        $pdf->Ln(12); // 换行
                        $is_true = 1;
                    }
                    $pdf->SetTextColor(95, 188, 102);
                    $successImg = 'https://**********.png';
                }else{
                    if($is_false == 0){
                        $pdf->Ln(); // 换行
                        $pdf->SetFont($titleFont, 'B', 12);
                        $pdf->SetFillColor(95, 183, 255);
                        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
                        $pdf->Rect($pdf->GetX(), $pdf->GetY()-6, $titleWidth, $titleHeight-2, 'F');
                        $pdf->Text($pdf->GetX(), $pdf->GetY()-2, '未满足条件分析');
                        $pdf->Ln(12); // 换行
                        $is_false = 1;
                    }
                    $pdf->SetTextColor(239, 56, 34);
                    $successImg = 'https://**********.png';
                }
                // 检查是否需要换页
                if ($pdf->GetY() + 35 > $pdf->getPageHeight()) {
                    $pdf->AddPage(); // 换页        // 添加页眉图片
                    $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    // 添加页脚图片
                    $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                    $pdf->SetFont($titleFont, '', 8);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                    $pdf->Ln(12); // 换行
                }
                $pdf->SetFillColor(233, 233, 233); // 淡灰色背景
                $pdf->Cell(10, 10, '', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',1);
                $pdf->SetFont($titleFont, '', 10);
                $pdf->Cell($titleWidth-30, 10, $val['name'], ['LTRB' => ['width' => 0.1, 'color' => [233, 233, 233]]], 0, 'L', 1);
                $pdf->SetTextColor(0, 0, 0);
                $pdf->Cell(20, 10, '', ['LTRB' => ['width' => 0.1, 'color' => [233, 233, 233]]], 1, 'L', 1);
                $pdf->Image($successImg, $pdf->GetX() + 3, $pdf->GetY()-8, 5);

                $pdf->SetFillColor(255, 255, 255); // 白色背景
                $pdf->SetTextColor(0, 140, 255);
                if($key == 5 && $val['record']['data'] === null){   //第六题没有分数判断data为null还是空字符串
                    $content = '企业已满足1.近三年获得过省级科技奖励,并排名前三2.近三年获得国家级科技奖励,并在获奖单位中排名前五3.近两年研发费用总额均值在1000万元以上4.近两年新增股权融资总额(合格机构投资者实缴金额)达到6000万元以上4.近三年进入“创客中国”中小企业创新创业大赛全国500强企业#其中一项或多项,满足条件。';
                    $contentHeight = $pdf->GetStringHeight($tWidth + 130,$content);
                    $rowHeight = max(10, $contentHeight); // 行高度,取标题和内容高度的最大值
                    $pdf->Cell(25, $contentHeight, '【大师兄点评】', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',0);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->MultiCell($tWidth + 135, $rowHeight, $content, ['TRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 1,'', '', true, 0, false, true, $rowHeight, 'M');

                    $pdf->Ln(2); // 换行
                }elseif ($key == 5 && $val['record']['data'] === ''){
                    $content = '企业已满足1.近三年获得过省级科技奖励,并排名前三2.近三年获得国家级科技奖励,并在获奖单位中排名前五3.近两年研发费用总额均值在1000万元以上4.近两年新增股权融资总额(合格机构投资者实缴金额)达到6000万元以上4.近三年进入“创客中国”中小企业创新创业大赛全国500强企业#其中一项或多项,满足条件。';
                    $contentHeight = $pdf->GetStringHeight($tWidth + 130,$content);
                    $rowHeight = max(10, $contentHeight); // 行高度,取标题和内容高度的最大值
                    $pdf->Cell(25, $contentHeight, '【大师兄点评】', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',0);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->MultiCell($tWidth + 135, $rowHeight, $content, ['TRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 1,'', '', true, 0, false, true, $rowHeight, 'M');
                }else{
                    $content = \app\admin\model\question\Tips::where(['group_id' => $val['standard_group'],'result_value' => $val['record']['result_value']])->value('content');
                    $contentHeight = $pdf->GetStringHeight($tWidth + 130,$content);
                    $rowHeight = max(10, $contentHeight); // 行高度,取标题和内容高度的最大值
                    $pdf->Cell(25, $rowHeight, '【大师兄点评】', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',0);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->MultiCell($tWidth + 135, $rowHeight, $content, ['TRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 1,'', '', true, 0, false, true, $rowHeight, 'M');

                    $pdf->Ln(2); // 换行
                }
            }
        }

        //=======================维度评测分数分析=======================================
        $pdf->SetFillColor($titleBackgroundColor[0], $titleBackgroundColor[1], $titleBackgroundColor[2]);
        // 设置文字颜色
        $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
        // 设置字体和字号
        $pdf->SetFont($titleFont, 'B', $titleFontSize);
        // 绘制带有背景颜色的矩形作为标题
        $pdf->Rect($pdf->GetX(), $pdf->GetY()+4, $titleWidth, $titleHeight, 'F');
        // 在标题矩形内居中显示标题文本
        $titleText = '维度评测分数分析';
        $pdf->Text($pdf->GetX()+2, $pdf->GetY()+7, $titleText);

        //专业化
        $zScore = Question::with(['record'])
            ->where(['gp_id' => 2, 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->sum('record.result_value');
        //精细化
        $jScore = Question::with(['record'])
            ->where(['gp_id' => 3, 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->sum('record.result_value');
        //新颖化
        $xScore = Question::with(['record'])
            ->where(['gp_id' => 4, 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->sum('record.result_value');
        //特色化
        $tScore = Question::with(['record'])
            ->where(['gp_id' => 5, 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->sum('record.result_value');
//============================雷达图============================
        $pdf->Ln(); // 换行
//        // =================创建雷达图
        $values = array($jScore,$zScore,$xScore,$tScore);
        $graph = $this->createRadarGraph($values);

        // 将雷达图输出到缓冲区
        ob_start();
        $graph->Stroke();
        $imgData = ob_get_clean();

        // 将雷达图插入 PDF
        $pdf->Image('@' . $imgData, $pdf->GetX()+42, $pdf->GetY()+16, 100, 100, '', '', 'C', false, 300, '', false, false, 0);
// -----------------------四维度分数----------------------------------

        $pdf->SetTextColor(0, 0, 0);
        $pdf->SetFont($titleFont, 'B', 14);
        $pdf->Text(95, $pdf->GetY()+10, '精细化');
        $pdf->SetFont($titleFont, '', 10);
        $pdf->Text(95, $pdf->GetY()+10, '评分:');
        $pdf->SetTextColor(239, 56, 34);
        $pdf->Text(106, $pdf->GetY(), $jScore);
        $pdf->SetTextColor(0, 0, 0);
        $pdf->SetFont($titleFont, 'B', 14);
        $pdf->Text(45, $pdf->GetY()+38, '专业化');
        $pdf->SetFont($titleFont, '', 10);
        $pdf->Text(45, $pdf->GetY()+11, '评分:');
        $pdf->SetTextColor(239, 56, 34);
        $pdf->Text(56, $pdf->GetY(), $zScore);
        $pdf->SetTextColor(0, 0, 0);
        $pdf->SetFont($titleFont, 'B', 14);
        $pdf->Text(145, $pdf->GetY()-11, '特色化');
        $pdf->SetFont($titleFont, '', 10);
        $pdf->Text(145, $pdf->GetY()+10, '评分:');
        $pdf->SetTextColor(239, 56, 34);
        $pdf->Text(156, $pdf->GetY(), $tScore);
        $pdf->SetTextColor(0, 0, 0);
        $pdf->SetFont($titleFont, 'B', 14);
        $pdf->Text(95, $pdf->GetY()+40, '新颖化');
        $pdf->SetFont($titleFont, '', 10);
        $pdf->Text(95, $pdf->GetY()+10, '评分:');
        $pdf->SetTextColor(239, 56, 34);
        $pdf->Text(106, $pdf->GetY(), $xScore);

        //================
        $pdf->Ln(); // 换行
        $pdf->SetFillColor(237, 237, 237);
        $pdf->SetTextColor(0,0,0);
        $pdf->SetFont($titleFont, '', 12);
        // 绘制带有背景颜色的矩形作为标题
        $pdf->Rect($pdf->GetX(), $pdf->GetY()+4, $titleWidth, 20, 'F');
        // 在标题矩形内居中显示标题文本
        $titleText = '当前企业维度评分为';
        $pdf->Text(45, $pdf->GetY()+8, $titleText);
        $pdf->SetTextColor(239, 56, 34);
        $pdf->SetFont($titleFont, '', 18);
        $titleText = $zScore + $tScore + $xScore + $jScore;
        $pdf->Text(84, $pdf->GetY()-2, $titleText);
        $pdf->SetTextColor(0,0,0);
        $pdf->SetFont($titleFont, '', 12);
        $titleText = '分,评分高代表该维度指标最强,';
        $pdf->Text(93, $pdf->GetY()+2, $titleText);
        $titleText = '评分低代表该指标有待提高,详细分析见下方。';
        $pdf->Text(55, $pdf->GetY()+8, $titleText);
        $pdf->Ln(); // 换行

        //=========================各维度
        $pdf->AddPage(); // 换页
        $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
        $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
        $pdf->SetFont($titleFont, '', 8);
        $pdf->SetTextColor(144, 144, 144);
        $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
        $pdf->Ln(12); // 换行

        $data = Question::with(['record'])
//            ->where(['gp_id' => ['in','2,3,4,5'], 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->where(['gp_id' => ['in','2,3,4,5'], 'pid' => $row['record_id'], 'state' => 0, 'record.test_log_id' => $row['id']])
            ->order('sort','asc')
            ->select();
//        return json_encode($data);
//1综合指标,2专业化,3精细化,4创新力,5特色化
        $wei = [
            0 => ['name'=>'专业化','score' => 25,'gScore' => $zScore],
            4 => ['name'=>'精细化','score' => 25,'gScore' => $jScore],
            8 => ['name'=>'新颖化','score' => 35,'gScore' => $xScore],
            12 => ['name'=>'特色化','score' => 15,'gScore' => $tScore],
        ];
        //==========
        $lastKey = count($data)-1;
        foreach ($data as $key => $val){
            // 检查是否需要换页
            if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
                $pdf->AddPage(); // 换页        // 添加页眉图片
                $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                // 添加页脚图片
                $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                $pdf->SetFont($titleFont, '', 8);
                $pdf->SetTextColor(144, 144, 144);
                $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                $pdf->Ln(8); // 换行
            }
            if($key == 0 || $key == 4 || $key == 8 || $key == 12){
                $pdf->Ln(2); // 换行
                $pdf->SetFillColor(95, 183, 255);
                $pdf->SetFont($titleFont, '', 12);
                $pdf->SetTextColor($titleTextColor[0], $titleTextColor[1], $titleTextColor[2]);
                $pdf->Rect($pdf->GetX(), $pdf->GetY(), $titleWidth, $titleHeight-2, 'F');
                $pdf->Text($pdf->GetX()+4, $pdf->GetY()+4, $wei[$key]['name']);
//                $pdf->SetY($pdf->GetY()+4);
//                $pdf->Ln(); // 换行

//=========得分框======
                // 设置边框颜色和填充颜色
                $pdf->SetDrawColor(148, 172, 250);   // 边框颜色
                $pdf->SetFillColor(255,255,255);
                // 绘制圆角长方体的框
                $width = 50; // 框的宽度
                $height = 30; // 框的高度
                $pdf->RoundedRect(10, $pdf->GetY()+10, $width, $height, 2, '1111', 'DF');
//                $pdf->SetY($pdf->GetY()+$height+8);
                //得分
                $pdf->SetFont($titleFont, 'B', 32);
                $pdf->SetTextColor(0,0,0);
                if($wei[$key]['gScore']<=9){
                    $pdf->Text(30, $pdf->GetY()+15, $wei[$key]['gScore']);
                }else{
                    $pdf->Text(28, $pdf->GetY()+15, $wei[$key]['gScore']);
                }
                //满分
                $pdf->SetFont($titleFont, 'B', 12);
                $pdf->SetTextColor(118, 118, 119);
                $pdf->Text(24, $pdf->GetY()+15, '满分 '.$wei[$key]['score'] . ' 分');
//=========得分条======
                // 设置底部进度条的位置和尺寸
                $progressX = 80;
                $progressY = $pdf->GetY()-5;
                $progressWidth = 100;
                $progressHeight = 8;
                $cornerRadius = 2; // 圆角半径
                // 设置进度条颜色
                $progressColor = [71, 136, 255]; // 蓝色
                // 设置进度百分比(0-100)
                $progressPercentage = $wei[$key]['gScore'] / $wei[$key]['score'] * 100;
                // 计算实际进度条的宽度
                $actualProgressWidth = $progressWidth * ($progressPercentage / 100);
                // 绘制底部进度条背景(灰色部分)
                $pdf->SetFillColor(200, 200, 200); // 灰色
                $pdf->RoundedRect($progressX, $progressY, $progressWidth, $progressHeight, $cornerRadius, '1111', 'DF');
                // 绘制实际进度
                // 定义渐变颜色
//                $startColor = [173, 205, 255]; // 浅蓝色
//                $endColor = [71, 136, 255];      // 深蓝色
                // 创建线性渐变
//                $gradient = $pdf->LinearGradient($progressX, $progressY, $actualProgressWidth, $progressHeight, $startColor, $endColor);
//                $pdf->SetFillColor($gradient);
//                $pdf->SetFillColor($progressColor);
                if($wei[$key]['gScore'] != 0){
                    $pdf->RoundedRect($progressX, $progressY, $actualProgressWidth, $progressHeight, $cornerRadius, '1111', 'DF','',$progressColor);
                }

// 在进度条内显示数值
                $textX = $progressX + $actualProgressWidth - 8; // 设置文本位置的 x 坐标
                $textY = $progressY + $progressHeight / 2 - 14; // 设置文本位置的 y 坐标
                $pdf->SetFont($titleFont, '', 16);
                $pdf->SetTextColor(240, 74, 54);
                $pdf->Text($textX, $textY, $wei[$key]['gScore'] . ' 分');
                //进度条两边分数
                $pdf->SetFont($titleFont, '', 12);
                $pdf->SetTextColor(164, 164, 164);
                $pdf->Text($progressX - 12, $progressY+2, '0 分');
                $pdf->Text($progressX+103, $progressY+2, $wei[$key]['score'] . ' 分');

                $pdf->Ln(14); // 换行
            }

//========建议===
            $pdf->Ln(4); // 换行
            $pdf->SetFillColor(233, 233, 233); // 淡灰色背景
            $pdf->Cell(5, 10, '', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',1);
            $pdf->SetFont($titleFont, '', 10);
            $pdf->SetTextColor(0, 0, 0);
            $pdf->Cell($titleWidth-25, 10, $val['name'], ['LTRB' => ['width' => 0.1, 'color' => [233, 233, 233]]], 0, 'L', 1);
            $pdf->Cell(20, 10, '得分:'.intval($val['record']['result_value']).'分', ['LTRB' => ['width' => 0.1, 'color' => [233, 233, 233]]], 1, 'L', 1);

            // 检查是否需要换页
            if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
                $pdf->AddPage(); // 换页        // 添加页眉图片
                $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                // 添加页脚图片
                $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                $pdf->SetFont($titleFont, '', 8);
                $pdf->SetTextColor(144, 144, 144);
                $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                $pdf->Ln(12); // 换行
            }
            $contentHeight = $pdf->GetStringHeight($tWidth + 130,$val['option_answer']);
            $rowHeight = max(10, $contentHeight); // 行高度,取标题和内容高度的最大值
            $pdf->SetTextColor(106, 192, 112);
            $pdf->SetFont($titleFont, '', 10);
            $pdf->Cell(2, $rowHeight, '', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',0);
            $pdf->MultiCell($tWidth + 138, $rowHeight, '满分指标:'.$val['option_answer'], ['TB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 0,'', '', true, 0, false, true, $rowHeight, 'M');
            $pdf->Cell(20, $rowHeight, '满分:'.$val['option_score'].'分', ['TRB' => ['width' => 0.1, 'color' => [233, 233, 233]]],1,'L',0);

            // 检查是否需要换页
            if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
                $pdf->AddPage(); // 换页        // 添加页眉图片
                $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
                // 添加页脚图片
                $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
                $pdf->SetFont($titleFont, '', 8);
                $pdf->SetTextColor(144, 144, 144);
                $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
                $pdf->Ln(12); // 换行
            }
//=============特色化建议区分===
                if($val['gp_id'] == 5 && $key == $lastKey){
//                    echo $key.'==='.count($data);die;
                    if($tScore <= 4){
                        $result_value = 4;
                    }elseif($tScore > 4 && $tScore <= 10){
                        $result_value = 10;
                    }elseif($tScore > 10 && $tScore <= 15){
                        $result_value = 15;
                    }
                    $content = \app\admin\model\question\Tips::where(['group_id' => 'GP_5','result_value' => $result_value])->value('content');
                    $contentHeight = $pdf->GetStringHeight($tWidth + 130,$content);
                    $rowHeight = max(10, $contentHeight); // 行高度,取标题和内容高度的最大值
                    $pdf->SetTextColor(0, 140, 255);
                    $pdf->Cell(25, $rowHeight, '【大师兄建议】', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',0);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->MultiCell($tWidth + 135, $rowHeight, $content, ['TRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 1,'', '', true, 0, false, true, $rowHeight, 'M');
                }elseif($val['gp_id'] != 5){
                    $content = \app\admin\model\question\Tips::where(['group_id' => $val['standard_group'],'result_value' => $val['record']['result_value']])->value('content');
                    $contentHeight = $pdf->GetStringHeight($tWidth + 130,$content);
                    $rowHeight = max(10, $contentHeight); // 行高度,取标题和内容高度的最大值
                    $pdf->SetTextColor(0, 140, 255);
                    $pdf->Cell(25, $rowHeight, '【大师兄建议】', ['LTB' => ['width' => 0.1, 'color' => [233, 233, 233]]],0,'L',0);
                    $pdf->SetTextColor(144, 144, 144);
                    $pdf->MultiCell($tWidth + 135, $rowHeight, $content, ['TRB' => ['width' => 0.1, 'color' => array(233, 233, 233)]], 'L', 0, 1,'', '', true, 0, false, true, $rowHeight, 'M');
                }


        }

        $pdf->Ln(17); // 换行
        // 检查是否需要换页
        if ($pdf->GetY() + 30 > $pdf->getPageHeight()) {
            $pdf->AddPage(); // 换页        // 添加页眉图片
            $pdf->Image($headerImgPath, 0, 0, $pageWidth, $headerImgHeight, '', '', '', false, 300, '', false, false, 0);
            // 添加页脚图片
            $pdf->Image($footerImgPath, 0, 267, $pageWidth, $footerImgHeight, '', '', '', false, 300, '', false, false, 0);
            $pdf->SetFont($titleFont, '', 8);
            $pdf->SetTextColor(144, 144, 144);
            $pdf->Text($pdf->GetX()+8, $pdf->GetY()+2, $qy_data['Name']);
            $pdf->Ln(12); // 换行
        }
        $pdf->SetTextColor(125, 125, 125);
        $content = '更详尽的专精特新企业分析报告,请联系平台客服400-123-123,或直接进入《专精特新专区》在线咨询,上千专家在线为您解读报告!';
        $pdf->MultiCell(145, 30, $content, 0, 'L');
        $imgPath = 'https://***********.png';
        $pdf->Image($imgPath, 170, $pdf->GetY()-40, 30, 30, '', '', 'C', false, 300, '', false, false, 0);

//Close and output PDF document
        $file = ROOT_PATH.'/public/uploads/'. $qy_data['report_number'] .'.pdf';

        $pdf->Output($file, 'FI');

上几个效果图

封面
企业信息
评测分析
雷达图
维度信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/855646.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

throw和throws的区别

在Java中&#xff0c;throw和throws是两个关键字&#xff0c;用于异常处理。它们具有以下区别&#xff1a; 1. throw关键字&#xff1a; - throw关键字用于主动抛出异常。当程序执行到throw语句时&#xff0c;会创建一个异常对象并将其抛出。 - throw语句通常在方法内部…

fastadmin、vue、react图标库适用于多种框架

在二开fastadmin中&#xff0c;在写vue以及react时&#xff0c;侧边导航栏以及按钮中常常需要很多图标&#xff0c;那么这些图标应该去哪里得到呢&#xff0c;在这里给大家一个链接&#xff0c;这里有丰富的图标库&#xff0c;可以找到自己想要的进行使用。 点击下方链接&…

(树) 剑指 Offer 34. 二叉树中和为某一值的路径 ——【Leetcode每日一题】

❓ 剑指 Offer 34. 二叉树中和为某一值的路径 难度&#xff1a;中等 给你二叉树的根节点 root 和一个整数目标和 targetSum &#xff0c;找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a…

opencv 基础50-图像轮廓学习03-Hu矩函数介绍及示例-cv2.HuMoments()

什么是Hu 矩&#xff1f; Hu 矩&#xff08;Hu Moments&#xff09;是由计算机视觉领域的科学家Ming-Kuei Hu于1962年提出的一种图像特征描述方法。这些矩是用于描述图像形状和几何特征的不变特征&#xff0c;具有平移、旋转和尺度不变性&#xff0c;适用于图像识别、匹配和形状…

微信小程序 地图map(电子围栏圆形和多边形)

正常情况下是没有手机上画电子围栏的&#xff0c;公共平台上我也没找到&#xff0c;所以走了一个歪点子&#xff0c;就是给地图添加点击事件&#xff0c;记录点的位置&#xff0c;在画到电子围栏上就是添加电子围栏了&#xff0c;如果只是显示电子围栏就简单了 一、多边形电子…

kubernetes中的kubectl命令详解

kubectl命令详解 一&#xff1a;陈述式资源管理方法&#xff1a;&#xff08;1&#xff09;简单的基础命令1.查看版本信息2.查看资源对象简写3.查看集群信息4.配置kubectl自动补全5.node节点查看日志 &#xff08;2&#xff09;基本信息查看1.查看 master 节点状态2.查看命名空…

黑马大数据学习笔记4-Hive部署和基本操作

目录 思考规划安装MySQL数据库修改root用户密码配置Hadoop下载解压Hive提供MySQL Driver包配置Hive初始化元数据库启动Hive&#xff08;使用Hadoop用户&#xff09;Hive体验HiveServer2HiveServer2服务启动 Beeline p48、51、52 https://www.bilibili.com/video/BV1WY4y197g7/?…

《合成孔径雷达成像算法与实现》Figure3.9

代码复现如下&#xff1a; clc clear close all% 参数设置 TBP 100; % 时间带宽积 T 7.2e-6; % 脉冲持续时间 t_0 1e-6; % 脉冲回波时延% 参数计算 B TBP/T; …

计网实验第三章:TCP

问题集一 问题一 客户端计算机(源)使用的IP地址和TCP端口号是什么&#xff1f;将文件传输到gaia.cs.umass.edu? 图1 答&#xff1a;如图1中所示&#xff1a;192.168.31.7 &#xff0c;80 问题二 gaia.c.s.umass.edu的IP地址是什么?发送的端口号是什么并接收此连接的TCP段…

VR内容定制 | VR内容中控管理平台可以带来哪些价值?

随着科技的不断发展&#xff0c;虚拟现实(VR)技术已经逐渐渗透到各个领域&#xff0c;其中教育领域也不例外。通过VR技术&#xff0c;学生可以身临其境地参与到各种场景中&#xff0c;获得更加直观、生动的学习体验。为了让教师更好地进行VR教学的设计和管理&#xff0c;提高教…

Mac电脑如何把照片以文件格式导出?

在Mac电脑上&#xff0c;我们经常会拍摄、保存和编辑各种照片。有时候&#xff0c;我们可能需要将这些照片以文件形式导出&#xff0c;以便与他人共享、打印或备份。无论您是要将照片发送给朋友、上传到社交媒体&#xff0c;还是保存到外部存储设备&#xff0c;导出照片为文件是…

Wlan——射频和天线基础知识

目录 射频的介绍 射频和Wifi 射频的相关基础概念 射频的传输 信号功率的单位 射频信号传输行为 天线的介绍 天线的分类 天线的基本原理 天线的参数 射频的介绍 射频和Wifi 什么是射频 从射频发射器产生一个变化的电流&#xff08;交流电&#xff09;&#xff0c;通过…

Java后端开发需要学什么课程,能够帮助就业

Java后端开发需要学什么课程&#xff0c;学习内容对于想要在Java就业的同学来说非常重要。以下是一些关键的学习内容&#xff0c;可以帮助他们在Java领域获得就业机会&#xff1a; Java核心知识&#xff1a;掌握Java编程语言的基本语法、面向对象编程、异常处理、集合框架等核心…

[保研/考研机试] KY102 计算表达式 上海交通大学复试上机题 C++实现

描述 对于一个不存在括号的表达式进行计算 输入描述&#xff1a; 存在多组数据&#xff0c;每组数据一行&#xff0c;表达式不存在空格 输出描述&#xff1a; 输出结果 示例1 输入&#xff1a; 6/233*4输出&#xff1a; 18思路&#xff1a; ①设立运算符和运算数两个…

并发——synchronized 关键字

文章目录 1.说一说自己对于 synchronized 关键字的了解2. 说说自己是怎么使用 synchronized 关键字3. 构造方法可以使用 synchronized 关键字修饰么&#xff1f;4. 讲一下 synchronized 关键字的底层原理4.1. synchronized 同步语句块的情况4.2. synchronized 修饰方法的的情况…

多用户跨境电商商品库系统快速搭建(全开源)

搭建一个多用户跨境电商商品库系统需要以下步骤&#xff1a; 1. 确定系统需求&#xff1a;首先&#xff0c;需要明确系统的功能需求&#xff0c;包括商品管理、订单管理、用户管理、支付管理等。根据具体需求确定系统的功能和界面设计。 2. 确定技术栈&#xff1a;选择合适的…

Redis简单学习

Redis是一个基于内存的key-value结构数据库 linux上面安装&#xff1a; Redis存储的是key-value结构的数据&#xff0c;其中key是字符串&#xff0c;value有常见的5中数据类型&#xff1a; 字符串 string哈希 hash列表 list集合 set有序集合 sorted set 字符串常用操作&am…

Jmeter压测实战:Jmeter二次开发之自定义函数

目录 1 前言 2 开发准备 3 自定义函数核心实现 3.1 新建项目 3.2 继承实现AbstractFunction类 3.3 最终项目结构 4 Jmeter加载扩展包 4.1 maven构建配置 4.2 项目打包 4.3 Jmeter加载扩展包 5 自定义函数调用调试 5.1 打开Jmeter函数助手&#xff0c;选择自定义函数…

linux文件I/O之 open() 函数用法

#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> typedef unsigned int mode_t ; int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); 函数功能 打开或创建一个文件 返回值 成功…

4.2、Flink任务怎样读取文件中的数据

目录 1、前言 2、readTextFile&#xff08;已过时&#xff0c;不推荐使用&#xff09; 3、readFile&#xff08;已过时&#xff0c;不推荐使用&#xff09; 4、fromSource(FileSource) 推荐使用 1、前言 思考: 读取文件时可以设置哪些规则呢&#xff1f; 1. 文件的格式(tx…