from docx import Document from docx.shared import Pt def add_heading(doc: Document, text: str, level: int = 1): """统一宋体标题样式。""" h = doc.add_heading(text, level=level) for run in h.runs: run.font.size = Pt(12) run.font.name = "宋体" def add_paragraph(doc: Document, text: str): """ 统一 11 号宋体正文,并适度扩充说明:先写原文,再追加两段从“实施落地”和“管理视角”角度的扩展文字, 避免简单重复原文。 """ # 原文 p = doc.add_paragraph(text) for run in p.runs: run.font.size = Pt(11) run.font.name = "宋体" # 扩展段 1:实施落地层面 ext1 = ( "在实际落地过程中,本条要求应被分解为一系列可操作的实施步骤," "并在项目计划、工作分解结构以及任务分派单中得到体现," "从而保证对应的责任主体对相关工作内容有清晰的理解和预期。" ) p1 = doc.add_paragraph(ext1) for run in p1.runs: run.font.size = Pt(11) run.font.name = "宋体" # 扩展段 2:管理与评估层面 ext2 = ( "从管理与评估的角度,看似简单的文字要求实际上构成了后续验收的评价基准之一," "项目团队应在阶段性评审和最终验收环节中,对本条所涉及的工作进行对照检查," "以便及时纠偏、总结经验,为类似项目提供可复用的实践样本。" ) p2 = doc.add_paragraph(ext2) for run in p2.runs: run.font.size = Pt(11) run.font.name = "宋体" def main(): doc = Document() # 标题页 doc.add_heading("川庆多语言官网系统\n软件需求说明书", level=0) add_paragraph(doc, "版本:V1.0") add_paragraph(doc, "日期:2026-03-04") add_paragraph(doc, "编写:川庆多语言官网项目组") doc.add_page_break() # 1 引言 add_heading(doc, "1 引言", level=1) add_heading(doc, "1.1 编写目的", level=2) add_paragraph( doc, "本软件需求说明书用于规范性地描述川庆多语言官网系统的业务需求和功能需求," "为后续的系统设计、开发、测试和运维提供统一的依据。", ) add_heading(doc, "1.2 项目背景", level=2) add_paragraph( doc, "川庆多语言官网系统面向全球客户,提供中文、英文、俄文、西班牙文等多语言内容展示," "重点展示公司在钻井液产品、钻井液体系、钻井液技术、实验室与技术团队、生产制造能力等方面的综合实力," "同时提供联系方式以便客户进行业务咨询与合作洽谈。", ) add_heading(doc, "1.3 读者对象", level=2) add_paragraph( doc, "本说明书主要供以下人员阅读:\n" "• 业务负责人和产品经理\n" "• 系统架构师和开发工程师\n" "• 测试工程师\n" "• 运维工程师\n" "• 相关项目干系人", ) add_heading(doc, "1.4 定义与缩写", level=2) add_paragraph( doc, "• 官网系统:指本项目建设的多语言企业官网网站。\n" "• 前台:指面向外部访问用户的网页界面。\n" "• 后台:如需扩展,可理解为内容维护管理端(本版本主要描述前台展示功能)。\n" "• 语言版本:指 Chinese / English / Russian / Spain 四个语种下的页面集合。\n" "• 体系:指公司在钻井液领域形成的系统化解决方案和配套产品组合。", ) add_heading(doc, "1.5 参考资料", level=2) add_paragraph( doc, "• 国家及行业相关标准(如网站信息发布规范、网络安全要求等);\n" "• 公司现有中文官网及宣传资料;\n" "• 与业务部门沟通形成的功能需求和展示要求;\n" "• 本项目原型设计或页面设计稿(如有)。", ) add_heading(doc, "1.6 需求管理与变更控制", level=2) add_paragraph( doc, "本说明书作为项目需求管理的基准文档,在项目实施过程中,如需对需求进行增减或调整," "须通过以下流程进行变更控制:\n" "• 由业务部门或项目组成员提出变更申请,明确变更原因与目标;\n" "• 项目经理组织评审,评估变更对范围、进度、成本的影响;\n" "• 经项目负责人或公司指定领导审批后,方可纳入实施计划;\n" "• 需求变更应同步更新本说明书及相关设计、测试文档。", ) # 2 总体描述 add_heading(doc, "2 总体描述", level=1) add_heading(doc, "2.1 系统目标", level=2) add_paragraph( doc, "本系统的目标是:\n" "• 统一对外展示公司品牌形象和技术能力;\n" "• 为不同语言地区的用户提供一致的访问体验;\n" "• 清晰呈现产品、体系、技术、实验室/团队、生产制造等信息;\n" "• 方便用户快速获取联系方式并发起合作沟通。", ) add_heading(doc, "2.2 用户角色", level=2) add_paragraph( doc, "• 外部访客:通过浏览器访问官网,浏览各类信息,无需登录。\n" "• 内部运维/编辑人员:通过服务器部署和静态文件更新方式维护网站内容(本版本不包含在线 CMS 功能)。", ) add_heading(doc, "2.3 系统范围", level=2) add_paragraph( doc, "系统范围主要包含:\n" "• 多语言门户首页(Chinese / English / Russian / Spain);\n" "• 关于我们(公司介绍与资质荣誉等);\n" "• 钻井液产品(PRODUCT/PRODUCTOS/ПРОДУКТЫ)展示;\n" "• 钻井液体系(SYSTEM/SISTEMA/СИСТЕМЫ)展示;\n" "• 钻井液技术(TECHNOLOGY/TECNOLOGÍA/ТЕХНОЛОГИЯ)展示;\n" "• 实验室/团队(LABORATORY/TEAM 等)展示;\n" "• 生产制造(MANUFACTURE/FABRICACIÓN/ПРОИЗВОДСТВО)展示;\n" "• 联系我们(CONTACT US/CONÉCTESE CON NOSOTROS 等);\n" "• 统一的多语言页脚导航与页面间跳转逻辑。", ) add_heading(doc, "2.4 业务流程概述", level=2) add_paragraph( doc, "本系统的典型业务访问流程如下:\n" "1)外部访客通过浏览器输入官网地址或通过搜索引擎进入首页;\n" "2)访客根据需求选择语言版本,或直接使用默认语言浏览;\n" "3)通过顶部导航或首页入口访问“产品”“体系”“技术”“实验室/团队”“生产制造”等专题页面," "了解公司产品与技术能力;\n" "4)如需进一步沟通,访客可通过“联系我们”页面或页脚联系方式,与公司取得联系;\n" "5)内部运维人员根据业务需要定期更新前端静态页面内容,并通过统一的链接规则保证各语言版本一致性。", ) add_heading(doc, "2.5 约束与假设", level=2) add_paragraph( doc, "• 本期系统主要以静态页面形式呈现,不包含在线登录认证、动态业务办理等复杂功能;\n" "• 数据内容(如产品、体系、技术文案)由业务部门提供并确认,技术团队按提供的内容进行发布;\n" "• 服务器和网络环境由公司统一规划与运维,保证对外访问的稳定性和安全性;\n" "• 如后续引入后台管理系统或数据接口,本说明书可作为基础,扩展功能需求章节。", ) # 3 功能需求 add_heading(doc, "3 功能需求", level=1) add_paragraph( doc, "本章节从多语言官网前台的角度,对各业务模块的功能需求进行详细描述。" "除特别说明外,各语言版本在功能上应保持一致,仅在展示语言和部分本地化信息(如地址语言、国家名称表达)方面有所差异。", ) add_heading(doc, "3.1 多语言支持", level=2) add_paragraph( doc, "• 系统提供至少中文、英文、俄文、西班牙文四种语言版本。\n" "• 每种语言有独立的页面路径结构,例如 /Chinese/、/English/、/Russian/、/Spain/。\n" "• 页面头部提供语言切换入口(EN / RU / ES / CN)。\n" "• 切换语言时,尽可能跳转到对应语言的同一业务页面(如产品详情、技术详情等)。\n" "• 在 URL 设计上,语言前缀与业务路径组合,满足运维与 SEO 的基本需求,例如:" " /English/product/product.html、/Russian/technology/technology.html 等。", ) add_heading(doc, "3.2 导航与页脚", level=2) add_paragraph( doc, "• 顶部导航包含:首页、关于我们、产品、体系、技术、实验室/团队、生产制造、联系我们等入口," "各语言版本对应不同文案但保持结构一致。\n" "• 页脚区域在所有带页脚的页面上保持统一结构,按:产品/体系/技术/实验室-团队/生产制造/联系我们 分类," "每个分类下各链接均指向对应语言的目标页面(如产品类型页、体系详情页、技术详情页等)。\n" "• 页脚所有可点击项目使用 标签,并保证链接可在浏览器中正常跳转。\n" "• 页脚链接与顶部导航形成互补关系,便于用户在页面底部快速跳转至关键信息区域。", ) add_heading(doc, "3.3 产品模块", level=2) add_paragraph( doc, "• 按产品类别展示钻井液产品列表,例如 DRILDETER 系列、FOAMDRIL、GERMCI 等。\n" "• 点击产品条目,可跳转到产品类型详情页面(通过 URL 参数 data、title 等进行区分)。\n" "• 产品详情页面应包含基本参数、应用场景、优势说明等关键信息,语言表达专业、准确。\n" "• 页脚中“产品/PRODUCT/PRODUCTOS/ПРОДУКТЫ”部分的每个链接都能直接跳转到对应的产品类型详情页。", ) add_heading(doc, "3.4 体系模块", level=2) add_paragraph( doc, "• 展示不同钻井液体系,如 AMPOLDRIL、SOLITOLERDRIL、INHIBDRIL、AKUAFAST、AKUADRIL、AKUASEAL 等。\n" "• 体系列表进入体系详情页,详情页通过 URL 参数 data 识别具体体系。\n" "• 体系详情页需清晰说明适用工况、技术特点、关键指标等内容,以支撑领导和客户对技术先进性的判断。\n" "• 页脚“体系/SYSTEM/SISTEMA/СИСТЕМЫ”中各链接指向对应体系详情页。", ) add_heading(doc, "3.5 技术模块", level=2) add_paragraph( doc, "• 展示代表性钻井液技术,如 LONGLARTEC、HIPRESATEC、BORENHANTEC、HIFL-PLUGTEC 等。\n" "• 技术列表进入技术详情页,详情页通过 URL 参数 data 识别具体技术。\n" "• 技术详情页建议包含技术原理简介、应用案例、预期效果等内容,突出公司技术优势。\n" "• 页脚“技术/TECHNOLOGY/TECNOLOGÍA/ТЕХНОЛОГИЯ”中的链接指向对应技术详情页。", ) add_heading(doc, "3.6 实验室与团队模块", level=2) add_paragraph( doc, "• 展示研发中心、实验室、服务团队、液体泥浆厂等内容,包含列表页与详情页。\n" "• 多语言版本下的实验室/团队页面结构保持一致,页脚中的链接可在各语言间正确跳转。\n" "• 页面内容应突出实验条件、测试能力、服务团队经验和服务范围等关键信息。", ) add_heading(doc, "3.7 生产制造模块", level=2) add_paragraph( doc, "• 生产制造页面(manu.html)包含选项卡(Tab),典型分区包括:生产基地、车间/Workshop、质量检验实验室、仓库/Almacén 等。\n" "• 支持通过 URL 参数控制选项卡显示,例如:\n" " - manu.html?tab=1:默认选中“生产基地/Production base/Base de producción”等;\n" " - manu.html?tab=2:选中“车间/Workshop/Taller”;\n" " - manu.html?tab=3:选中“质量检验实验室/Quality Inspection Laboratory”等;\n" " - manu.html?tab=4:选中“仓库/Warehouse/Almacén”等。\n" "• 未传入 tab 参数时,默认选中第一个选项卡。\n" "• 页脚中“生产制造/Manufacture/Fabricación/ПРОИЗВОДСТВО”的各链接需带上合适的 tab 参数," "以便从任意页面直接跳转到对应的选项卡内容。\n" "• 生产制造各子页面应通过图片与文字结合的方式,直观呈现生产车间、设备能力和质量控制流程。", ) add_heading(doc, "3.8 联系我们模块", level=2) add_paragraph( doc, "• 联系我们页面展示公司总部及部分海外机构的联系方式,包括地址、电话、传真、邮箱等。\n" "• 页脚“联系我们/CONTACT US/CONÉCTESE CON NOSOTROS/СВЯЗАТЬСЯ С НАМИ”区域以文本方式展示联系方式," "保证在所有语言版本中信息一致。\n" "• 如后续引入在线留言或表单功能,应在新增版本的需求说明书中补充字段说明和数据处理要求。", ) # 4 非功能需求 add_heading(doc, "4 非功能需求", level=1) add_heading(doc, "4.1 性能需求", level=2) add_paragraph( doc, "• 官网为静态页面部署,单页面加载时间在正常网络环境下应尽量控制在 3 秒以内。\n" "• 支持至少数百个并发访客浏览而无明显性能下降(依赖于前端静态资源服务能力)。\n" "• 图片、CSS、JS 等静态资源应进行合理压缩与缓存配置,以提升访问性能。", ) add_heading(doc, "4.2 可用性", level=2) add_paragraph( doc, "• 官网首页及主要业务页面(关于我们、产品、体系、技术、实验室/团队、生产制造、联系我们)在任何时间均应可访问," "年度可用性目标不低于 99%。\n" "• 对关键页面建议配置健康检查与监控告警,一旦出现访问异常及时通知运维人员处理。", ) add_heading(doc, "4.3 可维护性", level=2) add_paragraph( doc, "• 页面结构和样式保持统一,便于后续批量修改,如统一替换页脚导航、修改链接等。\n" "• 对共用组件(如页脚、头部导航、选项卡逻辑等)进行抽象或通过 include/js 模块统一管理。\n" "• 建议在代码仓库中保持清晰的目录结构和命名规范,便于后续人员快速理解和接手维护。", ) add_heading(doc, "4.4 安全性", level=2) add_paragraph( doc, "• 官网仅提供静态内容展示,不涉及用户登录和敏感数据输入,安全风险较低。\n" "• 部署时应通过服务器配置限制目录遍历、禁用不必要的脚本执行等,防止常见 Web 攻击。\n" "• 建议启用 HTTPS 访问,确保传输链路加密,提升整体安全形象。", ) add_heading(doc, "4.5 易用性与可访问性", level=2) add_paragraph( doc, "• 页面设计风格需简洁大方,符合国企官网整体形象要求;\n" "• 重要文字信息应保证足够的对比度和字号,适应不同用户的阅读需求;\n" "• 导航结构清晰,用户三次点击之内可以到达绝大部分核心内容页面。", ) # 5 部署与运行环境 add_heading(doc, "5 部署与运行环境", level=1) add_paragraph( doc, "• 前端:HTML5 + CSS3 + JavaScript,支持主流现代浏览器(Chrome、Edge、Firefox、Safari 等)。\n" "• 部署方式:静态资源部署在 Web 服务器或反向代理(如 Nginx)后端,也可部署于应用服务器的静态目录。\n" "• 语言目录:确保 /Chinese、/English、/Russian、/Spain 及其子目录结构在部署环境中保持完整。\n" "• 运行环境:操作系统、Web 服务器软件版本等需与公司现有信息化基础设施兼容。", ) # 6 验收标准与测试要求 add_heading(doc, "6 验收标准与测试要求", level=1) add_paragraph( doc, "为确保本系统满足国企领导和业务部门的预期,本项目需在上线前完成以下方面的测试与验收:\n" "• 功能测试:逐项核对本说明书中列出的功能点,确认在四种语言版本下均能正常使用;\n" "• 链接测试:对导航和页脚的所有链接进行点击检查,确保无死链、错链;\n" "• 兼容性测试:在主流浏览器(Chrome、Edge、Firefox、Safari 等)上验证展示效果;\n" "• 性能简单测试:在典型网络环境下抽样测试页面加载时间,确保满足性能目标;\n" "• 外观与文案评审:由业务部门和公司领导对页面布局、配色、文案准确性进行审阅确认。", ) # 7 后续扩展 add_heading(doc, "7 后续扩展需求(预留)", level=1) add_paragraph( doc, "本版本仅描述当前静态多语言官网的核心展示需求。后续如需增加在线内容管理后台(CMS)、" "访问统计分析、在线表单收集(如在线留言、业务咨询表单)、搜索功能等,可在此章节基础上补充详细功能需求。\n" "同时,可结合公司数字化转型规划,将本官网升级为统一对外服务入口,与其他信息系统形成协同。", ) output_path = "docs/ccdc-multilingual-website-srs.docx" import os os.makedirs(os.path.dirname(output_path), exist_ok=True) doc.save(output_path) print(f"SRS generated at: {output_path}") if __name__ == "__main__": main()