1

我有一个包含多个文本字段的 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 方法是否会做到这一点,有人知道这一点还是我应该使用另一种方法?

提前感谢您的时间!

4

2 回答 2

0

当要求发件人在发送文档以供签名之前提供某些数据时,应该使用预填充标签。您可以通过在文档中使用预填充标签(例如 full_name_es:prefill)来测试这一点,确保在将文档发送给收件人进行签名时选择“预览、定位签名或添加表单域”选项。在预览位置屏幕中,您还可以为已放置在文档中的(标记)字段提供默认值。 es:signer[#]:fullname 应该在使用 sendDocument 方法发送文档以供签名时捕获签名者的全名(full_name_es_:sender:fullname 不是有效的文本标签,将不起作用)。您似乎正在尝试创建一个通用小部件,您可以重复使用它来捕获来自不同签名者的签名。通用小部件的行为不同,因为您事先不知道签名者(createURLWidget 不接受 recipeint 电子邮件),因此它不会预先填写签名者姓名。如果要为特定签名者生成此小部件,则应考虑使用不同的小部件生成方法 (createPersonalUrlWidget)。我不知道 ruby​​,所以我不能保证对你的 ruby​​ 代码有任何帮助,但如果你能给我提供你的源代码和文档,我可以试一试。

于 2013-01-30T00:42:48.283 回答
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> 
于 2013-01-31T01:30:18.360 回答