在Rails中,我已正确设置视图以使用Signature Pad
显示捕获的签名我现在想生成一个显示签名的pdf。签名是json在我的postgresql数据库中保存为字符串,如上所述,它将在html视图中生成,问题是以pdf生成。
我相信我已经为wicked_pdf正确包含了必要的资产:
<%= wicked_pdf_stylesheet_link_tag "application" %>
<%= wicked_pdf_javascript_include_tag "application" %>
我还尝试将js直接包含在pdf视图中:
<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>
答案 0 :(得分:3)
我能够让您的上述示例使用gem版本:
wicked_pdf (1.0.6)
修改include标记以引用最新的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签名库也包含在资产预编译列表中,可作为单个资产提供:
config/initializers/assets.rb
Rails.application.config.assets.precompile += ['jquery.signaturepad.min.js']