我可以通过 REST API 成功地将各种选项卡添加到草稿信封的收件人。但是,当我通过网站的管理选项卡查看目标文档并检查选项卡上的设置时,位置值与我通过 REST API 输入的值完全不同。
有什么区别?为什么有区别?网页和 API 的计量单位到底是什么?
我可以通过 REST API 成功地将各种选项卡添加到草稿信封的收件人。但是,当我通过网站的管理选项卡查看目标文档并检查选项卡上的设置时,位置值与我通过 REST API 输入的值完全不同。
有什么区别?为什么有区别?网页和 API 的计量单位到底是什么?
如果您只是想确定要在 REST API 创建信封请求中使用的 X/Y 坐标值,以便在 DocuSign 中查看信封时选项卡显示在预期/所需位置,您可以尝试以下操作:
1) 使用 DocuSign 网络控制台,创建一个(草稿)信封并上传您将通过 API 发送的文档。还可以使用 Web 界面将标签拖放到文档上的适当位置。(另存为草稿信封。)例如,这是我添加了两个标签(SignHere 和 DateSigned)的文档:
2) 接下来,通过 REST API 请求检查该草稿信封的选项卡属性(X/Y 坐标):(https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{ acctId}}/envelopes/{{envelopeId}}/recipients?include_tabs=true&include_extended=true)。这是一个示例响应——根据 REST API,突出显示的值显示选项卡的 X/Y 坐标:
3) 最后,当在 DocuSign 中查看信封时,要创建一个带有放置在预期/所需位置的选项卡的信封,请使用 REST API“创建信封”请求,该请求包含与步骤 #1 中使用的相同文档并指定 X/Y您在第 2 步响应中收到的坐标(即,根据 REST API 的 X/Y 坐标)。例如,这里是创建信封 (JSON) 请求的“收件人”部分——使用我在第 2 步响应中收到的 X/Y 坐标。
"recipients": {
"signers" : [{
"email": "bobsemail@outlook.com",
"name": "Bob Adamson",
"recipientId": "1",
"routingOrder": "1",
"tabs": {
"signHereTabs": [
{
"recipientId": "1",
"tabLabel": "Customer_Signature",
"documentId": "1",
"pageNumber": "1",
"xPosition": "99",
"yPosition": "424"
}],
"dateSignedTabs": [
{
"recipientId": "1",
"tabLabel": "Customer_Date",
"documentId": "1",
"pageNumber": "1",
"xPosition": "373",
"yPosition": "456"
}]
}
}]
}
如果我随后查看(在 DocuSign 中)由我在步骤 3 中描述的“创建信封”请求创建的信封,我会看到选项卡正好放置在我期望/希望它们所在的位置:
显然,我在这里描述的过程并不理想(如果通过 API 设置/检索的 X/Y 坐标与控制台中显示的选项卡属性匹配会更好),但也许它会为您提供最终结果重新拍摄。
(将其作为“答案”而不是“评论”提供,以便我可以包含代码和图像。我意识到这不一定能回答您的问题 - 但希望 DocuSign 的某个人可以评论我概述的场景提供说明。)
有趣的。即使(无论出于何种原因)您通过 API 提供的 XY 坐标的测量单位与 DocuSign Web 控制台用于选项卡“位置”属性的测量单位不同——我希望乘数为是相同的。然而,情况似乎并非如此。
例如——如果我提交一个 API 请求来创建一个带有签名选项卡的草稿信封,该选项卡指定xPosition =100 和yPosition =100(如这里的部分请求 JSON 所示):
"recipients": {
"signers" : [{
"email": "bobsEmail@outlook.com",
"name": "Bob Adamson",
"recipientId": "1",
"routingOrder": "1",
"tabs": {
"signHereTabs": [
{
"recipientId": "1",
"tabLabel": "Customer_Signature",
"name": "KB_TEST_SIG",
"documentId": "1",
"pageNumber": "1",
"xPosition": "100",
"yPosition": "100"
}]
}
}]
然后使用 DocuSign Web 控制台打开该草稿信封并检查“签名”选项卡的“位置”属性,我得到以下信息:
请注意,即使 API 请求为xPosition指定了相同的精确值 (100) (定义:“指示页面上选项卡的水平偏移,在以文档左上角为原点的坐标空间中”)和yPosition(定义:“表示页面上选项卡的垂直偏移,在以文档左上角为原点的坐标空间中”),控制台中显示的From left和From top的值不再匹配彼此:
作为另一个测试,我尝试反过来做事情:
API 响应显示xPosition =48 和yPosition =27(即使我在通过控制台创建草稿信封时设置了 From left =100 和From top =100)。
从这一切中可以得出的唯一合乎逻辑的结论是,通过 API 指定的xPosition和yPosition坐标似乎没有以任何直接(且一致)的方式映射到标签属性中显示的从左和从顶部坐标安慰。希望 DocuSign 的某个人可以确认和/或澄清这种行为。
更奇怪的是,通过 SOAP API 返回的标签的 XY 坐标与通过 REST API 返回的 XY 坐标不匹配(当然,REST 和 SOAP 坐标都不匹配控制台显示的内容):