Брайан, вы молодцы! Я должен был сделать следующее, чтобы заставить его работать, поскольку мы проверяли эту строку, включая data:image/png;base64,
.
Но с вашей помощью и некоторыми копаниями я получил pdf-файл с подписью на нем :) Это код на тот случай, если кому-то это понадобится в будущем.
HTML, часть - на стороне клиента:
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="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>
<form method="post" action="pdf.php" class="sigPad">
<label for="name">Print your name</label>
<input type="text" name="name" id="name" class="name">
<p class="drawItDesc">Draw your signature</p>
<ul class="sigNav">
<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">
<canvas class="pad" width="198" height="55"></canvas>
<input type="hidden" name="imgOutput" class="imgOutput">
</div>
<button type="submit">I accept the terms of this agreement.</button>
</form>
<script>
var sig;
$(document).ready(function() {
/*sig = $('.sigPad').signaturePad();*/
sig = $('.sigPad').signaturePad({drawOnly:true});
});
$('.sigPad').submit(function(evt) {
$('.imgOutput').val(sig.getSignatureImage());
});
</script>
</body>
</html>
и удивительность (pdf.php) - на стороне сервера:
<?php
if(isset($_POST['imgOutput'])){$img_output = $_POST['imgOutput'];}
$bse = preg_replace('#^data:image/[^;]+;base64,#', '', $img_output);
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 !");
}
?>
Большое спасибо @Thomas J Брэдли, то dompdf team и @BrianS, который спас день.
PS: @BrianS Я не могу ответить на ваш ответ, так как я все еще новичок и не имею 15 минимальной репутации, чтобы это сделать.
не беспокоится ... может быть, кто-то еще поддержит ответ. Тем не менее, вы можете проверить это, ответив на ваш вопрос (так как он ваш). – BrianS