Создание ссылки на скачивание 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.

Другие вопросы по тегам