Agent Skills
返回列表
多页 Canvas 一键导出 A4 PDF

多页 Canvas 一键导出 A4 PDF

办公效率 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3ff3c268/canvas-multipage-pdf。

技能介绍

要解决什么问题

字帖、作业纸、表格在 Canvas 上画好后,打印成册往往只能一页页 canvas.toDataURL 存图,再手工拼 PDF,页码和分页也容易错。本技能面向「多页 Canvas → 可打印 A4 PDF」:在浏览器里一键合成,带连续页码、自动分页,并遵守 10 页硬上限(超出先确认再截断)。

技能如何工作

  • 固定 A4 画布:内部尺寸 1240×1754(150dpi);jsPDF 使用 unit: 'px'、format: [1240, 1754],避免 px/mm 混用导致缩放错位。
  • 导出质量:页面切片经 toDataURL('image/jpeg', 0.95) 写入 PDF。
  • 核心流程:detectPageNumbers 识别模板页码 → estimatePages 估算总页数与是否超限 → sliceCanvas 按页切片 → composePDF 逐页 addPage + addImage 合成(第一页后必须先 addPage,否则内容叠在同一页)。
  • 自测:附 selftest.js,在 Node 侧验证页码检测、分页与切片逻辑,不依赖浏览器里的 jsPDF。
  • 引用实现:references/pdf-export.js(UMD,页码检测 + 分页 + 切片 + 合成)。

适用边界与注意点

  • 环境:composePDF 需要 jsPDF(浏览器 CDN 或 Node npm i jspdf)。微信小程序没有 jsPDF,需先 wx.canvasToTempFilePath 出每页图,再在 web-view 或后端合 PDF,或在前端页复用同一套分页逻辑。
  • 组合使用:与 canvas-grid-engine(画网格字帖)、svg-to-canvas-replica(SVG 复刻到 Canvas)互补——前者负责「画/复刻」,本技能负责「出 PDF」。

使用场景

  • 字帖或作业纸已在 Canvas 画好五六页,需要带连续页码合成一份 A4 PDF 直接送打印机
  • 单页模板高度不够,内容超出单屏,要按固定 1240×1754 尺寸自动切片并导出多页 PDF
  • 老师用网格引擎生成练习卷预览后,要把多页 Canvas 一键下载为可打印 PDF 发给家长
  • 已有带页码标记的 Canvas 模板,导出前要先估算总页数并在超过 10 页时确认是否截断

适合人员

  • 在浏览器里做字帖/田字格 Canvas 页面、每次打印前都要合 PDF 的教育类前端开发者
  • 需要把自家孩子多页练字 Canvas 导出成标准 A4、在家打印机直接打的家长
  • 维护 Canvas 工具链(画网格 + 出 PDF)并要复用 `detectPageNumbers` / `composePDF` 的 Skill 集成者
  • 在微信小程序里已能出每页 Canvas 图、还要对齐同一套分页逻辑再在 web-view 或后端合 PDF 的小程序工程师