当前位置: 首页 > 知识库问答 >
问题:

如何通过API/SDK指定文本框在PDF上签名?

冯祺
2023-03-14

我使用的是SDK中的eSign模型。我实例化了一个新的docusign.esign.model.SignHere对象。我需要以某种方式将此处签名选项卡与PDF上的文本框关联吗?我尝试单独设置每个属性(如下所示),但没有得到预期的结果。同样,我希望将docusign.esign.model.Signhere选项卡与我的PDF中的预定义文本框关联起来。

var SignHereTab = new DocuSign.eSign.Model.SignHere();
SignHereTab.TabId = "<signature>";
SignHereTab.Name = "<signature>";
SignHereTab.AnchorCaseSensitive = "<signature>";
SignHereTab.CustomTabId = "<signature>";

或者,我是不是搞错了?如果我不能用文本框这样做,我可以用文本字段这样做吗?如果使用字段更好,我应该使用什么代码来将sign here选项卡与字段相关联?同样,我宁愿不使用X/Y或模板。

共有1个答案

吴修洁
2023-03-14

我是否正确地理解这是你想要完成的事情?

  • 使用API创建一个信封,并将PDF指定为文档
  • 根据字符串 在PDF中的显示位置,在文档中自动放置SignHere选项卡

如果是这种情况,那么您需要使用DocuSign所称的锚文本--锚文本是以普通文本形式存在于文档中的字符串(即,不是在文本框中,而是在页面上以普通文本形式存在)。本页的“获取要签名的文档”部分提供了如何使用锚文本的说明(甚至提供了包含锚文本的示例文档)。那一页的摘录:

Open Mutual_NDA.pdf in a PDF viewer. Search for the strings “signer1name”, “signer1sig”, and “signer1date”. You’ll notice that the search matches but that the text is not visible. These strings are regular text in the document. Their text color has been set to white, so they can’t be see in the document. But DocuSign can find them, and use them as anchor text to place the tabs (the signature, name, and date fields).
"recipients": {
    "signers": [
        {
            "roleName": "Signer1",
            "recipientId": "1",
            "name": "John Doe",
            "email": "johnDoe@test.com",
            "tabs": {
                "signHereTabs": [
                    {
                        "anchorString": "<signature>",
                        "anchorIgnoreIfNotPresent": true,
                        "documentId": "1", 
                        "optional": false, 
                        "tabLabel": "Signature"
                    }
                ]
            }
        }
    ]
}

更新#1

如果签名出现在PDF上的文本框中很重要,您仍然可以使用锚文本来实现这一点。例如,只需将锚文本字符串(例如:)放在PDF中希望签名标记出现的文本框下方,指定anchorYOffset属性和anchorUnits属性告诉DocuSign希望签名选项卡相对于锚字符串位置出现的位置。在该示例中,API请求中签名选项卡的结构如下:

"signHereTabs": [
    {
        "anchorString": "<signature>",
        "anchorXOffset": "0", 
        "anchorYOffset": "-10",
        "anchorUnits": "pixels",
        "anchorIgnoreIfNotPresent": true,
        "documentId": "1", 
        "optional": false, 
        "tabLabel": "Signature"
    }
]

最后(供您参考),下面是与锚定字符串相关的选项卡属性的完整列表:

 类似资料:
  • 我已经成功地使用CreateEnvelope API方法将信封(包含多个文档)发送给客户端进行签名。我还使用eventNotification对象成功地连接了回调URL,如本问题所述:

  • 我可以用以下代码填充文本框注释,但文本不会出现在某些阅读器中,比如Adobe Acrobat,尽管它确实出现在Chrome和其他基于Webkit的浏览器中。我试图填写的PDF文件不使用AcroForms或FDF。我使用的是ApachePDFBox,但我认为PDF库中没有太大差异,即使是跨语言/平台。 我尝试过将我的PDF输出与填充Chrome的文档进行比较,但我看到的唯一区别是默认外观(DA)属性

  • 本文向大家介绍Dropbox API 在JavaScript中通过jQuery从文本上传文件,包括了Dropbox API 在JavaScript中通过jQuery从文本上传文件的使用技巧和注意事项,需要的朋友参考一下 示例 <ACCESS_TOKEN> 应该用OAuth 2访问令牌替换。

  • 我需要使用外部服务签署pdf文档,该服务将返回PKCS1签名。这意味着我必须在IExternalSignatureContainer实例中添加公钥。我使用iText 7进行整个签名过程。 在iText网站上有一个关于这种方法的很好的例子 我在一个文件中创建了整个演唱过程的示例。必需的引用: null 示例代码(为控制台应用程序准备好的一个文件中的两个类):

  • 我想通过使用锁签署一个pdf文件。我正在使用PDFBox 2.0.9 我想实现的流量是: null 我可以签名,更改字段值,然后再次签名,签名就可以了。问题是当我在第二个签名之后更改字段的值时,签名仍然有效。我希望在上次更改后,第二个签名一定是无效的。