FEATURED · 精选文章

软件著作权鉴别材料整理指南:源代码排版与说明书规范

发布时间 / 2026/9/17 15:54:27
来源 / 创域科博编辑部
栏目 / 资讯中心
软件著作权鉴别材料整理指南:源代码排版与说明书规范 简介申请软件著作权时源代码鉴别材料的排版与格式是很多开发者容易卡住的环节。这个模板专门面向安卓应用、小程序、网页管理系统等各类软著申请场景整合了软件著作权鉴别材料的标准模板与常见问题帮助个人开发者或团队理清自行申请的流程和材料要求。资源包内共一个docx格式的Word文档体积约一百零三KB内容紧凑包含代码文档的目录结构、页眉页码规范、示例代码片段并针对前端项目给出页面源码的整理示例可直接参考Vue管理系统的实际代码结构调整。目前已有二百三十四人学习适合首次申请软著、希望缩短准备周期或此前因材料格式被驳回的读者下载。通过这份模板能够减少格式返工更专注于项目源代码的真实性与完整性。1. 软著鉴别材料为什么总栽在源代码和文档上自己走过一遍软著申请流程的人大概率见过补正通知而被补正的多数不是功能描述而是鉴别材料本身。源代码页眉没有标注软件名称和版本号、每页不足 50 行、文档混进与系统无关的代码这几类问题占了补正原因的大头。网上流传的软著代码文档模板很多但模板骨架都差不多决定一次过审的还是格式细节。以智悦电子班牌管理系统 V1.0 这类 Vue Element UI 的 Web 管理系统为例源码分布在 .vue、.js、.css 文件中直接粘进 Word 很容易触碰行数红线说明书如果只用截图堆页也会因为文字行数不足被退回。下面按源代码排版、说明书编写、多端差异、提交前自检四个环节把鉴别材料从整理到提交的完整流程拆开说。2. 源代码鉴别材料排版50行一页的规则与批处理脚本2.1 源代码材料的格式红线源代码鉴别材料最核心的格式要求有三条每页不少于 50 行、页眉标注软件全称及版本号、采用前 30 页加后 30 页的结构。这里的“行”指的是排版后一页 A4 纸内显示的有效代码行数空行和注释行也会被计入但连续出现的大段空行会被视为凑页数所以整理材料时一般先剔除空行再按行切页这样每一页的代码密度是均匀的。我常用的排版参数如下项目参数软件名称智悦电子班牌管理系统 V1.0与申请表一致页眉内容软件全称版本号宋体五号居中正文字体Courier New / Consolas五号10.5pt行距固定值 12 磅页边距上 2.54cm、下 2.54cm、左 3.17cm、右 3.17cm结构前 30 页 后 30 页不足 60 页全部提交提示页眉上的软件名称必须和申请表里的全称一字不差包括版本号。名称不一致是补正的高频原因。2.2 从 Vue 项目导出干净源码智悦班牌系统是前后端分离的管理后台核心代码在 src 目录下的 .vue 与 .js 文件里。直接从 IDE 复制代码容易把工作区里临时调试的内容带进去我一般用脚本先把源码合并、去空行再按 50 行一页切分省去手工数行的环节。import os def collect_source_files(root_dir, exts(.vue, .js, .css, .html)): 收集源码文件排除依赖和构建产物目录 skip_dirs {node_modules, dist, .git, build, target, .idea} files [] for dirpath, dirnames, filenames in os.walk(root_dir): dirnames[:] [d for d in dirnames if d not in skip_dirs] for fname in filenames: if fname.endswith(exts): files.append(os.path.join(dirpath, fname)) return files def merge_and_split(files, lines_per_page50): 合并源码删除空行后按每页50行切分 all_lines [] for fpath in sorted(files): with open(fpath, r, encodingutf-8, errorsignore) as f: for line in f: line line.rstrip(\n) if not line.strip(): continue # 去掉空行避免挤占50行的名额 all_lines.append(line) return [all_lines[i:i lines_per_page] for i in range(0, len(all_lines), lines_per_page)] def export_with_header(pages, output_path, software_name智悦电子班牌管理系统 V1.0): 输出带页眉占位符和页码的文本方便粘入Word with open(output_path, w, encodingutf-8) as f: for idx, page in enumerate(pages, 1): f.write(f {software_name} \n) for line in page: f.write(line \n) f.write(f\n-- {idx} --\n\n) if __name__ __main__: files collect_source_files(./src) pages merge_and_split(files, 50) # 总页数超过60时导出前30页和最后30页 if len(pages) 60: export_with_header(pages[:30], head_30.txt) export_with_header(pages[-30:], tail_30.txt) else: export_with_header(pages, all_pages.txt)脚本的逻辑分三段collect_source_files 遍历项目目录下的 .vue、.js、.css、.html 文件排除 node_modules、dist、.git 等目录避免把第三方依赖和构建产物统计进核心代码merge_and_split 把文件按文件名排序后逐行读取空行直接丢弃再将有效行按 50 行一组切页export_with_header 在每页开头写入页眉占位符、页尾写入页码。总页数超过 60 页时只导出前 30 页和最后 30 页不足 60 页则全部导出。参数 lines_per_page 可以按实际排版微调如果 Word 里一页稳定只能放 48 行就把它改成 48。这里有一个多数人踩过的坑用浏览器“另存为”或从页面直接复制 HTML会把浏览器插件注入的样式和脚本一起带进源代码材料。比如用剪藏类插件保存页面后代码里会出现类似Copyright 2014-present Evernote Corporation、skitchToastBox、en-markup-loading-spinner的特征字符串这些并不是项目自己的代码。整理班牌系统登录页时我就遇到过HTML 里被塞进了插件自己的 CSS 动画和 Toast 弹窗样式。处理方法是把已知插件特征词加入过滤规则PLUGIN_MARKERS (evernote, skitchtoast, en-markup, clipper) def filter_plugin_lines(lines): result [] for line in lines: lowered line.lower() if any(marker in lowered for marker in PLUGIN_MARKERS): continue # 丢弃插件注入的代码行 result.append(line) return result这个过滤函数放在 merge_and_split 里在写进 all_lines 之前对每一行做判断。特征词按小写匹配避免大小写差异漏掉如果项目里恰好有以 skitch 命名的业务变量可以先在源码目录里全局搜一遍再决定是否启用这条过滤规则。2.3 用 Word 完成页眉页码与行数控制脚本产出的是纯文本最终还要进 Word 排版。页面设置里选 A4页边距按上文表格填。文档网格的默认设置会影响每页行数需要在“页面设置 - 文档网格”里选择“无网格”否则 Word 会按固定的网格行数分页脚本切好的 50 行一页会被重新打散。页眉在“插入 - 页眉”里输入软件全称和版本号并把字体设为宋体五号、居中。提交前检查首页和奇偶页设置开了“首页不同”之后第一页页眉不显示整份材料就缺了一页页眉开了“奇偶页不同”则可能导致偶数页页眉空白。用等宽字体配合固定值 12 磅行距每页行数是稳定的验证方式是把视图缩到整页看每页最后一行行号是不是 50 的倍数。注意前 30 页加后 30 页不是两份独立文件而是一份从第 1 页到第 60 页连续完整的材料。中间缺页会被退回补正。3. 软件说明书怎么写结构、截图与运行硬件环境表3.1 文档选型用户手册还是设计文档软著鉴别材料中的文档通常选两类用户手册或设计文档。用户手册按操作流程组织适合有界面的管理系统设计文档按模块划分和数据流组织适合算法服务、接口类项目。智悦电子班牌管理系统包含管理后台、信息发布、终端展示等界面功能用户手册可以直接对照界面截图逐项说明操作审核人员理解成本低补正概率小。如果产品偏底层比如纯 SDK、算法包再选设计文档把架构图、类图、接口契约写清楚。3.2 用户手册的标准结构我一般按下面的章节组织用户手册章节命名尽量贴近登记系统的实际功能引言编写目的、系统背景、术语定义系统概述系统架构、主要功能列表运行环境说明硬件环境、软件环境、网络要求系统安装与部署部署步骤、环境变量、启动命令用户操作说明登录、信息发布、班级管理、设备管理、数据统计异常处理常见故障及解决办法每个功能模块的写法是固定的三段式功能入口在哪里、界面主要字段和按钮的含义、操作后的预期结果。以登录页为例源码里能看到账号密码输入框和“校园统一身份认证”按钮文档就写系统支持本地账号登录和校园统一身份认证两种方式输入账号密码后点击登录进入管理后台主界面。这样审核人员可以直接拿文档去对应软件界面功能一致性问题就不会出现在补正清单里。3.3 运行硬件环境怎么填才不被补正软著申请表和说明书中都有一栏“运行硬件环境”这里填的是软件运行时依赖的服务器或终端硬件要求不是开发电脑的配置。常见补正原因就是把开发机配置写进运行环境比如填了 i7-13700K、RTX 4070审核方会认为运行环境描述与软件实际部署场景不符。规范的填写方式是给出最低配置区间项目配置要求服务器 CPU4 核及以上内存8 GB 及以上硬盘100 GB 及以上操作系统Ubuntu 20.04 / CentOS 7 / Windows Server 2019客户端浏览器Chrome 90 / Edge 90 / Firefox 88网络局域网或互联网 TCP/IP 连接带宽不低于 10Mbps软件环境单独写管理后台基于 Vue Element UI服务端运行环境为 Node.js 14反向代理使用 Nginx 1.18数据库使用 MySQL 8.0。这一段同时出现在说明书的运行环境章节和申请表的软件环境中内容保持一致即可。3.4 截图与文字行数的平衡文档鉴别材料对页面文字行数同样有要求一般每页不少于 30 行。纯截图页面的文字行数为零几乎必然被判不合格。所以每张截图周围要配操作说明文字截图放在页面上半部分下方写两到三句操作描述再加一个步骤列表。登录流程可以这样写{ module: login, steps: [ 打开系统访问地址进入登录页, 输入账号和密码或点击校园统一身份认证, 认证通过后跳转管理后台首页, 右上角显示当前用户与角色信息 ] }文档中用 JSON 列出操作步骤是一种比较清晰的表达方式尤其适合描述接口调用时序。这段 JSON 不是给审核看的核心代码而是文档里“操作流程示例”的写法参考放在用户手册对应功能章节里作为步骤说明的辅助。如果不想用 JSON直接用编号列表也可以关键是每个步骤要能对应到界面上的实际控件。提示截图必须从真实运行界面截取临时拼接的假页面在功能比对时容易被识别。对重点按钮用红色方框标注说明文字跟着标注走审核定位功能点的效率会高很多。4. APP、小程序与 Web 管理系统的软著材料差异处理4.1 前端框架项目的源代码截取策略智悦班牌系统的构建产物里有chunk-vendors.c4a40656.js、app.05d3ba5a.js这类静态资源文件名它们来自 Webpack 打包。软著源代码材料优先用 src 下可读性好的源码因为压缩后的 JS 一行包含几千字符贴进 Word 后行数统计不直观审核人员也很难对照功能验证代码。实际处理时先用第 2 章的脚本对 .vue 和 .js 源码切页如果总行数不足 60 页再补充后端接口代码或构建产物中可读性相对好的部分。用 git 管理的前端项目导出源码前先确认工作区干净避免把未提交的临时改动静默带进材料git clone repository-url zhbp-clean cd zhbp-clean git checkout v1.0 find src -name *.vue -o -name *.js | wc -l克隆命令拿到仓库的干净副本checkout 切到与软著版本一致的 tag 或分支最后用 find 统计源码文件数量快速判断材料体量是否可能达标。文件数量乘以平均行数估算结果低于 3000 行时就要准备补充代码来源。4.2 APP 与小程序软著的特殊要求APP 软著在源代码之外要注意平台差异。Android 端源代码按 Activity/Fragment 组织iOS 端按 ViewController 组织源代码材料应包含入口模块和核心业务模块每页行数规则与 Web 端一致。iOS 的 Objective-C 或 Swift 文件通常较长Android 的 Kotlin/Java 类较分散材料组织时建议按“入口 - 核心业务 - 网络层 - 工具类”的顺序排列比按目录自然顺序更利于审核理解。小程序软著要在说明书中明确平台类型微信小程序、支付宝小程序、抖音小程序等并保留首页和核心功能页的真实截图。小程序代码由 .js、.json、.wxml/.axml、.wxss/.acss 组成单文件行数普遍偏少全部源码经常不足 60 页。这时可以把 app.js 全局逻辑、页面生命周期处理、请求封装公共代码都排进材料但不能把同一个文件复制两遍凑页数——不同页面出现完全相同的代码段很容易被判定为重复堆叠。H5 的差异主要在运行环境描述上H5 部署在静态服务器写浏览器兼容性与访问域名即可Web 管理系统则要写服务器部署拓扑和登录链路。源码里zhbp-admin这个路径前缀说明系统部署在站点子目录文档部署说明要与这个路径一致目录写错也会被列为与事实不符。4.3 同一产品线多端软著的复用与差异化同一个业务系统经常同时申请多个软著后端接口一套前端拆成 Web、H5、小程序三端。这种情况下后端公共代码和整体架构描述可以在多份材料中复用但每份源代码材料必须对应各自客户端的代码界面截图和操作说明不能交叉使用。Web 端用管理后台截图小程序端就截小程序页面如果两份材料截图完全相同会被认为属于同一软件独立著作权认定会出问题。做这类多端申请时我习惯先在本地按端建三个目录分别跑一次导出脚本再横向对比一遍每份材料的首页代码是否对应各自的入口文件。5. 提交前自检清单5分钟排查主要补正原因5.1 鉴材格式自检表材料定稿后逐项过一遍下表的检查点可以省掉一轮补正周期检查项要求自查方法源代码页眉每页含软件全称版本号随机翻 5 页核对源代码行数每页固定 50 行末页可不足翻页查行号是否为 50 的倍数页数边界前后各 30 页不足 60 页全部提交翻到第 30 页和第 60 页无关代码无插件注入、无公司版权声明全文搜索 evernote/copyright/skitch文档文字行数每页不少于 30 行抽查无截图页面截图一致性与申报软件功能对应对照功能列表逐项核对运行硬件环境服务器/终端配置非开发机配置核对硬件字段是否含 CPU 与内存5.2 三个高频补正原因的现场修正页眉消失。先检查 Word 的“首页不同”和“奇偶页不同”两个开关只要勾选了其中一个就可能出现部分页面不显示页眉取消勾选后重新从 Word 导出 PDF再抽查奇偶页各两页。页眉文字与申请表名称不一致的用查找替换把整份材料的页眉统一替换不能只改第一页。每页行数不足。把行距从默认的单倍改为固定值 12 磅字号降到五号或小五配合“无网格”文档设置一页 A4 容纳 50 行很稳定。脚本切出来的 50 行在 Word 里被分成两页时优先检查文档网格配置而不是去删代码行。文档混入无关代码。全文搜索特征词命中行直接删除第三方框架代码占比过高时在文档开头注明“核心业务逻辑为自研代码第三方框架代码不参与鉴别材料计数”。代码里如果出现单位或个人署名、版权注释删除后再提交避免与申请主体不一致的质疑。改完重新导出 PDF用阅读器确认页码连续、页眉完整。本文还有配套的精品资源点击获取
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻