package document_request
import (
"encoding/json"
"git.sxidc.com/student-physical-examination/contract_lock_sdk/http"
"git.sxidc.com/student-physical-examination/contract_lock_sdk/model/common"
"os"
)
type DocumentAddbyfileRequest struct {
// core:true 【电子签约文件id】电子签约文件id 【作用】 查询需添加签署文档的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一,均传入以电子签约文件id为准
ContractId string `json:"contractId,omitempty"`
// core:true 【第三方业务系统文件id】第三方业务系统文件id 【作用】 查询需添加签署文档的电子签约文件 【传参】 电子签约文件id和第三方业务系统文件id必传其一,均传入以电子签约文件id为准
BizId string `json:"bizId,omitempty"`
// core:true 【签署文档】签署文档 【作用】 用于上传本地文件,文件上传后系统将自动将文档转换为PDF格式,方便后续进行签署 【传参】 1、支持的文件格式:pdf,doc,docx,wps,rtf,png,gif,jpg,jpeg,tiff,xls,xlsx,txt,ofd,dwg。 2、若上传CAD图纸(dwg格式),请先开启电子签章管理后台-自定义配置DWG_SWITCH。 3、当上传的文档为PDF时,PDF的版本需要>1.3;上传签署文档大小限制可在电子签章管理后台-电子用印设置-文件上传限制进行配置。 【特殊说明】 若电子签章管理后台配置签署文件仅允许上传指定格式文件,则此参数对应仅允许传入限定格式的本地文件
File *os.File `json:"file"`
// core:true 【签署文档名称】签署文档名称 【作用】 用于传入上传的签署文档的名称
Title string `json:"title"`
// core:true 【文档宽度】文件宽度 【传参】 1、单位:毫米。 2、传值不为空时(height同时不为空)按照传入的值生成文件 3、如果值为负数则生成的文件和原始文件相比会左右翻转 4、不传值时按照如下规则处理 (1)图片:按照A4的尺寸,同时根据图片宽高比,决定横竖版 宽<高:竖版;宽>高:横板 (2)txt格式:按照A4(210,297)竖版尺寸生成签署文档 (3)xls、xlxs格式:按照A4尺寸,根据表格内容宽高比,决定横竖版; 整体内容 宽<高:竖版;整体内容宽>高:横板 (4)pdf、doc、docx、wps格式:按照文件本身的尺寸和横竖样式生成签署文档
Width *float64 `json:"width,omitempty"`
// core:true 【文档高度】文件高度 【传参】 1、单位:毫米。 2。传值不为空时(width同时不为空)按照传入的值生成文件 3、如果值为负数则生成的文件和原始文件相比会上下翻转 4、不传值时按照如下规则处理 (1)图片:按照A4的尺寸,同时根据图片宽高比,决定横竖版 宽<高:竖版;宽>高:横板
(2)txt格式:按照A4(210,297)竖版尺寸生成签署文档 (3)xls、xlxs格式:按照A4尺寸,根据表格内容宽高比,决定横竖版; 整体内容 宽<高:竖版;整体内容宽>高:横板 (4)pdf、doc、docx、wps格式:按照文件本身的尺寸和横竖样式生成签署文档
Height *float64 `json:"height,omitempty"`
// inner-type:Json 【文件水印】文件水印 【作用】 1、可在签署文档上添加水印,允许传入多组水印 2、若新增的文件已添加数字签名,因添加文件水印会篡改文件导致数字签名失效,故文件水印不会生效
WaterMarks string `json:"waterMarks,omitempty"`
// inner-type:Json 【印章水印】印章水印 【作用】 可在印章外观上添加水印,防止签署文件上的印章被抠章后二次使用,允许传入多组水印 【特殊说明】 1、当用印流程中已预设文字水印并勾选通过接口传入内容,则传入的文字水印配置,将按传入顺序优先匹配已预设的水印,传入的参数中只有文字水印内容(content)传值生效,样式以用印流程预设的为准。其余传入的水印,以接口传入的内容生成新水印 2、当用印流程中未预设文字水印通过接口传入内容,或接口传入的印章类型、用印时间类型的水印时,以接口传入的内容生成新水印
StampWaterMarks string `json:"stampWaterMarks,omitempty"`
// 【加密pdf文件的查看密码】加密pdf文件的查看密码 【作用】 若文件被加密导致无法上传签署,可传入编辑密码,系统将自动解密文件,文件可正常上传 【特殊说明】 已有签名且有编辑密码的文件,若解密后原有文件签名将会失效
OpenPassword string `json:"openPassword,omitempty"`
// 【加密pdf文件的编辑密码】加密pdf文件的编辑密码 【作用】 若文件被加密导致无法上传签署,可传入编辑密码,系统将自动解密文件,文件可正常上传 【特殊说明】 已有签名且有编辑密码的文件,若解密后原有文件签名将会失效
EditPassword string `json:"editPassword,omitempty"`
// 【对文档加密限制文档编辑】对文档加密限制文档编辑 【作用】 1. 可选择对文档添加编辑口令进行加密,该文档进行签署后,可防止用户进行抠章或编辑操作,下载到本地也不能进行编辑或导出为Word 2. 仅在Office、WPS、福昕、adobe系列软件中才可限制不允许编辑,其余软件因产品自身功能规则不同,可能无法限制编辑 3. 已有数字签名的文件上传时不支持加密(加密将影响签名有效性) 4. 若后续需要获取文档的编辑口令,可调用/contract/getDocumentPassword 【传参】 取值范围:true(加密),false(不加密);不传值默认为:false(不加密)。
IsPassword *bool `json:"isPassword,omitempty"`
StampWaterMarksObject []*common.DocumentStampWaterMarkContent `json:"stampWaterMarksObject,omitempty"`
WaterMarksObject []*common.DocumentWaterMarkContent `json:"waterMarksObject,omitempty"`
}
func (obj DocumentAddbyfileRequest) GetUrl() string {
return "/document/addbyfile"
}
func (obj DocumentAddbyfileRequest) GetHttpParameter() *http.HttpParameter {
parameter := http.NewPostHttpParameter()
parameter.AddParam("contractId", obj.ContractId)
parameter.AddParam("bizId", obj.BizId)
parameter.AddParam("title", obj.Title)
parameter.AddParam("width", obj.Width)
parameter.AddParam("height", obj.Height)
parameter.AddParam("openPassword", obj.OpenPassword)
parameter.AddParam("editPassword", obj.EditPassword)
parameter.AddParam("isPassword", obj.IsPassword)
parameter.AddFiles("file", obj.File)
if obj.StampWaterMarksObject != nil {
jsonBytes, _ := json.Marshal(obj.StampWaterMarksObject)
parameter.AddParam("stampWaterMarks", string(jsonBytes))
} else {
parameter.AddParam("stampWaterMarks", obj.StampWaterMarks)
}
if obj.WaterMarksObject != nil {
jsonBytes, _ := json.Marshal(obj.WaterMarksObject)
parameter.AddParam("waterMarks", string(jsonBytes))
} else {
parameter.AddParam("waterMarks", obj.WaterMarks)
}
return parameter
}