接入开发
Hiprint 模板
把 vue-plugin-hiprint 模板 JSON 经适配器转换后打印,以及与其它内容混排、能力边界。
最后更新
已经用 vue-plugin-hiprint 做过模板的项目,可以通过适配器把它们转换成 PrintLink 能打印的内容,模板本身不用改。
PrintLink 不内置 Hiprint 设计器,也不复制任何第三方打印插件的 API。
模板请在 Hiprint 官方设计器里制作,
导出 hiprintTemplate.getJson() 得到的 JSON 后交给 PrintLink 转换。
转换并打印
import { PrintLinkClient } from '@printlink/sdk';
import { hiprintItem } from '@printlink/hiprint';
const { item, warnings, unsupported } = hiprintItem(template, { orderNo: 'SO-2026-0001' });
// 不支持的节点不会静默丢弃,逐条列在这两个数组里
console.log(warnings, unsupported);
await client
.compose({ queueId })
.paper('A4') // 整条任务唯一的纸张;模板页尺寸只是内容原始尺寸
.add(item)
.printAndWait();等价的显式写法:convertTemplate(template) 得到转换结果,再用
.addDocument(converted).data({...})。模板里的 field 绑定会被翻译成
{{占位符}}。
与其它内容混排
Hiprint 发票 + 随货 PDF + 签收照片可以是同一条任务:
await client
.compose({ queueId })
.paper('A4')
.add(hiprintItem(invoiceTemplate, order).item)
.addPdf(packingListPdf)
.addImage(signaturePhoto)
.printAndWait();见组合打印。
能转换什么
| 支持 | 说明 |
|---|---|
| 文本、长文本 | 长文本不分页 |
| 图片、二维码、常见条码 | |
| 线条、矩形 | |
| 基础表格 | 列定义与行高可转换,复杂表格特性会降级 |
| 页面尺寸与基础字体 |
模板里持久化的整体缩放会被忽略——PrintLink 按真实的毫米/点尺寸渲染,不套用 Hiprint 自己的缩放系数。
模板里的 HTML 控件会被转成纯文本,并给出 HIPRINT_HTML_TEXT_FALLBACK
警告。真要网页排版,把那一段 HTML 单独作为网页来源项
放进同一条任务。
关于警告
转换报告里每条警告都带严重级别:
info—— 已知无影响的降级,比如编辑器元数据(draggable、fixed)、 装饰性样式(letterSpacing)。折叠起来看即可。warning(默认)—— 需要作者确认的真实内容或版式变化,比如 HTML 转纯文本、 图片空src、表格列缺field。
同类问题会合并成一条并附数量,所以一份标准模板通常只剩个位数的可执行警告, 不会刷一屏。
在控制台里试
打开调试台的 Hiprint 页面(http://127.0.0.1:17888/playground/hiprint/),
粘贴模板 JSON 即可看到转换结果与警告,确认没问题再写进业务代码。