在 Rails 中,我已正确设置 View 以使用 Signature Pad 显示捕获的签名

我现在想生成一个显示签名的pdf。签名是 json 保存为我的 postgresql 数据库中的字符串,并且如上所述它将在 html View 中生成良好,问题是在 pdf 中生成。

我相信我已经为 wicked_pdf 正确包含了必要的 Assets :

<%= wicked_pdf_stylesheet_link_tag "application" %>
<%= wicked_pdf_javascript_include_tag "application" %>

我还尝试将 js 直接包含在 pdf View 中:
<head>
  <script>
    function draw_signature() {
      var sig = $('#signature').val();
      if (typeof(sig) != 'undefined' || sig != null)
      {
        $('.sigPad').signaturePad({displayOnly:true}).regenerate(sig);
      }
    }
  </script>
</head>
<body onload="draw_signature()">
  <%= hidden_field_tag("signature", @customer.signature, :id => "signature") %>
    <div class="sigPad signed">
      <canvas class="pad" width="400" height="140"></canvas>
    </div>

最佳答案

我能够让你上面的例子使用 gem 版本:wicked_pdf (1.0.6)
修改包含标签以引用最新的 Jquery CDN,以及在 vendor/assets 目录中提供的 Jquery 签名库。

请参阅下面的工作代码:

<%= wicked_pdf_javascript_include_tag "https://code.jquery.com/jquery-3.1.1.min.js" %>
<%= wicked_pdf_javascript_include_tag "jquery.signaturepad.min" %>
<script type="text/javascript">
  $(document).ready(function(){
    var signature = $('#signature').val();
    if (typeof(signature) != 'undefined' && signature != null && signature != "")
    {
        $('.sigPad').signaturePad({displayOnly:true}).regenerate(signature);
    }
});
</script>


<body>
  <%= hidden_field_tag("signature", @customer.signature, :id => "signature") %>
    <div class="sigPad signed">
      <canvas class="pad" width="400" height="140"></canvas>
    </div>
</body>

Jquery 签名库也包含在 Assets 预编译列表中,以作为单个 Assets 提供:
config/initializers/assets.rbRails.application.config.assets.precompile += ['jquery.signaturepad.min.js']

关于ruby-on-rails - 在 wicked_pdf 中显示签名板 - Rails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23467365/

10-15 12:21
查看更多