ARTICLE · 1294623
Java PDF 报表模板实战:环形图中心放置文本,占比构成与汇总数字一张图搞定
这张环形图解决了页面上的什么问题
信用评级报告的图表区常年缺地盘。营收构成的占比要展示,年度总营收这个汇总数也要突出,传统做法是左饼图、右数字大卡,两个元素各占一块宽度,A4 版心本来就 600px 上下,摆完之后指标说明就没地方放了。
环形图把这两件事合并成一个元素:外圈扇区画占比构成,中心圆孔直接填"总营收 25680 万元"。一份 Java PDF 报表模板里,图表自身就承担了数字卡片的职责,右侧面板整块宽度让给文字说明。本篇的素材是官方 Demo JQuickCreditReport07CircleTest(输出 D:\test\creditreport\07_circle.pdf),我不按"先讲完 Java 再讲模板"的老路来,而是把模板文件从第一行拆到最后一行——每个区块说清楚写了什么、为什么这么写、改动之后 PDF 会变成什么样,Java 配置只作为注脚跟在对应区块后面。
最终 PDF 的图表区长这样:左侧浅绿底说明面板列四条评级指标,右侧一个绿色系环形图,扇区从深绿到浅绿按数值递减排列,圆孔中心两行字——"总营收"与"万元"单位说明。(效果预览图 alt:jquick-pdf 环形图信用评级报告 PDF,外圈绿色系扇区展示营收构成,圆环中心放置总营收汇总文本)
官网示例:
FORMULAS 示例页:https://www.jquick.org/jquick-pdf github 地址:https://github.com/paohaijiao/jquick-pdf
真实渲染效果预览
以下为上述代码 + 模板真实运行生成的 PDF 首屏预览(由 jquick-pdf 渲染输出,非示意图):

从模板第一行开始拆
模板文件 credit_report_07_circle.txt 全文 151 行,最外层是固定的 壳,真正干活的是七个 div 区块。逐个来。
报告抬头:居中标题加一条绿色分隔线
<divstyle="textAlignment:center; marginBottom:18px"><h1style="fontSize:22; color:#1B5E20; textAlignment:center; bold:true; marginBottom:6px">'企业信用评级报告'</h1><pstyle="fontSize:10; color:#546e7a; textAlignment:center; marginBottom:8px">'四川省企业信用评估中心 | 报告编号: CR-2023-08975 | 评估日期: 2023年11月15日'</p><lineSeparatorstyle="strokeColor:#2E7D32"></lineSeparator></div>
抬头三行:22 号深绿粗体主标题、10 号灰色机构信息行、一条 strokeColor:#2E7D32 的 。这个 lineSeparator 是模板引擎提供的专用画线标签,比用空 div 加 border 画线省事,线型由 strokeColor 一个属性控制。
外层 div 的 marginBottom:18px 管的是抬头与下一个区块的间距。把它删掉,标题区和企业信息卡会贴在一起,报告立刻显得挤。 整行删掉的话,抬头下方失去视觉锚点,灰色小字和下面的企业名直接连成一片——报告类版式里这条线不建议省。
顺带把全篇的字号账记在这里:h1 用 22,区块 h2 用 14 和 13,面板 h3 用 12,正文 10-11,注脚性质的机构信息、页脚落 8-9。层级感全靠这套字号差撑着,没有一处是靠颜色硬凹的。想让某个区块更突出,先动字号差、再考虑加粗,顺序反了的版式会出现"到处都在加粗、等于没有加粗"的效果。
企业信息卡:一行 flex 摆四个小卡片
<divstyle="display:flex; justifyContent:space-between"><divstyle="width:140px; padding:10px; backgroundColor:#e8f5e9; borderRadius:6px; textAlignment:center"><divstyle="fontSize:8; color:#2E7D32; textAlignment:center; marginBottom:4px">'统一信用代码'</div><divstyle="fontSize:10; bold:true; textAlignment:center">'91110108MA01XX1234'</div></div><!-- 成立日期 / 注册资本 / 法定代表人,三个结构相同的卡片 --></div>
display:flex 配 justifyContent:space-between,四个 140px 宽的小卡片均匀铺满一行。每个卡片两层结构:上层 8 号绿字当标签,下层 10 号粗体当值,底色统一 #e8f5e9 浅绿。
这里有一个 Java 侧的全局开关必须提,不然 flex 根本不生效:
JPdfConfig config = new JPdfConfig();// 开启 flex 行布局:图表与其右侧的指标说明面板在宽度允许时并排,而不是换行堆叠。config.getLayoutConfig().setFlexLayout(true);
setFlexLayout(true) 不开,模板里所有 display:flex 都按块级元素堆叠处理——四个信息卡竖着排四行,报告第一页直接多出一截。我第一次跑没开这个开关,以为模板写错了,排查半天发现是配置问题。做 jquick-pdf 环形图这类并排版式,先检查这个开关。
小卡片宽度 140px 也值得留意。统一信用代码 91110108MA01XX1234 是 18 位字符串,10 号粗体在这个宽度里已经顶满;如果把 width:140px 改成 120px,这类长代码值会换行,卡片高度不一致,整行 flex 的下边缘就参差了。信用代码、银行账号这类定长字段,卡片宽度要按最长值预留。
财务表格:斑马纹与增长率列的配色分工
<divstyle="textAlignment:center; marginBottom:18px"><h1style="fontSize:22; color:#1B5E20; textAlignment:center; bold:true; marginBottom:6px">'企业信用评级报告'</h1><pstyle="fontSize:10; color:#546e7a; textAlignment:center; marginBottom:8px">'四川省企业信用评估中心 | 报告编号: CR-2023-08975 | 评估日期: 2023年11月15日'</p><lineSeparatorstyle="strokeColor:#2E7D32"></lineSeparator></div>
表头实底深绿白字,行间用 borderBottom:1px solid #c8e6c9 浅绿线分隔,净利润、净资产两行整行垫 #f1f8f1 形成斑马纹。增长率列单独上了 color:#2E7D32; bold:true——整张表只有这一列带色加粗,视线扫过去先落在增长率上,这是报表里"让重要列自己跳出来"的常规手段。
数字列全部 textAlignment:right,指标名列 left。删掉右对齐,"8,560" 和 "25,680" 位数不同就左对齐排开,多位数和小位数的个位对不齐,横向比较年份增长时眼睛要来回找数。财务表格的对齐规矩别省。
width:600px 是表宽。模板正文区按 A4 版心设计,这个值和页面宽度匹配;如果你给报告加了页边距配置,记得同步核这个数,超宽的表格在 PDF 里会被压缩或截断。
指标卡片:flexWrap 决定一行放几张
<divstyle="display:flex; flexWrap:wrap"><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'营收增长率:连续三年保持40%以上增长,2023年达到25,680万元'</div><!-- 共六张同结构卡片 --></div>
六张 290px 宽的指标卡,靠 flexWrap:wrap 自动换行成两行三张。borderLeft:4px solid #43A047 的左侧竖线是这类卡片的视觉签名,底色只垫一层极浅的绿。
290px 这个数不是随手写的:两张卡加 margin 正好填满 600px 版心。动手把 width:290px 改成 350px 重跑,一行只放得下一张,六张卡竖排占满大半页——flexWrap 的换行行为完全由子项宽度和容器宽度共同决定,调版式时先算宽度账再动手。
卡片文本里"2023年达到25,680万元"这个数,和财务表格最后一列营收、以及下文环形图中心的总营收是同一个值。一套报告里同一指标在表格、卡片、图表三处出现,值必须同源,这属于数据加工层的事,模板只负责如实渲染。
图表区:左说明面板,右 ${svg},本篇的主角
<divstyle="display:flex; justifyContent:space-between"><divstyle="width:300px; padding:12px; backgroundColor:#f1f8f1; borderRadius:6px"><h3style="fontSize:12; color:#1B5E20; bold:true; marginBottom:8px">'评级指标说明'</h3><divstyle="fontSize:10; marginBottom:6px"><spanstyle="color:#2E7D32; bold:true">'● 财务状况(90分): '</span>'营收稳定增长'</div><!-- 经营能力95分 / 偿债能力85分 / 发展潜力92分,三条同结构 --></div><svgstyle="width:400px;height:400px">${svg}</svg></div>
左边 300px 说明面板,右边 标签承接图表。${svg} 是模板变量占位,Java 侧渲染好的 SVG 字符串通过 bind 灌进来:
JCircleChartData chartData = new JCircleChartData();chartData.setWidth(500);chartData.setHeight(400);chartData.setTitleText(”营收结构环形图”);chartData.setSubtitleText(”2023年度按业务线统计”);chartData.setCenterTitle(”总营收”);chartData.setCenterUnit(”万元”);chartData.setFooterText(”数据来源:企业信用评估中心”);List sectors = new ArrayList<>();sectors.add(new JCircleChartData.SectorData(”软件产品”, 10270, new Color(46, 125, 50)));sectors.add(new JCircleChartData.SectorData(”技术服务”, 6420, new Color(67, 160, 71)));sectors.add(new JCircleChartData.SectorData(”云服务”, 5136, new Color(129, 199, 132)));sectors.add(new JCircleChartData.SectorData(”其他”, 3854, new Color(165, 214, 167)));chartData.setSectorDataList(sectors);JOption option = new JOption();option.setData(chartData);String svg = JChartRendererFactory.renderChart(JChartType.Circle, option);
环形图相对饼图的增量配置就两行:setCenterTitle("总营收") 和 setCenterUnit("万元")。这两个值最终落在圆孔中心,一图同时交付占比构成和汇总口径,页面布局上省掉的正是那块独立数字卡。SectorData 构造参数是名称、数值、java.awt.Color 三元组,四个扇区用了同色系绿色从深到浅递减(46,125,50 → 165,214,167),数值越大颜色越深,扫一眼就能读出"软件产品是主力"。
有几个解剖时记下的细节:
`` 写死宽高,而 Java 里 setWidth(500)——两边数值不一致。渲染器把 500 宽的 SVG 塞进 400px 的框时会有缩放或留白,具体表现随版本有差异,稳妥做法是两处改成同一个数,我实测对齐后中心文字与扇区的比例最正。bind("svg", svg)的键名和 ${svg}必须严格一致。键名写成svgData而模板没改,PDF 里会原样打印${svg}字面量——看到这行字出现在成品里,先查 bind 的键。左面板四个圆点的颜色是 #2E7D32、#2ecc71、#e74c3c、#f39c12,红橙都有,和环形图的绿色系完全两套。如果圆点想暗示"与扇区对应",这套颜色是误导;它们实际只是给每条说明做视觉分隔,改版时要么统一成绿色系,要么干脆换成同一种颜色,别让读者以为是图例。中心文字的显示空间由圆孔直径决定,孔径又由环形图内外半径比决定。 centerTitle文字太长(比如"年度营业总收入合计")会被圆孔卡住,中心只放短词加单位是这套 API 的舒适区。
落地前对着三个点过一遍:
setFlexLayout(true)是否已开、bind的键与${svg}拼写是否一致、<svg>的宽高与setWidth/setHeight是否对齐。三处翻车的现象各自不同——开关不开时图表区整块竖排堆叠、说明面板跑到图下面;键名错位时成品 PDF 里原样出现${svg}字面量;尺寸不齐时圆环被缩放或一侧留白。环形图区块的排查,从这三个点入手最快。
深色结论块与页脚
<divstyle="marginBottom:18px; backgroundColor:#1B5E20; color:white; borderRadius:8px; padding:16px"><h2style="fontSize:13; color:white; bold:true; marginBottom:8px">'综合评价'</h2><pstyle="fontSize:11; color:white; textAlignment:left; marginBottom:8px">'……信用评级为AAA级,展望稳定。'</p><pstyle="fontSize:8; color:#c8e6c9; textAlignment:right">'认证通过'</p></div>
全篇唯一的重色块,深绿底白字圆角容器。删掉任何一个子元素的 color:white,黑字落在 #1B5E20 上几乎不可读——深底容器里的每个子元素都要显式声明浅色,这是深色块模板的通用纪律。右下角 8 号浅绿"认证通过"是印章位的替代写法,灰度打印后它和背景的对比度会掉一个档次,需要打印场景的报告建议给这行加边框或换更深的字色。
页脚区复用了 ,加两行 9 号灰字落版权与生成时间。marginTop:20px 把页脚和结论块撑开,删掉它页脚会贴着结论块,收尾显得仓促。
动手改三行验证理解
读模板最好的方式是改一行重跑一次,每个实验五分钟内能出结果:
1. 把 改成 width:500px,与 Java 的 setWidth(500) 对齐,观察环形图放大后中心文字占比的变化;2. 把任一 SectorData 的 Color 改成 new Color(231, 76, 60)(红色),重跑看扇区跳色后”同色系递减”的阅读直觉如何被打破;3. 把指标卡 width:290px 改成 350px,验证 flexWrap 从一行三张退化为一张的换行行为。
这个模板适合与不适合的场景
环形图方案的价值锚点在"中心圆孔放文本"。评级报告、经营月报、基金季报这类"构成 + 总量"双诉求的页面,一张图顶两个元素;深色结论块加绿色系全篇配色也正合正式报告的调子。反过来也得认:灰度打印是天然短板,四个绿色扇区转灰后深浅差距收窄,离开颜色就难分彼此,需要黑白打印存档的报告,要么减少扇区数、要么在扇区上直接标注百分比文字;维度数量超过六七个后扇区过窄,中心文字的阅读优先级反而被挤压,那类数据回退到表格更好。
完整源码附录
依赖版本 4.7.0+。本项目基于 Apache-2.0 协议开源,使用时请保留源码文件头部原有的 License 与版权声明。
Maven 依赖
<dependency><groupId>io.github.paohaijiao</groupId><artifactId>jquick-pdfx</artifactId><version>4.7.0</version><scope>test</scope></dependency>
Gradle 依赖
testImplementation 'io.github.paohaijiao:jquick-pdfx:4.7.0'Java 测试类(JQuickCreditReport07CircleTest.java)
/** Licensed under the Apache License, Version 2.0 (the ”License”);* you may not use this file except in compliance with the License.* You may obtain a copy of the License at** http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an ”AS IS” BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.** Copyright (c) [2025-2099] Martin (goudingcheng@gmail.com)*/package com.github.paohaijiao.biz.report;import com.github.paohaijiao.JOption;import com.github.paohaijiao.combol.JCircleChartData;import com.github.paohaijiao.config.JPdfConfig;import com.github.paohaijiao.demo.constant.JQuickConstant;import com.github.paohaijiao.enums.JChartType;import com.github.paohaijiao.executor.JQuickPdfFactory;import com.github.paohaijiao.factory.JChartRendererFactory;import org.junit.Test;import java.awt.Color;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;/*** 统一信用报告 —— 风格 07:环形图(深绿)** 以 {@code report/credit_report_07_circle.txt} 为模板,把环形图渲染成 SVG 后* 绑定到模板中的 {@code ${svg}} 占位符,输出到 {@code D:\test\creditreport\07_circle.pdf}。** @author Martin* @version 1.0.0*/public class JQuickCreditReport07CircleTest {public static final String path = JQuickConstant.path;@Testpublic void report07Circle() throws IOException {JCircleChartData chartData = new JCircleChartData();chartData.setWidth(500);chartData.setHeight(400);chartData.setTitleText(”营收结构环形图”);chartData.setSubtitleText(”2023年度按业务线统计”);chartData.setCenterTitle(”总营收”);chartData.setCenterUnit(”万元”);chartData.setFooterText(”数据来源:企业信用评估中心”);List sectors = new ArrayList<>();sectors.add(new JCircleChartData.SectorData(”软件产品”, 10270, new Color(46, 125, 50)));sectors.add(new JCircleChartData.SectorData(”技术服务”, 6420, new Color(67, 160, 71)));sectors.add(new JCircleChartData.SectorData(”云服务”, 5136, new Color(129, 199, 132)));sectors.add(new JCircleChartData.SectorData(”其他”, 3854, new Color(165, 214, 167)));chartData.setSectorDataList(sectors);JOption option = new JOption();option.setData(chartData);String svg = JChartRendererFactory.renderChart(JChartType.Circle, option);File dir = new File(path + ”creditreport”);if (!dir.exists()) {dir.mkdirs();}FileOutputStream fileOutputStream = new FileOutputStream(path + ”creditreport/07_circle.pdf”);JPdfConfig config = new JPdfConfig();// 开启 flex 行布局:图表与其右侧的指标说明面板在宽度允许时并排,而不是换行堆叠。config.getLayoutConfig().setFlexLayout(true);JQuickPdfFactory factory = new JQuickPdfFactory(config);factory.bind(”svg”, svg);byte[] bytes = factory.executeResource(”report/credit_report_07_circle.txt”);fileOutputStream.write(bytes);fileOutputStream.close();}}
模板文件(report/credit_report_07_circle.txt)
<pdf><body><divstyle="textAlignment:center; marginBottom:18px"><h1style="fontSize:22; color:#1B5E20; textAlignment:center; bold:true; marginBottom:6px">'企业信用评级报告'</h1><pstyle="fontSize:10; color:#546e7a; textAlignment:center; marginBottom:8px">'四川省企业信用评估中心 | 报告编号: CR-2023-08975 | 评估日期: 2023年11月15日'</p><lineSeparatorstyle="strokeColor:#2E7D32"></lineSeparator></div><divstyle="marginBottom:18px"><h2style="fontSize:14; color:#1B5E20; bold:true; textAlignment:center; marginBottom:12px">'四川省泡海椒科技有限公司'</h2><divstyle="display:flex; justifyContent:space-between"><divstyle="width:140px; padding:10px; backgroundColor:#e8f5e9; borderRadius:6px; textAlignment:center"><divstyle="fontSize:8; color:#2E7D32; textAlignment:center; marginBottom:4px">'统一信用代码'</div><divstyle="fontSize:10; bold:true; textAlignment:center">'91110108MA01XX1234'</div></div><divstyle="width:140px; padding:10px; backgroundColor:#e8f5e9; borderRadius:6px; textAlignment:center"><divstyle="fontSize:8; color:#2E7D32; textAlignment:center; marginBottom:4px">'成立日期'</div><divstyle="fontSize:10; bold:true; textAlignment:center">'2018年5月20日'</div></div><divstyle="width:140px; padding:10px; backgroundColor:#e8f5e9; borderRadius:6px; textAlignment:center"><divstyle="fontSize:8; color:#2E7D32; textAlignment:center; marginBottom:4px">'注册资本'</div><divstyle="fontSize:10; bold:true; textAlignment:center">'1000万元人民币'</div></div><divstyle="width:140px; padding:10px; backgroundColor:#e8f5e9; borderRadius:6px; textAlignment:center"><divstyle="fontSize:8; color:#2E7D32; textAlignment:center; marginBottom:4px">'法定代表人'</div><divstyle="fontSize:10; bold:true; textAlignment:center">'泡海椒'</div></div></div><pstyle="fontSize:9; color:#546e7a; textAlignment:center; marginTop:8px">'所属行业: 软件和信息技术服务业 | 企业规模: 中型(150-200人)'</p></div><divstyle="marginBottom:18px"><h2style="fontSize:13; color:#2E7D32; bold:true; marginBottom:10px">'历年财务数据(单位:万元)'</h2><tablestyle="width:600px; fontSize:10"><tr><thstyle="backgroundColor:#2E7D32; color:white; bold:true; padding:6px; textAlignment:left">'财务指标'</th><thstyle="backgroundColor:#2E7D32; color:white; bold:true; padding:6px; textAlignment:center">'2020年'</th><thstyle="backgroundColor:#2E7D32; color:white; bold:true; padding:6px; textAlignment:center">'2021年'</th><thstyle="backgroundColor:#2E7D32; color:white; bold:true; padding:6px; textAlignment:center">'2022年'</th><thstyle="backgroundColor:#2E7D32; color:white; bold:true; padding:6px; textAlignment:center">'2023年'</th><thstyle="backgroundColor:#2E7D32; color:white; bold:true; padding:6px; textAlignment:center">'增长率'</th></tr><tr><tdstyle="padding:6px; textAlignment:left; borderBottom:1px solid #c8e6c9; bold:true">'营业收入'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'8,560'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'12,340'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'18,920'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'25,680'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; color:#2E7D32; bold:true">'+44.2%'</td></tr><tr><tdstyle="padding:6px; textAlignment:left; borderBottom:1px solid #c8e6c9; bold:true; backgroundColor:#f1f8f1">'净利润'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'1,240'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'2,150'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'3,890'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'5,420'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1; color:#2E7D32; bold:true">'+63.8%'</td></tr><tr><tdstyle="padding:6px; textAlignment:left; borderBottom:1px solid #c8e6c9; bold:true">'总资产'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'15,800'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'22,450'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'31,200'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'42,800'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; color:#2E7D32; bold:true">'+39.5%'</td></tr><tr><tdstyle="padding:6px; textAlignment:left; borderBottom:1px solid #c8e6c9; bold:true; backgroundColor:#f1f8f1">'净资产'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'9,200'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'13,800'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'19,500'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1">'26,400'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; backgroundColor:#f1f8f1; color:#2E7D32; bold:true">'+42.1%'</td></tr><tr><tdstyle="padding:6px; textAlignment:left; borderBottom:1px solid #c8e6c9; bold:true">'毛利率'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'42.5%'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'45.8%'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'48.2%'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9">'51.6%'</td><tdstyle="padding:6px; textAlignment:right; borderBottom:1px solid #c8e6c9; color:#2E7D32; bold:true">'+9.1%'</td></tr></table></div><divstyle="marginBottom:18px"><h2style="fontSize:13; color:#2E7D32; bold:true; marginBottom:10px">'关键经营指标'</h2><divstyle="display:flex; flexWrap:wrap"><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'营收增长率:连续三年保持40%以上增长,2023年达到25,680万元'</div><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'利润率提升:净利率从14.5%提升至21.1%,盈利能力显著增强'</div><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'研发投入:研发费用年均增长38.9%,占营收比例达13.3%'</div><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'人才结构:技术研发人员占比42%,硕士以上学历占35%'</div><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'客户质量:服务15家上市公司,客户续约率92%,大客户满意度4.8/5.0'</div><divstyle="width:290px; margin:4px; padding:10px; backgroundColor:#f1f8f1; borderRadius:6px; borderLeft:4px solid #43A047; fontSize:11">'资产质量:资产负债率维持在38%左右,流动比率2.8,偿债能力良好'</div></div></div><divstyle="marginBottom:18px"><h2style="fontSize:13; color:#2E7D32; bold:true; marginBottom:10px">'营收结构环形图'</h2><divstyle="display:flex; justifyContent:space-between"><divstyle="width:300px; padding:12px; backgroundColor:#f1f8f1; borderRadius:6px"><h3style="fontSize:12; color:#1B5E20; bold:true; marginBottom:8px">'评级指标说明'</h3><divstyle="fontSize:10; marginBottom:6px"><spanstyle="color:#2E7D32; bold:true">'● 财务状况(90分): '</span>'营收稳定增长'</div><divstyle="fontSize:10; marginBottom:6px"><spanstyle="color:#2ecc71; bold:true">'● 经营能力(95分): '</span>'客户留存率高'</div><divstyle="fontSize:10; marginBottom:6px"><spanstyle="color:#e74c3c; bold:true">'● 偿债能力(85分): '</span>'负债率合理'</div><divstyle="fontSize:10; marginBottom:6px"><spanstyle="color:#f39c12; bold:true">'● 发展潜力(92分): '</span>'研发投入增加'</div></div><svgstyle="width:400px;height:400px">${svg}</svg></div></div><divstyle="marginBottom:18px; backgroundColor:#1B5E20; color:white; borderRadius:8px; padding:16px"><h2style="fontSize:13; color:white; bold:true; marginBottom:8px">'综合评价'</h2><pstyle="fontSize:11; color:white; textAlignment:left; marginBottom:8px">'四川省泡海椒科技有限公司作为国家级高新技术企业和专精特新"小巨人"企业,在云计算和大数据领域表现出色。''公司财务状况健康,经营能力突出,技术创新能力强,具备良好的发展潜力。信用评级为AAA级,展望稳定。'</p><pstyle="fontSize:8; color:#c8e6c9; textAlignment:right">'认证通过'</p></div><divstyle="textAlignment:center; marginTop:20px"><lineSeparatorstyle="strokeColor:#2E7D32"></lineSeparator><pstyle="fontSize:9; color:#78909c; textAlignment:center; marginTop:8px">'本报告依据公开信息和专业评估模型生成,仅供参考 | 报告生成时间: 2025年09月06日'</p><pstyle="fontSize:9; color:#78909c; textAlignment:center">'© 2023 企业信用评估中心 版权所有 | 认证编号: CE-2023-001'</p></div></body></pdf>















































































