将多页 Canvas 合成为可下载的 A4 PDF。含页码元素检测(footer-text+纯数字)、分页容量估算(硬上限 10 页)、逐页输入切片(sequential/row/col 模式,跳过\r\n)、jsPDF 多页合成(A4 1240×1754 @150dpi,JPEG 0.95)。触发词:导出 PDF/打印 canvas/生成 A4/多页导出/canvas 转 pdf。纯前端,jsPDF 经 CDN 引入,浏览器与微信小程序(先出图再合 PDF)通用。
This skill has been flagged as potentially dangerous. It contains patterns that could compromise your security or manipulate AI behavior.Safety score: 20/100.
KillerSkills scans all public content for safety. Use caution before installing or executing flagged content.
> 教备神器 · 工具模块。纯前端,jsPDF 经 CDN 引入。
字帖、作业纸、表格画好了,但要打印成册,一张张存图太麻烦。本技能把**多页 Canvas 一键合成为标准 A4 PDF**——自动页码、自动分页、不超 10 页上限,下载即打印。老师出练习卷、家长印字帖册都好用。
```javascript
// 页码元素检测:模板是否支持多页页码
PdfExport.hasPageNoFlag(elements) // -> true/false
// 分页容量:{ pages, overLimit }
PdfExport.estimatePages(totalCells, cellsPerPage, maxPages=10)
// 逐页切片(输入分配到第 pageNo 页)
PdfExport.sliceSequential(input, pageNo, cellsPerPage) // 跳过 \r\n
PdfExport.sliceByRow(input, pageNo, rows)
// 合成多页 PDF(需 jsPDF 环境)
// pages: [{ dataURL }] 或 canvas 数组
var doc = PdfExport.composePDF(pages, { pageSize:[1240,1754], quality:0.95 });
doc.save('学习用纸.pdf'); // 浏览器触发下载
```
```
1. hasPageNoFlag → 是否需要页码控件
2. 循环 i=1..pageCount:drawAll({pageNo:i}) → canvas.toDataURL('image/jpeg',0.95) → 收集
3. composePDF(pages) → doc.save()
4. 单页/无页码模板:保持原 PNG 下载行为
```
```bash
node references/selftest.js # 验证页码检测/分页/切片,PASS 方可交付
```
本技能是「教备神器 · Canvas 工具链」的一环,四件组合覆盖「画 → 复刻 → 导出 → 验证」完整闭环:
完整方案与演示见「教备神器 Canvas 工具链落地页」(链接发布后回填)。
Leave a review
No reviews yet. Be the first to review this skill!