DocuSign中用JSON标记添加预填充标签不显示的问题求助
问题描述
我正在创建HTML文档,希望使用JSON标记来放置标签。这个方法对签署者的常规标签有效,但尝试用相同方式添加发送者的预填充标签时,所有预填充标签都不显示。我用CompositeTemplate生成信封,因为预填充标签不属于任何收件人,所以把它放在文档层级,代码片段如下:
EnvelopeDefinition().apply { emailSubject = ... emailBlurb = ... this.status = "created" compositeTemplates = listOf( CompositeTemplate().apply { document = Document().apply { documentId = "1" name = "some document.pdf" htmlDefinition = "<div>{{\"tabLabel\": \"exampleTextTab\"}}</div>" tabs = Tabs().apply { prefillTabs = listOf( PreFillTab().apply { tabLabel = "exampleTextTab" font = "arial" fontSize = "size8" locked = "true" } ) }
解决方案
预填充标签不能直接挂载在Document对象的tabs属性下,需要调整结构来实现:
- 将预填充标签移至CompositeTemplate的
inlineTemplates中,而非文档层级 - 在inlineTemplate内创建一个占位收件人(比如用抄送人类型),把预填充标签放在该收件人的
tabs.prefillTabs里 - 确保JSON标记的tabLabel和预填充标签的tabLabel完全匹配,同时必须设置预填充的具体值
调整后的代码示例:
EnvelopeDefinition().apply { emailSubject = ... emailBlurb = ... this.status = "created" compositeTemplates = listOf( CompositeTemplate().apply { document = Document().apply { documentId = "1" name = "some document.pdf" htmlDefinition = "<div>{{\"tabLabel\": \"exampleTextTab\"}}</div>" } // 新增inlineTemplate承载预填充标签 inlineTemplates = listOf( InlineTemplate().apply { sequence = "1" recipients = Recipients().apply { // 创建占位抄送人,仅用于承载预填充标签 carbonCopies = listOf( CarbonCopy().apply { recipientId = "99" name = "Placeholder" email = "placeholder@example.com" tabs = Tabs().apply { prefillTabs = listOf( PreFillTab().apply { tabLabel = "exampleTextTab" font = "arial" fontSize = "size8" locked = "true" value = "这里是预填充的内容" // 必须设置填充值 } ) } } ) } } ) } ) }
关键说明
- 预填充标签必须关联到某个收件人实体,哪怕是占位的抄送人,无法直接绑定到文档本身
- 占位收件人不会收到邮件,也无需参与签署,仅作为预填充标签的载体存在
- 若未设置
value属性,预填充标签即使显示也会是空内容
内容的提问来源于stack exchange,提问作者Michael X
相关产品推荐
相关产品推荐

