Создание ссылки на скачивание DOMPDF сгенерированного PDF на той же странице
Я делаю динамическую HTML-страницу, созданную со значениями из базы данных. У пользователя есть возможность "скрыть" div и манипулировать другими элементами на странице. Я хочу отправить весь HTML-код на странице в DOMPDF и сгенерировать для меня ссылку на скачивание.
<a href="dl.php">Download</a>
Где dl.php будет иметь что-то вроде этого, где HTML отправляется в DOMPDF и генерирует:
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("myCV.pdf");
Однако, поскольку пользователь манипулирует DOM на странице, и я хочу избавиться от таких вещей, как ссылки, я использую jquery для захвата HTML
$('a').wrap('<span style="display:none;"></span>');
var fullhtml = $("#body").html();
fullhtml = encodeURIComponent(fullhtml);
annnndd, так как это большая страница, я не могу использовать GET, для отправки HTML нужно использовать POST. Как бы я получить его, чтобы я мог просто сделать AJAX-вызов с html на dl.php и просто "включить" страницу, чтобы она работала? Если я возвращаю что-либо из вызова AJAX, файл PDF преобразуется в текст, который является беспорядком.
1 ответ
Я не уверен, что точно понимаю ваш вопрос, но, насколько я понимаю, вы берете HTML-код страницы, скрываете все ссылки, а затем отправляете все это в запросе POST dl.php
, право? Так dl.php
сказал бы что-то вроде этого:
$html = urldecode($_POST['html']);
$dompdf = new DOMPDF();
$dompdf->load_html($html);
//...
Правильно?
Пользователь может инициировать этот процесс, щелкнув ссылку, после чего вы заполняете форму скрытым вводом обработанным HTML-кодом (скрытые ссылки и т. Д.) Перед отправкой, т. Е.
$('a#submit_link').click(function() {
// wrap links, etc. here
var html = $("body").html();
$('#hidden_form_input').val($html);
$('#hidden_form').submit();
});
Примерно так должно представить вашему пользователю сгенерированный PDF.