打印模板生成附件保存在单据中

1. 接口使用场景
单据需要生成打印模板并绑定在当前单据附件面板上,如下图,当点击生成打印模板附件时,可自动在附件面板实时绑定该单据根据打印模板生成的pdf。

2. 适用版本
金蝶云苍穹V4.0.014以上
3. 解决方案
单据点击生成打印模板附件时,调用打印服务接口,根据模板生成附件,获取生成的pdf在文件服务器中的路径,将其绑定目标单据附件面板,调用附件服务的绑定接口,根据绑定接口返回结果,成功刷新界面,即可绑定当前pdf至附件面板上。
代码示例:
Java |
|
@Override public void itemClick(ItemClickEvent evt) { //点击生成打印模板附件 if("getprtattach".equals(evt.getItemKey())){ //1.根据模板生成附件 //通过模版编码获取模版ID String tplId = BosPrintServiceHelper.getTplIdByNum("im_purreceivebill_test_prtpl"); //构造打印服务接口需要的参数 PrintWork PrintWork work = new PrintWork(); //设置打印语言 work.setPrintLang("zh_CN"); //设置类型:1代表pdf work.setExpType("1"); List<PrintTask> printTasks = new ArrayList<>(); PrintTask printTask = new PrintTask(); printTask.setTplId(tplId);//设置模板ID //获取当前单据PKID Object id = getModel().getValue("id"); //设置当前单据PKID printTask.setPkIds(new ArrayList<Object>(Arrays.asList(id))); printTasks.add(printTask); work.setTaskList(printTasks); //调用打印服务接口 PrtAttach prtAttach = BosPrintServiceHelper.execPrint(work); //获取生成的pdf在文件服务器中的路径 String path = prtAttach.getAttachDetail().get(0).getFilePath(); //因为打印生成的临时文件,后续会自动清理,故而需要业务上传的文件服务器转存。 FileService fileService = FileServiceFactory.getAttachmentFileService(); InputStream inputStream = BosPrintServiceHelper.getFileInputStream(path); path = fileService.upload(new FileItem("文件名.pdf","/租户ID/数据中心ID/20230425/xxx/文件名.pdf",inputStream)); try{ //2.附 | |
打印模板生成附件保存在单据中
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



