lpwpi
简要
lpwpi 是一款在浏览器中启动微打 APP 来接收打印数据并进行标签打印的 JavaScript 接口。在传统的打印方式中,标签的打印需要通过蓝牙或者 USB 将打印数据发送给打印机才能够进行正常的打印操作,但是浏览器本身不支持蓝牙和 USB,所以无法直接进行打印操作。为了跳过浏览器的这个限制,lpwpi 接口通过数据类型的约定以及借助于服务器进行远程数据交互的方式来实现浏览器打印的功能。通过该方式,lpwpi 会先将打印数据提交到服务器,然后再启动官方提供的打印 APP,然后 APP 在向服务器获取数据,获取到数据后进行数据的解析及打印操作,打印完之后将打印结果上传到服务器,然后浏览器再去获取打印结果。
使用方法
``
js
// 1. 获取接口对象
var api = window.LPWPI;
// 2.1 通过templateID 的方式进行打印;
api.printTemplate({
templateID: "",
});
// 2.2 通过wdfx 方式进行打印;
api.printWdfx({
content: "....",
});
// 2.3 通过json方式进行打印
api.printJson({
jobInfo: {},
jobPage: [],
});
// 2.4 直接调用 print() 接口,让系统自动的根据不同的数据来自己判断打印数据。
api.print({
// 1. lpwpi会优先去检测配置信息中是否存在 'templateID',如果存在则使用 templateID 的方式进行打印。
templateID: "",
// 2. 如果参数中没有 templateID,那么lpwpi回去检测 jobInfo和jobPage,如果有则使用json方式进行打印。
jobInfo: {},
jobPage: [],
// 3. 如果 参数中不存在 templateID,也不存在 jobInfo等信息,回去检测并解析 content 中的信息,
// 如果检测到content是wdfx数据,则解析wdfx内容并进行打印;
// 如果解析到 json 数据,则以json方式进行打印。
content: "",
});
`
接口介绍
$3
`
TypeScript
/**
* 数据打印执行结果。
*/
export enum LPW_Result {
/* 打印成功 /
OK = 0,
/* 参数错误 /
ERROR_PARAM = 1,
/* 未检测到打印APP,或者打印APP版本太低 /
ERROR_NO_APP = 2,
}
``
$3
#### printTemplate
| 属性 | 类型 | 必填 | 说明 |
| ------------- | ------ | ---- | ------------------------------------------------------------- |
| templateID | string | 是 | TemplateID 打印模式下的模板 ID |
| userID | string | 否 | TemplateID 打印模式下的用户 ID |
| action | number | 否 | 1:直接打印,2:预览,3:打印并预览。如果未指定,表示只打印。 |
| appName | string | 否 | 客户 APP 名称 |
| printCopies | number | 否 | 打印份数,默认为 1 份 |
| autoPage | number | 否 | 1:表示自动分页,0 或者未指定表示常规方式打印 |
| title | string | 否 | 打印页面的标题名称 |
| topMessage | string | 否 | 预览页面顶部的提示信息 |
| bottomMessage | string | 否 | 预览页面底部的提示信息 |
| jobArguments | Object | 否 | 打印参数 |
#### printJson
| 属性 | 类型 | 必填 | 说明 |
| ------------- | ------ | ---- | ------------------------------------------------------------- |
| jobInfo | Object | 是 | json 打印模式下的打印任务信息 |
| jobPage | Array | 否 | json 打印模式下的打印页面信息 |
| jobPages | Array | 否 | json 打印模式下多页打印时候的多个标签的配置信息 |
| action | number | 否 | 1:直接打印,2:预览,3:打印并预览。如果未指定,表示只打印。 |
| appName | string | 否 | 客户 APP 名称 |
| printCopies | number | 否 | 打印份数,默认为 1 份 |
| autoPage | number | 否 | 1:表示自动分页,0 或者未指定表示常规方式打印 |
| title | string | 否 | 打印页面的标题名称 |
| topMessage | string | 否 | 预览页面顶部的提示信息 |
| bottomMessage | string | 否 | 预览页面底部的提示信息 |
| jobArguments | Array | 否 | 打印参数 |
#### printWdfx
| 属性 | 类型 | 必填 | 说明 |
| ------------- | ------ | ---- | ------------------------------------------------------------- |
| content | string | 是 | wdfx 字符串 |
| action | number | 否 | 1:直接打印,2:预览,3:打印并预览。如果未指定,表示只打印。 |
| appName | string | 否 | 客户 APP 名称 |
| printCopies | number | 否 | 打印份数,默认为 1 份 |
| autoPage | number | 否 | 1:表示自动分页,0 或者未指定表示常规方式打印 |
| title | string | 否 | 打印页面的标题名称 |
| topMessage | string | 否 | 预览页面顶部的提示信息 |
| bottomMessage | string | 否 | 预览页面底部的提示信息 |
| jobArguments | Array | 否 | 打印参数 |
#### print
| 属性 | 类型 | 必填 | 说明 |
| ------------- | ------ | ---- | ------------------------------------------------------------- |
| templateID | string | 否 | TemplateID 打印模式下的模板 ID |
| userID | string | 否 | TemplateID 打印模式下的用户 ID |
| content | string | 否 | wdfx 字符串 |
| jobInfo | Object | 否 | json 打印模式下的打印任务信息 |
| jobPage | Object | 否 | json 打印模式下的打印页面信息 |
| jobPages | Array | 否 | json 打印模式下多页打印时候的多个标签的配置信息 |
| action | number | 否 | 1:直接打印,2:预览,3:打印并预览。如果未指定,表示只打印。 |
| appName | string | 否 | 客户 APP 名称 |
| printCopies | number | 否 | 打印份数,默认为 1 份 |
| autoPage | number | 否 | 1:表示自动分页,0 或者未指定表示常规方式打印 |
| title | string | 否 | 打印页面的标题名称 |
| topMessage | string | 否 | 预览页面顶部的提示信息 |
| bottomMessage | string | 否 | 预览页面底部的提示信息 |
| jobArguments | Array | 否 | 打印参数 |