接入开发

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 即可看到转换结果与警告,确认没问题再写进业务代码。

相关页面

本页目录