我们的团队已经使用Docusign大约一年了,我们一直注意到这个问题,然后消失了几周,现在又回来了。每次我们生成一个新的模板,并将文本选项卡锚定在文档的某个位置,标签就会被复制到文档的左上角。生成的文档在第一页的角落有一堆重叠的文本字段,看起来非常不专业和混乱。
下面是模板的样子。堆叠在一起的两个字段很难看到,因为它们已经缩小到最小大小,但是如果单击它们,我可以看到它们的标签与页面上的两个字段(broker_name和sign_date)相匹配。

然后,在由此模板构建的信封的签名仪式上,空字段将被填充数据,并显示在角落中。

我们使用以下代码生成Tabs对象:
# Returns a Tabs object with name and date tabs. For envelopes that only contain those two fields.
def generate_name_date_tabs(name, date):
name = Text(document_id = '1', page_number = '1', recipient_id = '1', value=name, tab_label = 'eh_broker_name')
date = Text(document_id = '1', page_number = '1', recipient_id = '1', value=date, tab_label = 'eh_sign_date')
return Tabs(text_tabs=[name, date])我们在这里生成模板和信封:
def create_application_envelope(destination_email, base64_file_content, signer_name="PlanProvide", signer_tabs=None, is_embedded_signing=False):
# Create an application envelope
# docusign_auth.DSClient.login("jwt")
account_id = session["ds_account_id"]
envelope_api = docusign_api_handler.get_envelope_api()
templates_api = docusign_api_handler.get_templates_api()
access_code = generate_access_code()
signer = Signer(
email=destination_email,
name=signer_name,
recipient_id="1",
routing_order="1",
role_name="signer",
# Use a six-character access code so URL doesn't expire
access_code=access_code,
tabs=signer_tabs
)
doc = Document(
document_base64 = base64_file_content,
name = "Your application generated by PlanProvide",
file_extension = "pdf",
document_id = 1,
# Detect Adobe form field names
transform_pdf_fields = True
)
documents = [doc]
template_req_object = EnvelopeTemplate(
documents=documents, email_subject="Please sign this document",
recipients=Recipients(signers=[signer]),
description="Template created via the API",
name="Application Template",
shared="false",
status="created"
)
try:
res = templates_api.create_template(account_id=account_id, envelope_template=template_req_object)
except Exception as e:
raise DocusignError(e)
try:
template_id = res.templates[0].template_id
except:
template_id = res.template_id
envelope_definition = EnvelopeDefinition(
email_subject="Please sign this document sent from the Python SDK",
template_id=template_id,
template_roles=[signer],
status="sent" # requests that the envelope be created and sent.
)
# Send it to an email
try:
results = envelope_api.create_envelope(account_id=account_id, envelope_definition=envelope_definition)
except Exception as e:
raise DocusignError(e)
return {
"envelope_id": results.envelope_id,
"access_code": access_code
}据我所知,Tabs对象在模板创建之前仍然只有两个文本字段,所以我不知道为什么会出现重复的文本字段。对此问题的任何帮助或想法将不胜感激!
编辑:这里是我们调用generate_name_date_tabs()的地方:
tabs = docusign_api_handler.generate_name_date_tabs(name, datetime.today().strftime('%m-%d-%y'))
try:
resp = application_services.create_application_envelope(
destination_email,
base64_file_content,
signer_name=name,
signer_tabs=tabs, is_embedded_signing=False)发布于 2021-01-11 23:31:35
我想我看到问题了。
通过提供signer字段来定义tabs中的选项卡。在后面的代码中,在创建信封时,再次在templateRoles中提供相同的templateRoles
except:
template_id = res.template_id
envelope_definition = EnvelopeDefinition(
email_subject="Please sign this document sent from the Python SDK",
template_id=template_id,
template_roles=[signer],
status="sent"我会将template_roles=[signer]改为templateRoles=[{"email":"email@domain.com", "name": "name", "roleName" : "signer"}]并更新
signer = Signer(
recipient_id="1",
routing_order="1",
role_name="signer",
# Use a six-character access code so URL doesn't expire
access_code=access_code,
tabs=signer_tabs
)不包括姓名和电子邮件。
如果这不起作用,我们需要挖一些more.Can --请告诉我你在哪里叫generate_name_date_tabs
您还能在下面的代码中显示分配给signer_tabs的内容吗?
signer = Signer(
email=destination_email,
name=signer_name,
recipient_id="1",
routing_order="1",
role_name="signer",
# Use a six-character access code so URL doesn't expire
access_code=access_code,
**tabs=signer_tabs**
)如果你看到这个问题消失了,出现在不同的版本中,我很可能是个bug。请告诉我们,上述任何一项是否有助于缩小问题范围。
发布于 2021-01-12 02:44:16
首先,如果您希望在签署日期/时间时,不要使用dateSignedTab. textTab,而是使用textTab自动填写签署文档的日期/时间。
第二,您使用的是模板。如果您的模板有选项卡定义--除了代码中的选项卡之外,它们还在那里。
第三,如果不提供位置(X/Y坐标)而不提供anchorText,则选项卡将放置在0/0位置或左上角,就像您看到的那样。
因此,位于正确位置的可能来自模板,代码中的一个显示在左上角,因为没有指定位置。
https://stackoverflow.com/questions/65671858
复制相似问题