【问题标题】:Echosign APIs and pre-populating text in a PDFEchosign API 和 PDF 中的预填充文本
【发布时间】:2013-01-29 02:39:11
【问题描述】:

我有一个包含多个文本字段的 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 方法是否会这样做,有人知道吗?或者我应该使用其他方法吗?

提前感谢您的宝贵时间!

【问题讨论】:

  • 您好。您在问题介绍中提到的prefill 后缀是什么?我正在尝试查找有关它的一些信息,但到目前为止失败了。

标签: ruby api pdf pdf-generation echosign


【解决方案1】:

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

【讨论】:

  • 请不要在回答中包含您的电子邮件地址。如果未在此处发布解决方案,这将不会使整个社区受益。
  • 我不想在登录 echosign 站点时预填充 pdf。正如我在我的 OP 中所说,echosign 告诉我不要使用 createUrlWidget 的预填充。我确实尝试了您使用 createPersonalUrlWidget 的建议,但没有成功。我正在使用 Ruby 代码将预填充的值添加到 pdf 并将 pdf 上传到 echosign 服务器。唯一不起作用的部分是 pdf 上的预填充数据不会发生。感谢您的建议。
【解决方案2】:

我解决了!除了预先存在的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> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-13
    • 2016-02-15
    • 2016-05-29
    相关资源
    最近更新 更多