Json 如何让codeIgniter 2、Bradley-SignaturePad和DOMPF正常工作
您好:我正在使用signaturePad[Json 如何让codeIgniter 2、Bradley-SignaturePad和DOMPF正常工作,json,codeigniter,dompdf,Json,Codeigniter,Dompdf,您好:我正在使用signaturePad[http://thomasjbradley.ca/lab/signature-pad/]并在codeIgniter 2中创建了一个简短的web表单,位于此处:[http://gentest.lfwebz.com/crd/open_form3],这要求用户实际在表单上签名。 我也安装了mPDF和domPDF,我让它们工作,有点,但不是我想要的方式 我想要的功能是:用户打开web表单,填写表单,签名, 使用上面提到的招牌。然后我想单击一个运行mPDF/dom
http://thomasjbradley.ca/lab/signature-pad/
]并在codeIgniter 2中创建了一个简短的web表单,位于此处:[http://gentest.lfwebz.com/crd/open_form3
],这要求用户实际在表单上签名。
我也安装了mPDF和domPDF,我让它们工作,有点,但不是我想要的方式
我想要的功能是:用户打开web表单,填写表单,签名,
使用上面提到的招牌。然后我想单击一个运行mPDF/domPDF的按钮,然后
捕获页面,当然还有嵌入的签名
当我运行mpdf/domPDF并将包含表单的视图传递给它时,我想我已经发现它只是获取了一个新的视图,一个没有签名,但有几个部分
表格的第二部分不见了。所以在仔细研究之后,我想我已经决定我必须使用signaturePad的图像转换-这就是我被卡住的地方。我在中有代码,使用此处的引用:,但它不起作用
如果您转到我的页面:http://gentest.lfwebz.com/crd/open_form3
,在页面上签名,单击“我接受”按钮
以下是我的观点
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../assets/jquery.signaturepad.css" media="screen">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript" src="../jquery.signaturepad.min.js"></script>
</head>
<body>
<?php echo base_url(); ?>
<form method="post" action="<?php echo base_url(); ?>pdf.php" class="sigPad">
<label for="name">Print your name</label>
<input type="text" name="name" id="name" class="name">
<p class="typeItDesc">Review your signature</p>
<p class="drawItDesc">Draw your signature</p>
<ul class="sigNav">
<li class="typeIt"><a href="#type-it" class="current">Type It</a></li>
<li class="drawIt"><a href="#draw-it">Draw It</a></li>
<li class="clearButton"><a href="#clear">Clear</a></li>
</ul>
<div class="sig sigWrapper">
<div class="typed"></div>
<canvas class="pad" width="198" height="55"></canvas>
<input type="text" name="output" class="output">
<input type="text" name="imgOutput" class="imgOutput">
</div>
<br /><br /><br />
<button type="submit">I accept the terms of this agreement.</button>
</form>
<script>
var sig;
$( document ).ready( function ( ) {
sig = $('.sigPad').signaturePad({defaultAction:'drawIt'});
} );
$( '.sigPad' ).submit( function ( evt ) {
$( '.imgOutput' ).val( sig.getSignatureImage( ) );
} );
</script>
</body>
</html>
在代码似乎按照您的要求执行之前,请尝试输出pdf而不回显。如果已将内容发送到web浏览器,则无法流式传输PDF。但是,如果ZF正在抑制错误,您可能不会收到任何关于此的通知。正如@lighta所提到的,请尝试删除您的echo语句。此外,了解您期望发生的事情、实际发生的事情以及您收到的任何错误也会有所帮助。您好-我输入了回音,以确认函数/方法已到达。如果我删除它们,什么也不会发生,不过当我回显$bse时,我会看到数据。我想要的是我的签名页面的pdf。如果您在这里参加我的测试:http://gentest.lfwebz.com/crd/open_form3
,在您签名后,我希望获得包含签名的页面的pdf。可能Dompdf无法解析base64图像,因此请尝试使用url,但之前仍不回显。什么都没有发生?你是说你有一张空白页?即使dompdf无法解析图像,它也应该生成PDF。ZF可能正在抑制错误。ZF不包括将显示错误的“开发人员”模式吗?您还可以用一些try/catch逻辑来包装该块,以尝试并弄清楚发生了什么。
<?php
if(isset($_POST['imgOutput'])){$img_output = $_POST['imgOutput'];}
echo "position 1";
$bse = preg_replace('#^data:image/[^;]+;base64,#', '', $img_output );
echo "position 2";
echo $bse;
if ( base64_encode( base64_decode( $bse) ) === $bse ) {
require_once 'dompdf/dompdf_config.inc.php';
$html = '<!DOCTYPE html><html><head></head><body><p>Your signature:</p><br /><img src="'. $img_output .'"></body></html>';
$dompdf = new DOMPDF;
$dompdf->load_html( $html );
$dompdf->render( );
$dompdf->stream("test.pdf");
}
else{
echo ("ERROR !");
}
?>