填充内容生成PDF

更新时间:2022-09-27 14:15:47

文档变更说明

原接口的中文名称由“通过模板创建文件”变更为“填充内容生成PDF”,其接口功能未做调整。

接口描述

通过动态传入数据的方式填充模板文件内容并生成PDF文件。

注意:

(1)文件名 fileName 参数值不可以含有以下特殊字符:

/ \ : * " < > | ?以及所有emoji表情

(2)内容填充前必须已完成模板文件内填写控件的设置。

接口地址

/v1/files/createByTemplate

请求方法

POST

请求头

提供两种安全接入方式,开发者可选择其中一种方式进行对接,对应参数如何获取,参考文档【请点击】。

方式一:请求签名鉴权(优先推荐)

请求头入参示例如下:

参数名称

类型

必选

参数说明

X-Tsign-Open-App-Id

string

应用ID

Content-Type

string

application/json;charset=UTF-8

X-Tsign-Open-Ca-Timestamp

string

API 调用者传递时间戳,值为当前时间的毫秒数,也就是从1970年1月1日起至今的时间转换为毫秒,时间戳有效时间为15分钟,为了防重放攻击

Accept

string

建议统一填写 */*

X-Tsign-Open-Ca-Signature

string

签名字符串

Content-MD5

string

当请求 Body 非 Form 表单时,可以计算 Body 的 MD5 值传递给云网关进行 Body MD5 校验。建议当请求 Body 非 Form 表单时,加上此请求头。

X-Tsign-Open-Auth-Mode

string

选择请求方式进行鉴权,固定值,Signature

方式二:OAuth2.0鉴权(不推荐使用)

当安全接入选择OAuth2.0鉴权方式请点击查阅详情,请求头入参示例如下:

参数名称

类型

必选

参数说明

X-Tsign-Open-App-Id

string

应用ID

X-Tsign-Open-Token

string

通过获取鉴权Token接口返回

Content-Type

string

application/json; charset=UTF-8


请求参数

参数名称

类型

必选

参数类型

参数说明

name

string

body

文件名称(带文件扩展名)

注意:文件名称不支持以下9个字符:/ \ : * " < > | ?以及所有emoji表情

templateId

string

body

模板编号

(1)正式环境可通过e签宝网站->企业模板下创建和查询

(2)通过上传方式方式创建模板接口获取模板id和上传链接,文件流上传文件成功之后,模板id可用于这里

simpleFormFields

object

body

输入项填充内容,key:value 传入;可使用输入项组件id+填充内容,也可使用输入项组件key+填充内容方式填充

如何进行图片控件填充【请点击

strictCheck

boolbean

body

开启simpleFormFields为空校验,默认false,

传 false:允许simpleFormFields为空,此时模板中所有待填写字段均为空值;

传 true: 当模板中存在必填字段时,不允许simpleFormFields为空,否则会报错 "创建合同失败: 'null'填充内容缺失";

注:使用此参数可以实现拦截必填字段传null或不传值的情况。

公共响应参数

参数名称

类型

必选

参数说明

code

int

业务码,0表示成功

message

string

信息

data

object

业务信息

响应参数

展开全部参数参数名称

类型

必选

参数说明

code

int

业务码,0表示成功

message

string

信息

data

object

业务信息

fileId

string

文件ID

fileName

string

文件名称

downloadUrl

string

PDF文件下载链接,有效期60分钟。

请求示例  

POST https://openapi.esign.cn/v1/files/createByTemplate


{
    "name":"模板文件ten",
    "simpleFormFields":{
        "name":"测试甲方",
        "yifang":"测试乙方"
    },
    "templateId":"bd4f8b3fc02047a9be661d164eceb288"
}

响应示例

{
    "code":0,
    "data":{
        "downloadUrl":"https://esignoss.oss-cn-hangzhou.aliyuncs.com/1111563786/677c0013-5f2f-4306-a0d6-78ae96b6acd4/three_page.pdf?Expires=1561465463&OSSAccessKeyId=LTAIdvHfiVrzDKbE&Signature=SJPYKClVxXbvJUOjwnvhYUXS15A%3D",
        "fileId":"b1a149a2968a466984864cc222a02e9c",
        "fileName":"模板文件"
    },
    "message":"成功"
}

错误码

错误码

错误描述

解决方案

401

1.token过期了

2.header请求头不正确

3.apiurl和应用ID环境不对应,例如apiurl是模拟环境,应用ID是正式环境的

1430601

创建合同失败: 'xxx'的内容超出区域

检查添加输入项组件/v1/docTemplates/{templateId}/components接口调用的时候,设置的输入项组件宽度和高度是不是太小了

1430601

创建合同失败: 填充内容缺失

问题原因:

(1)E签宝官网获取的模板id,在通过模板创建文件的时候只支持输入项组件id+填充内容

(2)如果是接口(上传方式创建模板)获取的模板id,这个是模板中有一项或者几项没有填,可以用查询模板详情查出来,然后比照一下填充内容,看看缺了哪一个

解决办法:

(1)E签宝官网获取的模板id,在通过模板创建文件的时候只支持输入项组件id+填充内容

(2)先调用接口/v1/docTemplates/{templateId}(查询模板详情)接口,或者通过Adobe Reader软件看下文档的输入项组件一共有几个,在调用通过模板创建文件接口的时候这些输入项组件必须都填充上


我要纠错