1

我可以通过 REST API 成功地将各种选项卡添加到草稿信封的收件人。但是,当我通过网站的管理选项卡查看目标文档并检查选项卡上的设置时,位置值与我通过 REST API 输入的值完全不同。

有什么区别?为什么有区别?网页和 API 的计量单位到底是什么?

4

2 回答 2

2

如果您只是想确定要在 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 坐标:

REST API 响应

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 坐标与控制台中显示的选项卡属性匹配会更好),但也许它会为您提供最终结果重新拍摄。

于 2013-11-07T20:03:31.123 回答
1

(将其作为“答案”而不是“评论”提供,以便我可以包含代码和图像。我意识到这不一定能回答您的问题 - 但希望 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 控制台打开该草稿信封并检查“签名”选项卡的“位置”属性,我得到以下信息:

Web 控制台中的标记属性

请注意,即使 API 请求为xPosition指定了相同的精确值 (100) (定义:“指示页面上选项卡的水平偏移,在以文档左上角为原点的坐标空间中”)和yPosition(定义:“表示页面上选项卡的垂直偏移,在以文档左上角为原点的坐标空间中”),控制台中显示的From leftFrom top的值不再匹配彼此:

  • 左起:208
  • 从上到下:252

作为另一个测试,我尝试反过来做事情:

  1. 通过 Web 控制台创建/保存草稿信封,其中单个签名选项卡具有位置属性From left =100 和From top =100。
  2. 通过 API 请求检查选项卡属性:(https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/recipients?include_tabs =true&include_extended=true

API 响应显示xPosition =48 和yPosition =27(即使我在通过控制台创建草稿信封时设置了 From left =100 和From top =100)。

从这一切中可以得出的唯一合乎逻辑的结论是,通过 API 指定的xPositionyPosition坐标似乎没有以任何直接(且一致)的方式映射到标签属性中显示的从左从顶部坐标安慰。希望 DocuSign 的某个人可以确认和/或澄清这种行为。

更奇怪的是,通过 SOAP API 返回的标签的 XY 坐标与通过 REST API 返回的 XY 坐标不匹配(当然,REST 和 SOAP 坐标都不匹配控制台显示的内容):

  1. 使用 REST API 创建草稿信封。包括一个带有坐标的SignHereTab :xPosition = 100,yPosition = 100。
  2. 通过 REST API 检查标签属性 (https://{{env}}.docusign.net/restapi/{{version}}/accounts/{{acctId}}/envelopes/{{envelopeId}}/recipients?include_tabs=真&include_extended=真)。标记坐标与预期一致: xPosition = 100,yPosition = 100。
  3. 通过 SOAP API (RequestStatusEx) 检查标签属性。响应中返回的标记坐标: xPosition = 208, yPosition = 208
  4. 通过控制台检查标签属性(编辑信封>>查看标签属性)。“位置”下显示的标记坐标:左起= 208。上起= 252。
于 2013-11-02T00:46:53.187 回答