功能强大的云打印组件-接口文档

端口

websocket端口是13511,打印组件关于页面也有显示的。

命令格式说明

请求:

 
  1. {
  2. "cmd": "getPrinters",//通用参数:命令
  3. "version": "1.0",//通用参数:客户端最低版本号
  4. "requestId": "158372651568",//通用参数:请求Id,客户端构造
  5. "appName": "Demo",//通用参数:ISV应用名称
  6. "tenantId": "0"//通用参数:客户Id
  7. }

返回:

 
  1. {
  2. "printers": [
  3. "KM-118D",
  4. "Fax"
  5. ],//不同业务返回不同的对象
  6. "cmd": "getPrinters",//通用返回:请求时发送的命令
  7. "requestId": "644314895659",//通用返回:请求Id
  8. "success": true,//通用返回:执行结果
  9. "msg": null//通用返回:如果有错误,会有错误消息
  10. }

使用javascript连接可以使用直接DEMO里面现成的websocket连接类:PrintComponent,这个类把websocket封装好了,可以很优雅的连接和使用打印组件。
也就是说如果没有特殊需求,引入这个JS以后,调用这个命令只需要3行JS代码就完成了
使用示例:

 
  1. const com = new PrintComponent(this.port);
  2. const cmd = PrintCmd.getPrinters('Demo', '0');
  3. const re = await com.send(cmd);//返回对象re就是上面示例返回的JSON对象了,这里用了await,比回调优雅多了,await支持chrome65(XP最高版本Chrome)以上浏览器

获取打印机列表

参数:

 
  1. {"cmd":"getPrinters","version":"1.0","requestId":"158372651568","appName":"Demo","tenantId":"0"}

返回:

 
  1. {"printers":["万能打印机","Microsoft XPS Document Writer","Microsoft XPS Class Driver","Microsoft Print to PDF","KM-118D","Fax"],"cmd":"getPrinters","requestId":"644314895659","success":true,"msg":null}

新建打印模板

参数中省略了2个重要字段没有写详细内容,说明下这两个字段含义:
1,fields:这个是告诉打印组件,你这个模板有多少字段的

 
  1. [
  2. {
  3. "fieldName": "StringVal",//字段名,用于解析打印数据或预览数据的
  4. "displayName": "字符串类型",//显示名称,显示在打印模板设计字段列表里的
  5. "fieldType": 1//字段类型:1字符串;2整型;3长整型;4时间日期"2022-1-1 18:18:18";5布尔;6小数点数字;7子列表,示例有格式说明;8子对象,示例有格式说明
  6. },
  7. {
  8. "fieldName": "SubList",
  9. "displayName": "子列表",
  10. "groupName": "",
  11. "fieldType": 7,
  12. "subList": [
  13. {
  14. "fieldName": "StringVal",
  15. "displayName": "字符串类型",
  16. "fieldType": 1
  17. }
  18. ]
  19. },
  20. {
  21. "fieldName": "SubObject",
  22. "displayName": "子对象",
  23. "fieldType": 8,
  24. "subObject": [
  25. {
  26. "fieldName": "StringVal",
  27. "displayName": "字符串类型",
  28. "fieldType": 1
  29. }
  30. ]
  31. }
  32. ]

2,previewData:这个是用于编辑模板过程中预览效果的,格式一定是个Json数组,里面每个元素都是一个打印Dto,Dto里面的字段跟上面提供的字段说明需要匹配的,如果不匹配则以字段说明来显示。

 
  1. [
  2. {
  3. "StringVal": "1479640541",
  4. "SubList": [
  5. {
  6. "StringVal": "1479640541"
  7. }
  8. ],
  9. "SubObject": {
  10. "StringVal": "1479640541"
  11. }
  12. }
  13. ]

接口参数:

 
  1. {
  2. "designSchema": {
  3. "fields": [...],
  4. "previewData": [...],
  5. "defaultSize": "60, 40",
  6. "id": "7495838411001637197",
  7. "name": "采购单打印模板"
  8. },
  9. "newTemplateType": 2,
  10. "cmd": "newEmptyTemplate",
  11. "requestId": "7495838411001637196",
  12. "version": "1.1"
  13. }

返回:

 
  1. {
  2. "editResult": {
  3. "name": "采购单打印模板",
  4. "id": "7495838411001637197",
  5. "oldTemplateUrl": null,
  6. "newTemplateUrl": "http://files.erp12345.com/private/0/采购单打印模板_2022_02_09 022221.repx"//创建好的打印模板会保存到线上,通过URL返回给应用端,应用端只需要保存这个模板Url即可
  7. },
  8. "cmd": "newEmptyTemplate",//通用返回
  9. "requestId": "7495838411001637196",//通用返回
  10. "success": true,//通用返回
  11. "msg": null//通用返回
  12. }

编辑模板

每个参数不细说了,参照一下上面的命令

参数

 
  1. {
  2. "cmd": "editTemplate",
  3. "version": "1.0",
  4. "requestId": "031085071712",
  5. "appName": "Demo",
  6. "tenantId": "0",
  7. "designSchema": {
  8. "fields": [],
  9. "previewData": [],
  10. "oldTemplateUrl": "http://files.erp12345.com/private/0/采购单打印模板_2022_02_09 022221.repx",
  11. "defaultSize": "60,40",
  12. "id": "202143593362",
  13. "name": "编辑模板模板"
  14. }
  15. }

返回:

 
  1. {
  2. "editResult": {
  3. "name": "测试添加模板",
  4. "id": "931071036471",
  5. "oldTemplateUrl": "http://files.erp12345.com/private/0/测试添加模板_2022_02_09 145638.repx",
  6. "newTemplateUrl": "http://files.erp12345.com/private/0/测试添加模板_2022_02_09 145656.repx"
  7. },
  8. "cmd": "editTemplate",
  9. "requestId": "013954406979",
  10. "success": true,
  11. "msg": null
  12. }

打印

每个参数不细说了,参照一下上面的命令

参数

 
  1. {
  2. "cmd": "print",
  3. "version": "1.0",
  4. "requestId": "299162116064",
  5. "appName": "Demo",
  6. "tenantId": "0",
  7. "task": {
  8. "taskId": "026249180427",
  9. "preview": false,
  10. "printer": "万能打印机",
  11. "TemplateUrl": "http://files.erp12345.com/private/0/测试添加模板_2022_02_09 145638.repx",
  12. "fields": [],//同模板设计的fields字段
  13. "documents":[]//同模板设计的previewData字段
  14. }
  15. }

返回:

 
  1. {"cmd":"print","requestId":"299162116064","success":true,"msg":null}

预览

预览和打印只有一个参数差异: “preview”:true/false

 
  1. {
  2. "cmd": "print",
  3. "version": "1.0",
  4. "requestId": "299162116064",
  5. "appName": "Demo",
  6. "tenantId": "0",
  7. "task": {
  8. "taskId": "026249180427",
  9. "preview": true,
  10. "printer": "万能打印机",
  11. "TemplateUrl": "http://files.erp12345.com/private/0/测试添加模板_2022_02_09 145638.repx",
  12. "fields": [],//同模板设计的fields字段
  13. "documents":[]//同模板设计的previewData字段
  14. }
  15. }

返回:

  1. {
  2. "cmd": "print",
  3. "requestId": "299162116064",
  4. "success": true,
  5. "msg": null
  6. }

 更多内容请访问print.in08.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值