я использую DOMPDF а также html2canvas.
Я пытаюсь преобразовать div в изображение и передать это изображение с помощью ajax. Затем в моем коде на стороне сервера я обрабатываю это изображение в формате PDF. Я использую dompdf при создании PDF.
Это мой код:
html2canvas(jQuery("#try_screenshot"), {
onrendered: function(canvas) {
var image = canvas.toDataURL("image/png");
jQuery("#screenshot").html("<img src='"+image+"' />");
jQuery.ajax({
url: "/order/send-email.php",
dataType: "json",
method: "POST",
data: {
src: image
},
success:function(data){
console.log(data);
}
});
}
});
Это мое send-email.php
код.
require_once 'dompdf/autoload.inc.php';
use Dompdf\Dompdf;
if(isset($_POST['src'])){
$dompdf = new Dompdf();
$imgsrc = $_POST['src'];
$dompdf->loadHtml("<img src='$imgsrc' />");// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
$output = $dompdf->output();
$file_name = time().".pdf";
file_put_contents("pdfs/".$file_name, $output);
}
Моя проблема здесь в том, что я получаю пустой файл PDF.
Я пытался получить доступ к image
SRC в браузере, и я вижу, что это говорит This site can’t be reached
, Но на самом деле это не потому, что у меня есть этот код jQuery("#screenshot").html("<img src='"+image+"' />");
и я сразу вижу изображение, добавляющееся в мой HTML-файл.
Изображение закодировано в base64. Вот ссылка на образец изображения base64. Это не полный текст в формате base64, потому что SO не позволил бы мне поместить все из них, потому что я превысил 30 тыс. Слов.
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABJIAAAKUCAYAAABfZBI4AAAgAElEQVR4XuydB7Rc1XX+N0gUSaiBhFCXkFADFVDvXaiCekESojhxTdzimuQfO4kdO3biJMZO3BBCDfXeG0JdoN47oAao0jv6r9825/m+0cy8mXfmvZm5s89aXkZv7mnfOXNnn+98e+8bxKNcunTpmkd1q2oIGAIhROCOO+64IR3Tunjx4o9uuOGGf0pH39anIWAIZCYC165d+3GlSpV+lI7RmY2UDtStT0MgsxFIl42U2ajY6AwBQyAbEfA68JmRlI1LbmM2BIoWgXQZSUYkFe26WuuGQDYiYERSNq6ajdkQCC8C6bKRwouozcwQMATShYARSelC3vo1BEKKQLqMJCOSQrqhbFqGgAcCRiR5gGdVDQFDIOUIpMtGSvlErEFDwBDIeQSMSMr5LWAAGAKpRSBdRpIRSaldR2vNEAgDAkYkhWEVbQ6GQHgQSJeNFB4EbSaGgCGQKQgYkZQpK2HjMARCgkC6jCQjkkKygWwahkAKETAiKYVgWlOGgCHgjUC6bCTvgVsDhoAhYAhEIGBEkm0JQ8AQSCkC6TKSjEhK6TJaY4ZAKBAwIikUy2iTMARCg0C6bKTQAGgTMQQMgYxBwIikjFkKG4ghEA4E0mUkGZEUjv1jszAEUomAEUmpRNPaMgQMAV8E0mUj+Y7b6hsChoAhEImAEUm2JwwBQyClCKTLSDIiKaXLaI0ZAqFAwIikUCyjTcIQCA0C6bKRQgOgTcQQMAQyBgEjkjJmKWwghkA4EEiXkWREUjj2j83CEEglAkYkpRJNa8sQMAR8EUiXjeQ7bqtvCBgChkAkAkYk2Z4wBAyBlCKQLiPJiKSULqM1ZgiEAgEjkkKxjDYJQyA0CKTLRgoNgDYRQ8AQyBgEjEjKmKWwgRgC4UAgXUaSEUnh2D82C0MglQgYkZRKNK0tQ8AQ8EUgXTaS77itviFgCBgCkQgYkWR7whAwBFKKQLqMJCOSUrqM1pghEAoEjEgKxTLaJAyB0CCQLhspNADaRAwBQyBjEDAiKWOWwgZiCIQDgXQZSUYkhWP/2CwMgVQiYERSKtG0tgwBQ8AXgXTZSL7jtvqGgCFgCEQiYESS7QlDwBBIKQLpMpKMSErpMlpjhkAoEDAiKRTLaJMwBEKDQLpspNAAaBMxBAyBjEHAiKSMWQo
Я что-то здесь не так делаю? Я уже 2 дня бьюсь головой.
Ваша помощь очень ценится.
Благодарю.
Задача ещё не решена.
Других решений пока нет …