模板打印
模板打印适合按照固定版式,把业务数据填入合同、订单、发票或报表模板,再下载生成文件。你可以提供现有模板和业务规则,让应用 Agent 在 NocoBase 应用中实现打印入口和文件生成。
先明确一个边界:@nocobase/app-plugin-template-print 提供的是 Agent Skill 和实现参考,不是可以直接启用的打印功能。安装后不会自动出现打印按钮、模板管理页或渲染服务;Agent 仍需要在目标应用或业务插件中完成这些功能。
适合什么场景
- 从订单详情生成一份填好客户、金额和明细的合同
- 从列表中选择多条记录,生成一份发货清单
- 按现有 Office 模板生成 DOCX、XLSX 或 PPTX 文件
- 在已有文件生成流程上增加 PDF 输出或图片、二维码
如果只需要浏览器打印当前页面,通常先用浏览器的打印功能即可,不需要模板打印。模板打印用于生成有固定版式、可归档或可发送的文件。
接入前要准备什么
- 能让开发 Agent 读取和修改的目标 NocoBase 应用
- 一份实际模板;没有模板时,先描述版式并让 Agent 生成样例供你确认
- 一条代表性业务记录,包含常见字段、明细和可能出现的空值
- 期望的打印入口、记录范围、输出格式和访问权限
这不是在 Settings 页面中启用的运行时插件。先让开发 Agent 检查当前应用是否已经安装并同步模板打印 Skill:
同步后,Agent 可以读取模板打印指导。业务用户最终使用的是 Agent 为应用实现的页面和按钮,不需要学习 Skill 或执行安装命令。
示例:从订单生成合同
把实际 DOCX 模板和示例订单一并提供给 Agent,再发送下面的需求。将方括号中的内容替换成应用中的真实信息:
预期效果
订单详情页出现「打印合同」入口。用户点击后下载带有当前订单数据的 DOCX 文件,模板的固定版式和签名区域仍然保留。
验收时使用至少一条包含多条明细的订单,并检查生成文件能在目标 Office 软件中打开。还要用无权访问该订单的账号确认下载接口不会返回文件。
进一步使用
批量打印
批量任务要说明记录范围和文件组织方式。比如只处理勾选的订单,生成一个按订单号排序的 XLSX 文件:
「当前页」「已勾选记录」和「全部筛选结果」是不同的打印范围。要让 Agent 按业务需要实现其中一种,避免结果意外包含更多记录。
增加 PDF、图片或二维码
说明图片放在模板的什么位置、二维码指向哪里,以及 PDF 必须保留哪些字体和分页效果:
PDF 转换通常需要额外的服务端转换环境和字体。下载 PDF 后可以由用户通过查看器选择打印机;如果要静默调用用户电脑上的打印机,需要单独设计客户端方案。
让业务用户管理多份模板
只有当业务人员需要上传、替换或选择模板时,再要求 Agent 增加模板管理:
固定模板可以随应用代码维护。上传、版本管理、选择模板和管理权限都需要额外实现,不会因安装模板打印 Skill 自动获得。
使用时要留意
- 每次打印都要明确是当前记录、选中记录、当前页还是全部筛选结果
- DOCX、XLSX、PPTX 和 PDF 的实际生成效果取决于 Agent 选择并接入的渲染方案,需要用目标模板和部署环境验证
- PDF 可能需要额外转换服务和中文字体,不能只在开发机检查
- 服务器生成文件前应先校验用户权限,再读取业务数据、模板和附件
- 插件只同步指导资料;完成后还需要在实际应用页面下载文件并检查版式
安装后没有打印按钮是预期行为。先确认 Skill 已同步给开发 Agent,再明确提出要添加的业务入口、模板、数据范围和输出格式。

