我有一个包含多个文本字段的pdf。我使用Echosign的教程来创建文本标签来创建标签,但Echosign API专家告诉我,我被告知要使用的API方法(createURLWidget)不允许使用预填充后缀预填充数据。
我正在使用Ruby来运行这些方法。
我的字段名称是full_name,我用虚假的文件密钥切换了实际的文件密钥。
params =
{
:name => 'Agreement',
:document_key => '3434hkfhegeg',
:mime_type => 'application/pdf',
:fields =>
{
:full_name => 'Mary'
}
}
我尝试过的文字标签是:
full_name_es_:sender:fullname
full_name_es_:signer
full_name_es_:signer1
full_name_es_:signer2
full_name_es_:sender
以下是命名语法:
<field_name>_es_<:Role><:Field Type>
我试过它们只读而不是。
当我在终端
中运行“ruby create_url_widget.rb”时这是我回复的相关部分:
<mergeFieldInfo><ns9:MergeFields/><ns9:fieldName>full_name</ns9:fieldName>
<ns9:defaultValue>Mary</ns9:defaultValue></ns9:MergeFields></mergeFieldInfo>
还会生成一个URL,并在echosign网站的页面中嵌入正确的PDF。但是,full_name字段所在的位置没有文本。如果我将该文本设为“只读”,则不再是填写框,如果我需要填写,则框是红色轮廓的,当我有一个我测试的日期文本标记时,它会填充它适当的,所以我知道它在做什么。
我已经使用了soupUI尝试更改我的代码而仍然没有运气。
如果有人需要我提供更多代码,请与我联系。如果有人有任何建议,请告诉我,我真的被卡住了。我甚至不确定这种API方法肯定会这样做,有没有人知道这个或我应该使用其他方法吗?
感谢您提前的时间!
答案 0 :(得分:0)
预填充标签。您可以使用预填标记(例如full_name_es:prefill)对文档进行测试,确保在将文档发送给收件人时选择“预览,位置签名或添加表单字段”选项。在预览位置屏幕中,您还可以为放置在文档中的(标记)字段提供默认值。 es :签名者[#]:fullname应该在使用sendDocument方法发送文档签名时捕获签名者的全名(full_name_es_:sender:fullname不是有效的文本标记,不起作用) 。您似乎正在尝试创建一个通用小部件,您可以重复使用它来捕获来自不同签名者的签名。通用窗口小部件的行为有所不同,因为您事先不知道签名者(createURLWidget不接受recipeint电子邮件),因此它不会预填充签名者名称。如果要为特定签名者生成此窗口小部件,则应考虑使用其他窗口小部件生成方法(createPersonalUrlWidget)。 我不知道ruby所以我不能对你的ruby代码提供任何帮助,但如果你能提供我的源代码和文档,我可以试一试。
答案 1 :(得分:0)
我解决了!除了预先存在的mergeFieldInfo和mergeFields之外,我还需要添加一个MergeField参数。由于每个文本字段都需要它自己的MergeField参数,因此必须将其放在each_pair do循环中。
我的xml构建器中的代码:
if has?( :fields, Hash )
xml.mergeFieldInfo do
xml.tag! 'ns9:mergeFields' do
fields.each_pair do | key, value |
xml.tag! 'ns9:MergeField' do
xml.tag! 'ns9:fieldName', key.to_s
xml.tag! 'ns9:defaultValue', value.to_s
end
end
end
end
end
工作文字标签示例:
full_name_es_:signer1
我的回答是什么样的:
<mergeFieldInfo><ns9:mergeFields>
<ns9:MergeField><ns9:defaultValue>Kristoph</ns9:defaultValue><ns9:fieldName>full_name</ns9:fieldName></ns9:MergeField>
<ns9:MergeField><ns9:defaultValue>123 Mockingbird Lane</ns9:defaultValue><ns9:fieldName>address_1</ns9:fieldName></ns9:MergeField>
</ns9:mergeFields></mergeFieldInfo>