# Canva 批量创建证书：用AI匹配十行名单，核对姓名、编号与PDF页序

10行名单中CERT-001与CERT-002都叫林晓，CERT-006为长姓名，CERT-009奖项为空。10页作者PDF保留稳定编号；字段映射图是本地SVG教材，未运行Canva。

## 文件身份

所有人物、组织、数值为原创虚构教学资料。作者本地原生参考不代表目标SaaS实测；本题未登录目标账号、购买权益、调用付费API、发送评论/邀请或写主日历。

## 七步操作

1. 按稳定编号核对十行名单

打开10行名单，先用certificate_id核对同名人员与空奖项，约定空值显示方式。

2. 把每个变量做成独立文本框

在桌面Canva建立单页证书模板，姓名、编号、课程各为独立文本框。

3. 从桌面打开Bulk create并载入名单

Apps或编辑入口打开Bulk create，上传CSV/XLSX并确认识别为10条。

4. 自动匹配后逐字段纠正

普通Bulk Create入口按当前帮助选择Match and fill fields；Canva Sheets入口仍称Auto-match fields。单个字段错误时选元素→Match data→Connect data，按姓名/编号/课程逐项重连。

5. 预览同名、长姓名和空奖项

逐页预览长姓名、同名不同编号和空奖项三例，返回模板或数据修正而非在只读预览改字。

6. 下载PDF并逐页配对编号

生成10页并下载PDF；把每页编号与输入稳定ID逐行配对。

7. 检查十页成品并保留原始名单

验收页数、唯一编号、中文与长姓名边界；保存实际Canva输出和作者PDF参考两套身份。

## 独立验证

在复制的目录运行 `python3 -B verify.py`。需要Python3，PDF验证依赖pypdf、原生表格只读检查依赖openpyxl，文档用标准库读取OOXML。教材的本地HTML查看器直接在浏览器打开，不需要连接第三方服务。

## 原生文件

- certificates-reference.pdf
- recipients.xlsx

## 验收

- 10条输入对应10页、10个唯一编号，无重号漏号或姓名串行。
- 同名按稳定ID区分；长姓名不裁切，缺奖项按约定留空而非AI补造。
- PDF实际渲染逐页检查，局部预览不是下载PDF通过证据。

## 账户与功能依据

- Canva：Bulk Create 与 AI Auto-match fields https://www.canva.com/help/bulk-create/
