苍穹V4.0打印接口文档
1 简介
在打印需求中,二开由于某些具体需求,不希望通过绑定打印操作直接打印,希望在代码中调用打印接口,实现自己的业务需求
例如1:单据提交后,直接调用打印接口,并把打印生成的文件保存下来
2 适用版本
金蝶云苍穹V4.0.016
3 获取表单对应的打印模板接口
获取模板接口
接口一:
适用版本:暂未发布,预计V6.0.005及以上版本发布
PrintTemplateInfo tpl = PrintTemplateServiceFactory.getService().getPrintTemplate(Long userId, Long formId)
参数说明
参数名称 | 类型 | 必填 | 说明 |
userId | Long | 是 | 当前登录用户的id |
formId | String | 是 | 表单id |
返回结果
PrintTemplateInfo对象
参数值 | 类型 | 非空 | 说明 |
formId | String | 是 | 表单id |
printerId | Long | 否 | 打印机id |
printLang | String | 否 | 打印语言 |
defaultTplId | String | 否 | 默认模板id |
tplList | List<TemplateInfo> | 否 | 有权的模板 |
TemplateInfo对象
参数值 | 类型 | 非空 | 说明 |
id | String | 是 | 打印模板id |
name | String | 是 | 打印模板名称 |
type | String | 是 | 打印模板类型('A'是旧模板,'B'是新模板) |
接口二:
适用版本: V6.0.002之前的版本
//通过表单标识和应用标识获取当前表单打印模板,key-模板id,value 模板名称
Map<String,String> templateMap = PrintTemplateServiceFactory.getService().getUserPermPrintTemplateMap(formId,appId);
4 通过模板编码获取模板ID接口
服务调用
String tplId = BosPrintServiceHelper.getTplIdByNum(String tplNum)
参数说明
参数名称 | 类型 | 必填 | 说明 |
tplNum | String | 是 | 模版编码 |
返回结果
对应的模版ID,如果返回null,则表示传递的模版编码找不到对应的模版。
5 通过多个模板编码批量获取模板ID接口
服务调用
Map<String,String> tplIdMap = BosPrintServiceHelper.getTplIdByNum(List<String> tplids)
参数说明
参数名称 | 类型 | 必填 | 说明 |
tplids | String | 是 | 模版编码 |
返回结果
返回Map对象。 如传递Arrays.asList(“prt01”,”prt02”,”xxx”) 返回结果如下则表示,xxx未找到对应的模版,不返回,匹配到的返回 key: 模版编码,value: 模版名称 { “prt01”: “Id1”, “prt02”: “id2” } |
6 打印接口
服务调用
接口一:
PrtAttach prtAttach = BosPrintServiceHelper.execPrint(PrintWork work)
适用版本: V5.0.011,V5.0.019以上版本
接口二:
适用版本: V5.0.011,V5.0.019以上版本废弃,建议使用上面的execPrint接口
PrtAttach prtAttach = BosPrintServiceHelper.doPrint(PrintWork work)
参数说明
PrintWork 参数说明
参数名称 | 类型 | 必填 | 说明 |
pageId | String | 否 | 页面pageid.如报表等,插件内需要根据pageId获取数据,则必传 |
printLang | String | 是 | 打印语言 |
expType | String | 是 | 导出类型(pdf,xls) |
isVerEconomizePaper | Boolean | 否 | 是否纵向节纸 |
isHorEconomizePaper | Boolean | 否 | 是否横向节纸 |
taskList | List<PrintTask> | 是 | 打印任务,一个模版对应一个PrintTask。一个PrintTask. 参考参数PrintTask |
extParam | Map | 否 | 扩展参数. |
PrintTask 参数说明
参数名称 | 类型 | 必填 | 说明 |
tplId | String | 是 | 模版ID |
pkIds | List<Object> | 是 | 单据,基础资料等数据内码 |
返回结果
PrtAttach 对象
参数值 | 类型 | 非空 | 说明 |
taskId | String | 是 | 每次任务对应一个taskId |
formId | String | 是 | 表单编码 |
appId | String | 否 | 应用编码 |
userId | String | 否 | 操作用户id |
orgId | String | 否 | 表单所属组织id |
diskType | String | 是 | 文件存贮类型(0附件服务器,2临时文件) |
attachDetails | List<AttachDetail> | 是 | 打印结果附件信息。详情见AttachDetail |
AttachDetail对象
参数值 | 类型 | 非空 | 说明 |
attachId | String | 是 | 附件id |
fileName | String | 是 | 附件名称 |
filePath | String | 是 | 附件路径 |
fileType | String | 是 | 附件类型 pdf, xlsx |
source | String | 是 | 附件来源 A 旧打印 |
7 直接打印接口
服务调用
PrtAttach prtAttach = BosPrintServiceHelper.doPrintDirect(String printerId,PrintWork work)
服务说明
调用该接口,系统将自动将打印结果添加到云打印任务,配合云打印,可自动发送到打印机
参数说明
1. printerId 打印机id。
2. work见6中PrintWork参数
返回结果
无
8 获取打印文件流
服务调用
InputStream inputStream = BosPrintServiceHelper.getFileInputStream(String filePath)
适用版本
V5.0.011及V5.0.019及之后版本
参数说明
参数名称 | 类型 | 必填 | 说明 |
filePath | String | 是 | 文件路径标识,传打印接口返回值:PrtAttach.AttachDetail.filePath |
返回结果
文件流
服务调用
InputStream inputStream = FileServiceFactory.getAttachmentFileService().getInputStream(filePath);
适用版本
V4.0.xx版本
参数说明
参数名称 | 类型 | 必填 | 说明 |
filePath | String | 是 | 文件路径标识,传打印接口返回值:PrtAttach.AttachDetail.filePath |
返回结果
文件流
9 如何下载打印文件
文件访问路径
String url = UrlService.getDomainContextUrl()+"/api/print/download.do?taskId=%s&attachId=%s"
调用苍穹接口,向前端发生指令访问打印文件
this.getView().openUrl(url);
10 获取打印机id
服务调用
Long printerId = BosPrintServiceHelper.getPrinterId(Long userId, Long formId)
适用版本
V6.0版本
参数说明
参数名称 | 类型 | 必填 | 说明 |
userId | Long | 是 | 当前登录用户的id |
formId | String | 是 | 表单id |
返回结果
打印机id
11 获取打印机语言
服务调用
String printLan = BosPrintServiceHelper.getPrintLang(Long userId, Long formId)
适用版本
暂未发布,预计V6.0.003及以上版本发布
参数说明
参数名称 | 类型 | 必填 | 说明 |
userId | Long | 是 | 当前登录用户的id |
formId | String | 是 | 表单id |
返回结果
用户设置的打印机语言
苍穹V4.0打印接口文档
本文2024-09-23 00:37:47发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140698.html