【问题标题】:Dynamically adding Signature Tags to a DocuSign custom base64 pdf content through API in php通过 php 中的 API 将签名标签动态添加到 DocuSign 自定义 base64 pdf 内容
【发布时间】:2022-06-28 00:57:59
【问题描述】:

我想在我的 base64 自定义 pdf 模板的某些特定部分动态添加 DocuSign 签名标签,该模板是从我们的 Web 应用程序创建的,用户只需单击标签即可上传他/她的签名,而不是拖放他/她的签名到指定位置部分。

这是我的代码示例:

<?php

$pdfurl = 'assets/pdf/test-doc-docusign.pdf';
$docname = basename($pdfurl);
$pdfcontent = file_get_contents($pdfurl);
$base64content = base64_encode($pdfcontent);
$envelopjson = array();
$envelopjson['documents'] = array();
$envelopjson['documents'][0]['documentBase64'] = $base64content;
$envelopjson['documents'][0]['documentId'] = 57577;
$envelopjson['documents'][0]['fileExtension'] = "pdf";
$envelopjson['documents'][0]['name'] = $docname;
$envelopjson['emailSubject'] = "Please Sign";
$envelopjson['recipients'] = array();
$envelopjson['recipients']['signers'] = array();
$envelopjson['recipients']['signers'][0]['name'] = "user full name";
$envelopjson['recipients']['signers'][0]['email'] = "user email";
$envelopjson['recipients']['signers'][0]['recipientId'] = "458585";
$envelopjson['templateRoles'][0]['tabs']['signHereTabs'] = array();
$envelopjson['templateRoles'][0]['tabs']['signHereTabs'][0]['signHere']['xPosition'] = 500;
$envelopjson['templateRoles'][0]['tabs']['signHereTabs'][0]['signHere']['yPosition'] = 500;
$envelopjson['templateRoles'][0]['tabs']['signHereTabs'][0]['signHere']['documentId'] = $trnx_id;
$envelopjson['templateRoles'][0]['tabs']['signHereTabs'][0]['signHere']['pageNumber'] = 1;
$envelopjson['status'] = "sent";
$requestjson = json_encode($envelopjson);
$envelopeinfo = MakeAPICall("POST","v2.1/accounts/".$docusign_account_id."/envelopes",$requestjson,$access_token);

如何解决这个问题?

【问题讨论】:

    标签: php curl docusignapi


    【解决方案1】:

    您的问题是如何让您的应用程序在文档的不同位置动态添加 DocuSign 签名字段(标签)?

    有几种可用的技术,尤其是当您可以控制生成文档的软件时。

    对于以下技术,假设我们最终需要四个标签:此处的签名和签名者 1 和 2 的日期签名标签。

    自动放置字段

    您可以在文档中包含稍后用于放置使用自动放置功能的字段的文本。请参阅anchorString 属性。

    有几个技巧可能对您的用例有所帮助:

    1. 在您的源文档中,您可以将锚文本着色为白色(这样它就不会可见)。这样,您可以使用诸如“signer-1-sign-here”之类的锚文本,并且将为该字符串的每个实例创建一个选项卡。 (您确实需要编写一个 SignHere 选项卡来查找您的 anchorString“signer-1-sign-here”。)

    2. 您可以多次包含锚文本(即使在同一个信封中的不同文档中),并且标签将在每个位置创建。

    3. 如果您不包含锚文本,这不是错误。因此,您可以使用诸如“signer-1-optional-initials”之类的锚文本,如果它在文档中,则会放置一个首字母选项卡,否则不会发生任何事情。 (这假设您编写了一个查找该锚字符串的首字母选项卡。)

    智能部分

    另一种方法是使用 smart sections feature 并将您的文档创建为 HTML 文档,并在 HTML 中包含选项卡。

    【讨论】:

      【解决方案2】:

      templateRoles 对象用于将收件人分配给模板的角色。如果选项卡不是来自模板,则不能使用此对象添加选项卡。

      相反,您必须创建another API call 才能添加选项卡。请参阅 code example 展示如何更新包含 PHP 代码的模板中的选项卡。

      另外一种最佳做法是使用composite templates,它让您在一次 API 调用中添加模板、文档和选项卡时具有最大的灵活性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-17
        • 2010-09-08
        相关资源
        最近更新 更多