跳转至

设计时打印数据预览(PrintDesignTimeRuntimeController)

设计器侧的打印数据预览接口:路径与 runtime 模块对齐(/api/runtime),供设计器打印预览 / hostRequestBridge.getPrintDatas 调用,按打印模板与参数解析实际打印数据。与设计时打印模板维护接口 print-designtime.mdPrintDesignTimeController,基址 /api/designtime/applications)区分。

  • 接口类型:REST 资源
  • 基址${myapps.context-path.designer:}/api/runtime(类级 @RequestMappingproduces = APPLICATION_JSON_VALUE
  • Tag:设计器侧打印数据预览

公共说明

  • 鉴权:是(需 designerToken)。控制器继承自 AbstractDesignTimeController(基类为 @RestController),通过 getUser() 从 designerToken JWT 中解析 SuperUserVO,并以其 id 作为 DES 解密密钥解密 applicationId/templateId。鉴权机制详见 index.md「鉴权说明」。
  • 路径变量{applicationId}{templateId} 为**按设计器用户 id DES 加密后的密文**(解密后才是真实设计时 ID)。
  • 响应:统一 Resource(见 ../index.md「统一响应结构」)。成功 errcode=0;异常 errcode=500
  • HTTP 方法:受 CommonSecurityFilter 限制,仅允许 GET/POST/HEAD/OPTIONS
  • 预览标记:解析打印参数时强制设置 _designPreview=true,下游按此跳过持久化等运行时副作用。

1. 获取打印数据(设计器预览)

applicationIdtemplateId 解析打印模板所配置的数据源查询,返回打印数据列表。POST JSON body 提交 printTemplateIddocIds 等参数,行为对齐 runtime 同名端点。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/{applicationId}/print/{templateId}/data(完整:{designer-context}/api/runtime/{applicationId}/print/{templateId}/data
  • 鉴权:是(需 designerToken)
  • Tag:设计器侧打印数据预览

请求参数

参数名 位置 类型 必填 说明
applicationId path string 软件 id(DES 加密密文,按当前设计器用户 id 解密)
templateId path string 打印模板 id(DES 加密密文,按当前设计器用户 id 解密)
body body object(JSON) 打印参数 JSON,由 PrintDataRequestUtil.buildPrintParams 与 URL/表单参数合并

请求体

JSON 对象,常见字段包括 printTemplateIddocIdsdialogParams 等;具体字段由 PrintDataRequestUtil.buildPrintParams 解析。

{
  "printTemplateId": "<打印模板 id>",
  "docIds": ["<文档 id>", "..."],
  "...": "..."
}

请求示例

POST /api/runtime/{applicationId}/print/{templateId}/data HTTP/1.1
Content-Type: application/json

{
  "printTemplateId": "<模板 id>",
  "docIds": ["<docId1>"]
}

响应

结构:统一 Resource(见 ../index.md「统一响应结构」)。 dataList<Map<String, Object>>,每个元素为一条打印数据记录(字段由模板 dataSource 查询结果决定)。

成功示例

{
  "errcode": 0,
  "errmsg": "ok",
  "data": [
    { "field1": "...", "field2": "...", "...": "..." }
  ],
  "errors": null
}
失败示例
{ "errcode": 500, "errmsg": "<异常信息>", "data": null, "errors": null }