DocuSign - 标签放置

时间:2014-03-27 15:39:02

标签: soap tags docusignapi

我一直在使用DocuSign的基于SOAP的API调用" CreateandSendEnvelope"在指定的DocuSign帐户中创建信封。一切似乎工作正常,除了我在为收件人配置标签时遇到困难。我正在使用锚标签以及常规标签。锚标签更容易放置,因为我可以指定标签单元。

我想知道以下内容..

1)对于常规标签(不是锚标签),默认单位是什么?我可以在配置常规标签时指定设备吗?

2)在DocuSign中创建信封时,当我向文档添加新标签时,DocuSign会立即配置标签位置并将位置放在"从左边" "从顶部"字段。

我想知道这些职位的单位。我已尝试将这些位置用作常规和锚标签中的X和Y偏移,但根本不起作用。 如果DocuSign可以提供从这些单位到英寸/厘米/像素的某种转换,那么我们将更容易配置标签位置。

3)我也尝试从使用状态更新API调用创建的信封中检索标记位置,但我也发现了相同的值。

以下是我用来添加标记的代码片段。

    If Len(oldtab.AnchorTabString) > 0 Then
                'this is an anchor tag
                Dim tabitem As DocuSignServ.AnchorTab = New DocuSignServ.AnchorTab
                tabitem.AnchorTabString = oldtab.AnchorTabString
                If oldtab.AnchorTabUnit = "Inches" Then
                    tabitem.Unit = UnitTypeCode.Inches
                ElseIf oldtab.AnchorTabUnit = "Pixels" Then
                    tabitem.Unit = UnitTypeCode.Pixels
                ElseIf oldtab.AnchorTabUnit = "Centimeters" Then
                    tabitem.Unit = UnitTypeCode.Cms
                ElseIf oldtab.AnchorTabUnit = "Millimeters" Then
                    tabitem.Unit = UnitTypeCode.Mms
                End If

                tabitem.UnitSpecified = True
                tabitem.XOffset = CDbl(oldtab.XPosition)
                tabitem.YOffset = CDbl(oldtab.YPosition)

                tabitem.IgnoreIfNotPresent = oldtab.IgnoreIfNotPresent
                tab.AnchorTabItem = tabitem
            Else
                'this is a regular tag
                tab.PageNumber = oldtab.PageNumber                    
                tab.XPosition = oldtab.XPosition
                tab.YPosition = oldtab.YPosition                    
            End If

请告知..

单宝元

2 个答案:

答案 0 :(得分:1)

您的问题的答案:

1)常规(即非锚标签)的默认单位是像素。例如,如果您设置xPosition = 100且yPosition = 50,那么这意味着标记将放置在右侧100个像素和文档左上角50个像素的位置。正如API文档所述,默认坐标空间的原点位于文档的左上角(每页)。

2)再次,单位是像素。要测试,您可以为获取收件人 API调用信息,这是我对#3的回答。我刚刚测试了调用,它确实返回了标签位置,以像素为单位:

3)这是您可以进行的API调用:

GET https://{{server}}/restapi/{{apiVersion}}/accounts/{{accountId}}/envelopes/{{envelopeId}}/recipients/{{recipientId}}/tabs

X-DocuSign-Authentication: <DocuSignCredentials><Username>{name}</Username><Password>{password}</Password><IntegratorKey>{integrator_key}</IntegratorKey></DocuSignCredentials> Accept: application/json Content-Type: application/json

示例回复:

{
  "signHereTabs": [
    {
      "name": "Sign Here",
      "tabLabel": "Signature 1",
      "scaleValue": 1.0,
      "optional": "false",
      "documentId": "1",
      "recipientId": "152935b3-ace6-481f-be92-f2785e0bf28c",
      "pageNumber": "1",
      "xPosition": "474",
      "yPosition": "265",
      "tabId": "937521e5-7f3a-4a8a-9602-639c63a2b369"
    }
  ]
}

答案 1 :(得分:0)

非常感谢您的详细解答。

为了找出文档上的标记位置,这就是我所做的..

1)我在DocuSign帐户中创建了一个草稿信封,并添加了一些标签 - 常规和锚定。

2)通过单击标签的属性,我得到了标签的位置坐标(以像素为单位)。

3)然后我尝试使用API​​调用(基于SOAP的API - CreateandSendEnvelope)创建信封,其中    我已经包含了相同的文档,并创建了与草稿信封中相同的标签。    我已经使用从标签属性中检索到的值指定了标签的X / Y坐标    信封草稿。

4)我无法创建信封并收到错误..    &#34;标签位于页面之外。标签&#34; signHere&#34;位于第1页之外。&#34;

5)我也尝试从您指定并尝试过使用的API调用中检索制表位置    这些值使用API​​调用创建信封,但得到了相同的错误。 我的目标是首先在DocuSign中创建一个信封,并获取所有标签的标签位置,这样我就不会 我必须在使用API​​调用创建信封时自己配置所有标记。

看起来,我检索的标签位置不是可用于创建信封的实际标签位置 使用API​​调用!