You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DocuSign在现有PDF文件中设置签名占位符?

关于DocuSign在PDF中设置签名占位符的问题

当然可以使用DocuSign在PDF文件中设置签名占位符,你的代码已经采用了锚点定位的方式来实现,不过可以从以下几个方面排查问题,确保功能正常:

  • 验证PDF中的锚点文本:代码里使用AnchorString = "/sn1/"作为锚点标记,必须确保你的PDF文件中确实存在/sn1/这段文本,DocuSign会自动识别该文本位置,并根据AnchorXOffset和AnchorYOffset的数值调整签名框的偏移位置。
  • 调整锚点单位与偏移值:你设置的AnchorUnits = "pixels"是合法单位,但如果签名位置不符合预期,可以尝试调整AnchorXOffset、AnchorYOffset的数值,或者切换为"inches"(英寸)、"centimeters"(厘米)这类更直观的单位。
  • 确认ID的唯一性:代码中文档ID设为"3"、收件人ID设为"1",只要确保这些ID在当前信封内唯一即可,不会影响功能。
  • 可选:直接指定坐标位置:如果不想依赖锚点文本,也可以通过直接设置坐标来固定签名占位符位置,示例代码如下:
SignHere signHere1 = new SignHere
{
    PageNumber = "1", // 指定签名所在页码
    XPosition = "150", // 横坐标
    YPosition = "250", // 纵坐标
    DocumentId = "3"  // 关联目标文档ID
};

附上你提供的完整代码:

public static EnvelopeDefinition MakeEnvelope(string signerEmail, string signerName, string signerClientId, string docPdf)
{
    byte[] buffer = System.IO.File.ReadAllBytes(docPdf);

    EnvelopeDefinition envelopeDefinition = new EnvelopeDefinition();
    envelopeDefinition.EmailSubject = "Please sign this document";
    Document doc1 = new Document();

    string doc1b64 = Convert.ToBase64String(buffer);

    doc1.DocumentBase64 = doc1b64;
    doc1.Name = "Lorem Ipsum"; // can be different from actual file name
    doc1.FileExtension = "pdf";
    doc1.DocumentId = "3";

    envelopeDefinition.Documents = new List<Document> { doc1 };

    Signer signer1 = new Signer
    {
        Email = signerEmail,
        Name = signerName,
        ClientUserId = signerClientId,
        RecipientId = "1",
    };

    SignHere signHere1 = new SignHere
    {
        AnchorString = "/sn1/",
        AnchorUnits = "pixels",
        AnchorXOffset = "10",
        AnchorYOffset = "20",
    };

    Tabs signer1Tabs = new Tabs
    {
        SignHereTabs = new List<SignHere> { signHere1 },
    };
    signer1.Tabs = signer1Tabs;

    Recipients recipients = new Recipients
    {
        Signers = new List<Signer> { signer1 },
    };
    envelopeDefinition.Recipients = recipients;

    envelopeDefinition.Status = "sent";

    return envelopeDefinition;
}

内容的提问来源于stack exchange,提问作者Sami In

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 10:27:18