使用DocuSign eSignature SDK for C#:实现签署人1查看签署人2的FullName
解决DocuSign中签署人1查看签署人2全名的问题
完全可以实现,不需要添加重复文本框,通过DocuSign的字段绑定和可见性设置就能解决,具体方案如下:
- 直接利用DocuSign的收件人合并字段,给签署人1添加一个只读文本标签,标签值引用签署人2的姓名,同时限制该标签仅对签署人1可见。
- 这种方式不会在签署人2的视图中生成重复内容,因为标签的可见性被精准控制。
用C# SDK实现的核心代码示例:
// 给签署人1添加只读文本标签,直接引用签署人2的姓名 var signer1ReadOnlyLabel = new Text { DocumentId = "1", // 对应目标文档的ID PageNumber = "1", XPosition = "100", // 标签位置坐标 YPosition = "100", RecipientId = "1", // 签署人1的ID ReadOnly = "true", // 设置为只读,防止签署人1修改 Value = "{{recipients.signer2.name}}", // 直接引用签署人2的姓名字段 RecipientVisibility = "1" // 仅允许签署人1看到该标签 }; // 将标签添加到信封的Tabs集合中 envelopeDefinition.Tabs = new Tabs { Texts = new List<Text> { signer1ReadOnlyLabel } };
如果签署人2的姓名是提前已知的,也可以先将其存入信封级自定义字段,再把签署人1的标签绑定到这个字段,效果是一样的:
// 创建信封自定义字段存储签署人2姓名 var envelopeCustomFields = new EnvelopeCustomFields { TextCustomFields = new List<TextCustomField> { new TextCustomField { Name = "Signer2FullName", Value = "签署人2的实际姓名", Show = false // 不在信封详情页显示,仅内部使用 } } }; // 绑定自定义字段到签署人1的标签 var signer1ReadOnlyLabel = new Text { DocumentId = "1", PageNumber = "1", XPosition = "100", YPosition = "100", RecipientId = "1", ReadOnly = "true", Value = "{{envelopeCustomFields.Signer2FullName}}", RecipientVisibility = "1" }; // 将自定义字段和标签加入信封定义 envelopeDefinition.EnvelopeCustomFields = envelopeCustomFields; envelopeDefinition.Tabs = new Tabs { Texts = new List<Text> { signer1ReadOnlyLabel } };
两种方案都能保证签署人1正常查看签署人2的全名,同时签署人2的视图不会出现该标签,避免重复内容问题。
内容的提问来源于stack exchange,提问作者Yervand Mazlumyan
相关产品推荐
相关产品推荐

