EOS Low-Code Platform 8 EOS Low-Code Platform 8
产品简介
学习指南
更新说明
安装与集成
上线指南
初见EOS
低代码开发手册
专业代码开发手册
智能体开发手册
专题场景实战
公共服务框架
应用运行治理
运维指南
  • 1 打印模版
  • 1.1 模板制作新建一个word文档
  • 1.1.1 查看码表
  • 1.1.2 粘贴对应的模板语法到word中
  • 1.1.3 模板语法
  • 常见问题
  • word结果打印样式发生变化,不符合预期?
  • 除了码表外,需要一些额外的数据
  • 如何手动调用 getPdf
  • 如何手动调用 getTempPdfUrl

# 1 打印模版

word打印和excel打印差不多,唯一的区别就是模板制作过程不同,需要自己制定一个docx文件,把需要变量通过word模板语法塞进去

# 1.1 模板制作新建一个word文档

image-20240219152746841

# 1.1.1 查看码表

image-20240219152746841

# 1.1.2 粘贴对应的模板语法到word中

image-20240219152746841

# 1.1.3 模板语法

image-20240219152746841

image-20240219152746841

常用语法如下:
数据:{a: 1}
{a}

数据:{imageUrl: 'https:xxxx'}或者图片组件
{%imageUrl}

数据:{__nameObject: {name: 1, code: '123'}}
{#__nameObject} {name} {/__nameObject}:{#__nameObject} {code} {/__nameObject}

数据:{list: [{name: 1, code: '123'}]}
{#list} {name} {code} {/list}

# 常见问题

# word结果打印样式发生变化,不符合预期?

可以去首选项开启word转pdf image-20240219152746841

# 除了码表外,需要一些额外的数据

可以在表单打印前添加事件,或视图打印前添加事件 添加额外的返回数据

const data = arguments[0]
return {
  a: data.name === '0' ? 'sss' : 'hhh'
}

然后模版中使用{a}

# 如何手动调用 getPdf

const query = {
  appName: 'AFCENTER', // 当前应用名称
  entityCode: 'sj.Inventory', // 当前表单 code
  formId: '1', // 当前数据的id
  entityName: 'sj.three.Inventory', // 当前实体名称
  formData: JSON.stringify({ // 需要打印的数据非常重要
    a: '1',
    templateName: '123', 
  }),
  templateCode: 'template1758023816234', // word 模板code
  responseType: 'docx',
  isDownload: true
}
const res = await this.Api.getPdf(query)
console.log('res:', res) // 二进制流

注意:这些参数,最简单的办法获取,可以从正常的打印功能的地址中解析获取,例如: http://10.15.15.151:13082/#/module/formDesigner/page/print?appName=AFCENTER&entityCode=ee.newres123&formId=1401&entityName=ee.sdf.OrderMaterial&formData={}&templateCode=template1765853133131&isPrint=true&type=&titleField=&codeField=

# 如何手动调用 getTempPdfUrl

const query = {
  appName: 'AFCENTER', // 当前应用名称
  entityCode: 'sj.Inventory', // 当前表单 code
  formId: '1', // 当前数据的id
  entityName: 'sj.three.Inventory', // 当前实体名称
  formData: JSON.stringify({ // 需要打印的数据非常重要
    a: '1',
    templateName: '123', 
  }),
  templateCode: 'template1758023816234', // word 模板名称
  responseType: 'docx',
  isDownload: true
}
const res = await this.Api.getPdf(query)
console.log('二进制流::', res)
const tempUrl = this.Api.getTempPdfUrl(res.data)
window.open(tempUrl)

← Excel套打 公共⽅法 →