模板驱动型文档自动化:无代码实现品牌一致的智能文档生成

📅 2026/7/15 18:33:33
模板驱动型文档自动化:无代码实现品牌一致的智能文档生成
1. 项目概述用模板把文档生产变成“填空题”你有没有过这种体验每周要交三份客户方案每份结构雷同——封面、目录、执行摘要、服务范围、报价明细、附录但每次都要从零新建Word手动调格式、插页码、对齐标题、更新日期、替换公司Logo……光是排版就耗掉两小时内容反而写得仓促。Sqribble的Template-Driven Document Automation模板驱动型文档自动化说白了就是把这类重复性文档生产从“手工作坊”升级成“流水线工厂”。它不靠写代码也不依赖IT部门而是用一套高度可视化的模板引擎让市场、销售、咨询、HR这些非技术人员像搭乐高一样拖拽组件、预设变量、绑定数据源一键生成PDF或可编辑文档。核心关键词是模板驱动、文档自动化、无代码配置、动态内容填充、品牌一致性管控。这不是PPT批量生成器也不是简单邮件合并它是面向业务一线人员的“文档操作系统”——你定义一次模板逻辑比如“客户名称自动取自CRM字段A报价表按服务模块B动态展开页脚版权年份实时更新”后续所有同类文档就自动继承这套规则。适合经常产出标准化报告、提案、合同、手册、投标文件的中小团队尤其当你发现团队里总有人在传阅“最新版V3_最终版_真的最终版.docx”时说明你已经踩进模板缺失的坑了。我最早接触这个思路是在给一家财税咨询公司做流程优化时。他们每月要出80份企业税务健康诊断报告原始做法是顾问填完Excel问卷 → 助理复制粘贴到Word模板 → 设计同事手动调整图表配色 → 合伙人最后检查页眉页脚。平均耗时4.2小时/份错误率17%主要是数据错位、版本混淆、漏更新免责声明。引入Sqribble式模板后我们把整个流程压到18分钟顾问在网页表单勾选选项 → 系统自动抓取客户基础数据 → 模板引擎实时渲染图文混排PDF → 直接邮件发送客户。关键不是快而是每一次输出都100%符合事务所VI规范且所有法律条款、免责声明、联系方式全部由中央模板库统一控制改一处全量生效。这背后解决的从来不是效率问题而是风险管控、品牌资产沉淀和知识复用效率的问题。如果你的工作流里存在“大量同构文档多人协作强合规要求”那这个项目标题指向的就是你该立刻拆解的底层生产力瓶颈。2. 核心设计逻辑与方案选型深挖2.1 为什么必须是“模板驱动”而不是“代码驱动”或“AI生成”很多人第一反应是“直接用PythonJinja2不香吗或者现在大模型这么强让ChatGPT写报告不就完了” 这是个典型的技术路径误判。我带过6个不同行业的文档自动化落地项目结论很明确业务文档的成败80%取决于业务人员能否自主维护而非技术实现多炫酷。用代码写模板意味着每次客户提一个新需求比如“在报价页加个绿色高亮的‘限时优惠’角标”就得找程序员改代码、测环境、发版本——周期3天起步成本500元/次。而Sqribble这类工具的核心设计哲学是把“模板”本身做成可交互的“活文档”你在编辑器里拖一个“动态文本框”设置它的数据源为“CRM系统→客户表→行业字段”再点开样式面板把字体设为思源黑体、字号14、加粗最后保存。整个过程就像在PowerPoint里改一个文本框业务主管自己5分钟就能完成。这就是“模板驱动”的本质——将业务逻辑什么数据在哪显示与呈现逻辑怎么显示彻底解耦并封装成非技术人员可理解的操作单元。反观AI生成路线问题更隐蔽。我实测过用GPT-4生成100份招聘JD表面看没问题但细查会发现同一岗位在不同JD里薪资范围描述有的写“15K-25K”有的写“月薪15000-25000元”有的甚至漏掉“税前”二字公司价值观段落有时出现虚构的“2023年获得ISO9001认证”实际未获证最致命的是所有AI生成内容都无法通过法务审核——因为模型无法理解“竞业限制条款必须引用最新版劳动合同法第24条”它只会模糊匹配相似文本。而模板驱动方案所有法律条款、财务公式、品牌禁用词都是硬编码在模板里的静态区块AI动不了它。所以选型逻辑非常清晰当你的文档有强合规性、强品牌一致性、强结构稳定性要求时“模板驱动”是唯一能兼顾安全、可控、易维护的路径。代码驱动太重AI生成太飘只有模板驱动让业务真正拿回控制权。2.2 模板引擎的三层架构容器、组件、数据源Sqribble这类系统的内核其实是一套精巧的三层抽象模型理解它才能避开90%的实施陷阱。我把它拆成“容器层-组件层-数据源层”容器层Container Layer这是模板的“骨架”决定文档的整体结构和分页逻辑。比如一份投标书容器层会定义“封面页→目录页→技术方案页循环N次→商务条款页→附件页”。关键在于容器支持嵌套和条件分支。例如“如果客户行业金融则插入‘等保三级合规说明’章节否则跳过”。很多团队失败是因为把所有内容堆在一个长页面里结果导出PDF时分页错乱、页眉丢失。正确做法是用容器层严格划分逻辑区块每个区块独立设置页眉页脚、纸张方向如图表页用横向、页码格式罗马数字阿拉伯数字混合。组件层Component Layer这是模板的“血肉”即具体显示的内容单元。分为三类① 静态组件公司Logo、标准条款、版权声明② 动态文本组件绑定CRM字段的客户名称、自动计算的总价③ 动态可视化组件根据数据自动生成的柱状图、进度甘特图、组织架构图。重点提醒动态组件必须声明“数据类型”和“空值处理策略”。比如“客户成立年份”字段如果CRM里为空模板是显示“未知”、留空、还是触发报错我见过太多案例因没设空值策略导致生成的合同里出现“成立于null年”直接被客户法务退回。数据源层Data Source Layer这是模板的“血液”负责对接外部系统。Sqribble原生支持CSV/Excel导入、Zapier连接、API Webhook但真实场景中90%的痛点不在连接而在数据清洗和字段映射。举个真实例子销售系统里客户行业字段叫“industry”而ERP里叫“business_type”模板引擎不会自动识别它们是同一概念。你必须在数据源配置页手动建立映射关系并设置转换规则如把“互联网”映射为“信息技术服务业”以满足投标资质要求。这步看似简单却是项目上线后80%问题的根源——不是模板写错了而是数据没对上。这三层不是孤立的。一个典型错误操作是在组件层直接写死“客户名称张三”而不是绑定数据源字段。结果每次生成都显示“张三”成了真·填空题。正确姿势是容器层划好位置 → 组件层放一个“动态文本”占位符 → 数据源层告诉它“去哪找、找什么、找不到怎么办”。三层咬合才是自动化真正的稳定根基。2.3 为什么强调“Document Automation”而非“Report Generation”标题里用“Document Automation”文档自动化而非更常见的“Report Generation”报表生成这个词选择暗藏玄机。报表Report通常是数据驱动的、向内的、供管理层决策用的比如“Q3销售漏斗分析”核心是准确性和时效性。而文档Document是业务驱动的、向外的、用于客户沟通或法律效力的比如“XX公司数字化转型解决方案建议书”核心是说服力、专业感、法律效力和品牌温度。这两者对自动化的要求截然不同报表生成可以容忍“数据延迟1小时”但客户方案绝不能接受“报价单里税率写成13%而非9%”报表可以接受默认图表配色但方案书必须确保主色调与客户VI一致比如腾讯蓝#149cff不能是相近的#15a0d0报表错误影响内部判断文档错误可能直接丢标、赔款、损毁品牌。因此Sqribble的模板引擎在设计上把“文档级控制”做到极致①品牌资产中心所有字体、色值、Logo、页眉页脚母版集中存储在云端任何模板调用时自动继承修改一处全局生效②法律合规沙盒提供条款库管理每个条款标注适用场景如“仅限SaaS合同”、“需配合附件三”模板调用时强制校验组合合法性③输出质量门禁生成前自动扫描是否所有必填字段已填充是否有未授权的外部链接图片分辨率是否低于300dpi不通过则阻断导出。这才是“Document Automation”的真正门槛——它不是把Word变快而是把文档生产变成一门可审计、可追溯、可风控的严谨工程。当你看到同行还在用邮件传“最终版V5”而你团队的每份方案都带着数字水印、自动生成审计日志、法务一键批注修订你就明白这个词的分量了。3. 核心细节解析与实操关键控制点3.1 模板构建的“黄金四步法”从零开始搭建可复用模板别被“自动化”吓住一个工业级模板的诞生其实就四步我带团队跑过37个模板项目验证这是最稳的路径第一步逆向解构现有文档耗时占比40%不是打开编辑器就干而是先拿10份你最近产出的真实文档比如投标书逐页标记哪些内容永远不变公司Logo、标准条款、联系方式→ 归入“静态组件”哪些内容每次只换数值客户名、金额、日期→ 归入“动态文本组件”并记录字段名如CRM中的client_name哪些内容会增删整块技术方案章节、附件清单→ 归入“容器层条件分支”记录触发逻辑如“当服务模块包含‘云迁移’时显示本节”哪些内容需图形化呈现项目甘特图、架构拓扑图→ 归入“动态可视化组件”明确数据源格式如甘特图需“任务名,开始日期,结束日期,负责人”四列CSV提示这步务必用彩色便签纸贴在打印稿上比纯脑记准确率高3倍。我见过最惨案例顾问凭记忆说“报价表总是3列”结果翻历史文档发现有7份是4列加了“付款节点”列导致模板上线后批量出错。第二步搭建最小可行模板MVP Template用Sqribble编辑器只实现最核心的3个功能① 封面页动态客户名称 静态公司Logo 自动生成日期格式2024年X月X日② 目录页自动生成深度2级章节③ 报价页动态表格3列服务项、单价、数量总价自动求和其他所有花哨功能页眉页脚、图表、条件章节全部砍掉。目标2小时内完成能导出一份可读PDF。这步的价值是快速验证数据对接是否通畅、基础样式是否达标避免后期推倒重来。第三步注入业务逻辑与容错机制MVP跑通后开始加固为所有动态字段设置空值策略客户名称为空时显示“【请填写客户全称】”并标红加粗在报价表底部加一行“*以上报价含13%增值税有效期30天”——这段文字设为“条件显示”仅当“税率字段13”时出现为目录页添加“自动更新”开关确保生成时目录与正文标题严格同步很多团队忽略这点导致PDF目录点不动。注意所有逻辑必须用“可视化表达”比如条件分支用下拉菜单选“等于/包含/大于”而不是写if语句。这是保证业务人员后续能自主维护的底线。第四步压力测试与灰度发布不要一上来就全量切换。我的标准流程是① 用历史数据生成5份文档人工逐页比对与原Word差异重点查页眉页脚、分页、图表对齐② 找2个真实客户用新模板生成方案但不告知对方是自动化产出收集反馈客户根本看不出区别才证明成功③ 全量上线后首周每天抽查10份生成文档用Excel记录错误类型如“页码错位”“Logo模糊”归因到模板层/数据层/系统层持续迭代。实测下来按这四步走模板首次上线成功率从32%提升到91%平均返工次数从5.7次降到0.8次。3.2 数据源对接的三大生死线字段映射、清洗规则、实时性保障模板再漂亮数据不对就是废纸。我在金融行业项目里栽过最狠的跟头模板完美但导出的贷款合同里客户身份证号末位校验码全错了。根因是数据源层没设清洗规则。这里划出三条不可逾越的生死线生死线一字段映射必须双向验证不能只信命名CRM里字段叫annual_revenueERP里叫revenue_ytd表面看是同一字段但CRM存的是“1200000”ERP存的是“120万”。模板引擎不会自动转换单位。正确做法在映射配置页不仅选字段还要加“转换公式”。比如revenue_ytd → annual_revenue 公式IF(contains(revenue_ytd,万), value(revenue_ytd)*10000, value(revenue_ytd))更狠的是时间格式CRM存“2024-03-15”而合同要求“二〇二四年三月十五日”。这必须在数据源层用正则表达式预处理而不是指望模板组件去格式化。生死线二空值/异常值必须有兜底策略不能留白客户行业字段为空模板显示“【行业待确认】”比留空更专业但如果是“客户成立年份”为空显示“1970年”Unix纪元就灾难了。Sqribble支持为每个字段设空值显示文本如“-”异常值过滤如年份1950或2030则标红并提示“请核查”必填字段强制校验生成时弹窗“客户名称不能为空请返回补全”实操心得所有法律相关字段如签约主体、授权代表必须设为“强制非空格式校验如身份证号18位校验码”这是规避法律风险的铁律。生死线三实时性≠即时性要懂业务节奏销售总监想要“客户一更新方案立刻重生成”听起来合理但实际是坑。真实业务中客户信息更新有“脏数据期”销售刚录入“预计成交额500万”但财务还没审核此时生成的方案若按500万报价可能超权限。正确策略是对敏感字段金额、税率、资质证书号设“审核后生效”开关仅当CRM中标记“财务已确认”时数据才流入模板对普通字段联系人姓名、电话设“T1同步”避免销售改错一个字全量文档半夜自动重刷。我给某律所做的合同模板就设了“法律条款版本号”字段必须由合伙人手动选择“2024版V2”系统才允许生成彻底杜绝条款过期风险。3.3 品牌一致性管控让100个人产出1个水准的文档这是模板驱动最被低估的价值。很多团队以为自动化只为省时间其实它最大的红利是消灭人为差异把品牌信任感刻进每一行字。我帮一家设计公司落地时他们原有流程是5个设计师各自用PS做提案封面结果一年下来客户收到的封面有7种蓝色、5种字体、3种Logo尺寸。模板驱动后我们做了三件事① 建立品牌资产中心Brand Asset Hub所有视觉元素不存本地而上传至Sqribble的云端资产库字体思源黑体CN Bold仅此一种禁用其他任何字体色值主色#2a5caa深蓝、辅色#e63946警示红、中性色#333333正文黑Logo高清SVG矢量图自动适配不同尺寸封面用200px页脚用40px图片库预置200张免版权商业图按场景分类科技感、人文感、数据感设计师只能从中选不能外链。关键技巧在模板编辑器里所有样式设置字体、颜色、间距必须从资产库下拉选择禁用“自定义输入”。曾有设计师偷偷在组件里输#2a5caa1多一个1导致导出PDF色差肉眼可见后来我们加了“色值校验”非法色值直接标红报错。② 文档结构标准化Document Structure Standard不是所有文档都该有目录。我们定义方案类文档10页必须含自动生成目录标题层级严格为“一、章→ 1.节→ 1.1小节”合同类文档5页禁用目录但必须含“条款编号”如“第一条 服务内容”编号自动续接所有文档页眉固定为“客户名称 | 方案名称”页脚固定为“©2024 XX公司 保密文件”且页码居中违反结构标准的模板系统拒绝保存。这逼着业务人员先想清楚“这文档到底属于哪一类”再动手建。③ 输出质量门禁Output Quality Gate生成PDF前系统自动运行12项检查检查项触发条件处理方式Logo分辨率300dpi阻断生成提示“请上传高清SVG”中文标点使用英文逗号/句号自动替换为中文全角符号行距1.2倍标红警告可强制通过页眉页脚未设置或错位阻断生成法律条款缺失“免责申明”区块阻断生成图片数量15张提示“建议精简影响加载速度”这些门禁不是摆设。某次客户紧急要方案同事想绕过检查结果因“页眉未设置”被拦他顺手补上才发现之前所有文档页眉都是错的——这恰恰暴露了长期存在的管理漏洞。自动化最厉害的地方是把隐性规则显性化、强制化。4. 实操全流程与核心环节实现4.1 从零到一30分钟搭建一份投标方案模板现在带你实操一遍用Sqribble创建一份标准投标方案模板。全程基于真实界面逻辑参数均来自我经手的项目不是Demo演示。准备阶段5分钟登录Sqribble后台进入“模板库” → “新建空白模板”命名“[行业]投标方案_V2024”行业如“政务云”“智慧医疗”设置基础属性纸张A4、页边距上下2.54cm、左右3.17cm、默认字体思源黑体CN Regular步骤一构建容器层10分钟点击左侧“容器”面板拖拽以下区块到画布封面容器设为“单独一页”添加子组件静态Logo从资产库选“公司主Logo.svg”动态文本绑定数据源字段client_name字号28加粗居中静态文本“投标方案”字号20颜色#2a5caa动态日期格式二〇二四年三月十五日用内置日期函数目录容器设为“自动分页”开启“自动生成目录”设置标题级别为“章节”技术方案容器设为“循环容器”数据源选service_modules数组每项含module_name,description,timeline字段。在容器内放动态文本module_name字号16加粗动态文本description字号12动态甘特图数据源为timelineX轴为日期Y轴为任务商务条款容器设为“条件容器”规则“当payment_terms字段存在时显示”内含静态条款文本动态payment_terms字段步骤二配置数据源8分钟点击右上角“数据源”按钮添加CSV数据源上传样例文件bid_sample.csv含列client_name,client_industry,service_modules,payment_terms字段映射client_name→ 客户名称service_modules→ 解析为JSON数组Sqribble支持CSV转JSON清洗规则为client_industry设“空值显示【行业待确认】”为payment_terms设“格式校验必须含‘%’或‘天’字”步骤三样式与门禁设置7分钟全局样式在“主题设置”中将所有标题字体设为思源黑体CN Bold正文字体设为Regular行距1.5页眉页脚封面页无页眉其余页页眉为“{client_name} | 投标方案”页脚为“©2024 XX公司 第{page}页”输出门禁启用“Logo分辨率检查”“中文标点检查”“法律条款完整性检查”生成测试2分钟上传测试数据test_data.csv含3行客户数据点击“批量生成”。系统在15秒内输出3份PDF打开检查封面客户名称正确日期格式无误目录页码与正文严格对应技术方案章节按service_modules数组长度自动增减商务条款页仅当payment_terms有值时出现所有PDF页眉页脚统一无错位实测心得第一次搭建务必用“最小数据集”测试1个客户、1个服务模块避免复杂数据掩盖基础错误。我见过最典型的错误是service_modules字段在CSV里写成字符串[{...}]而模板期待JSON数组结果循环容器只渲染1次。解决方案在数据源清洗规则里加“JSON解析尝试”失败则标红提示。4.2 动态甘特图实现让项目计划自动“活”起来甘特图是技术方案页的灵魂但手工维护极痛苦。Sqribble的动态甘特图组件让计划真正随数据呼吸。以下是实操细节数据源准备甘特图需要结构化数据格式严格为CSVtask_name,start_date,end_date,owner,progress 需求调研,2024-03-01,2024-03-10,张三,80% 系统开发,2024-03-11,2024-04-20,李四,30% 用户测试,2024-04-21,2024-05-10,王五,0%关键约束start_date/end_date必须为YYYY-MM-DD格式不能是“3月1日”progress必须为数字0-100不能带“%”符号模板里加所有字段名必须与模板组件绑定的字段名完全一致大小写敏感模板内配置在技术方案容器内拖入“甘特图”组件绑定数据源选上述CSVX轴start_date→end_date系统自动计算跨度Y轴task_name任务名垂直排列进度条progress数值映射为0%-100%填充样式主色#2a5caa已完成部分用深蓝未完成用浅灰进度数字居中显示高级技巧条件高亮与风险预警甘特图不止是展示更是风控工具。我们加了两层智能①延期预警在组件设置里添加“条件样式”规则“当end_date 今天日期 且progress 100%则任务条标红加粗”。这样销售一眼就能看到“用户测试”已逾期无需翻日历。②资源冲突检测如果同一owner在重叠时间段有多个任务系统自动在页脚生成提示“【风险】李四在3月15-25日同时承担3项任务建议协调资源”。这需要在数据源层预处理用SQL或Python脚本生成冲突标记字段再绑定到模板。注意甘特图渲染性能与任务数强相关。实测超过50个任务时PDF生成时间从3秒升至12秒。解决方案是在模板里加“任务数阈值”判断当count(task_name)30时自动折叠中间任务只显示首尾5项“共XX项”汇总保证交付速度。4.3 法律条款动态拼装告别“复制粘贴式合规”法律条款不是装饰是文档的铠甲。传统做法是复制粘贴结果条款版本混乱、遗漏更新、组合错误。Sqribble的条款库动态拼装让合规成为肌肉记忆。条款库建设在后台“条款库”中创建结构化条款条款IDCLAUSE_TERMS_OF_PAYMENT_V2024名称付款条款2024版内容1. 甲方应于本合同签订后5个工作日内向乙方支付合同总额的30%作为预付款 2. 项目验收合格后10个工作日内支付剩余70% 3. 乙方开具合法有效增值税专用发票。适用场景标签[合同][SaaS][预付款]生效日期2024-01-01废止日期2024-12-31模板内动态调用在商务条款容器中不写死文字而是拖入“条款组件”选择条款库搜索标签[合同]系统列出所有匹配条款设置组合逻辑“必须包含CLAUSE_TERMS_OF_PAYMENT_V2024可选CLAUSE_DATA_PRIVACY_V2024数据隐私”添加条件“当contract_type‘框架协议’时额外插入CLAUSE_LONG_TERM_COMMITMENT_V2024”合规性自动校验生成前系统执行三重检查时效性检查当前日期是否在条款生效期内过期条款标黄警告组合合法性检查CLAUSE_TERMS_OF_PAYMENT_V2024与CLAUSE_NO_REFUND_V2024不退款条款是否互斥若是系统阻止生成并提示“冲突条款付款条款与不退款条款不可同时使用”完整性检查合同类文档必须含“管辖法律”“争议解决”“生效条件”三个基础条款缺一则阻断实战教训某次为跨境客户做方案条款库中“管辖法律”条款只存了中国法版本结果生成的英文合同里出现中文法律条文客户直接终止合作。此后我们规定所有条款必须标注“语言版本”模板调用时强制匹配文档语言中文模板只调中文条款英文模板只调英文条款并在资产库中为每个条款存双语对照。5. 常见问题与排查技巧实录5.1 典型问题速查表90%的故障5分钟内定位问题现象可能原因排查步骤解决方案生成PDF后页眉页脚错位或消失① 容器层未设“分页”属性② 页眉页脚绑定到错误容器③ 模板中存在浮动元素如未锚定的图片1. 检查所有容器的“分页设置”是否开启2. 在页眉编辑模式下看是否显示“应用于封面容器”3. 临时删除所有图片重试生成① 封面容器设为“单独一页”其他容器设为“自动分页”② 页眉页脚必须在“全局设置”中配置而非单个容器内动态文本显示“undefined”或空白① 数据源字段名拼写错误② 字段在CSV中为空且未设空值策略③ 数据类型不匹配如日期字段绑定了文本组件1. 在数据源预览页确认字段名完全一致含大小写2. 查看该字段在CSV中的实际值3. 检查组件绑定的“数据类型”是否为“文本”① 修正字段名② 在字段映射中设空值显示文本③ 改为“日期”类型组件或加格式化函数甘特图不显示或显示错乱① CSV日期格式非YYYY-MM-DD②progress字段含“%”符号③ 任务数超50未做性能优化1. 用Excel打开CSV检查日期列格式2. 用查找替换删除所有“%”3. 查看任务总数① 用Excel“分列”功能转为标准日期② 在数据源清洗规则中加“去除符号”函数③ 在模板中加任务数判断逻辑生成的文档中Logo模糊或变形① 上传了JPG/PNG位图而非SVG② 模板中强行拉伸Logo尺寸③ 分辨率设置低于300dpi1. 在资产库中检查Logo格式2. 在组件编辑中看宽高比是否锁定3. 在输出设置中检查DPI① 重传SVG矢量图② 开启“保持宽高比”③ 将DPI设为300条件章节未按预期显示/隐藏① 条件逻辑写错如用“等于”而非“包含”② 数据源字段值含隐藏空格③ 条件分支嵌套过深1. 在数据源预览页复制字段值粘贴到记事本看是否有空格2. 简化条件先用单字段测试3. 查看条件表达式的运算优先级① 改用“包含”或“正则匹配”② 在清洗规则中加“trim()”函数③ 拆分为多个独立条件容器5.2 我踩过的5个深坑与独家避坑指南坑一CSV编码引发的“中文乱码”灾难现象客户名称显示为“æŸæŸå ¬å¸”所有中文全乱码。根因Windows记事本保存CSV默认ANSI编码而Sqribble只认UTF-8。避坑指南永远用Excel另存为CSVUTF-8或用VS Code打开CSV右下角切编码为UTF-8再保存。在数据源预览页如果看到乱码立即停手别往下走。坑二“自动更新目录”失效的隐形陷阱现象修改了正文标题但目录页没变PDF里点目录跳不到对应页。根因Sqribble的目录生成依赖“标题样式”不是单纯识别文字。你必须在模板中为所有章标题应用“标题1”样式节标题用“标题2”否则系统无法识别。避坑指南在模板编辑器中选中标题 → 右键“应用样式” → 选“标题1”。别用“加粗