используя AJAX и JQuery для создания pdf с использованием FPDF

Я пытаюсь создать PDF-файл с помощью FPDF.

Теперь у меня есть HTML-страница с различными строками данных и рядом с ней кнопка печати. Когда кто-то нажимает кнопку «Печать», я отправляю соответствующие данные с помощью JQuery, вызывая вызов AJAX.

Это мой код JQUERY:

$('.printbtn').live('click', function(){ var printdata = 'name=' + name_t + '&address=' + address_t; $.post('print.php', printdata, function(){ }); return false; }); 

это print.php

  $name = $_POST['name']; $address = $_POST['address']; require ("fpdf17/fpdf.php"); $pdf = new FPDF('P','mm',array(90,100)); $pdf->AddPage(); $pdf->SetFont('Arial','B',12); $pdf->Cell(0,10,'name: '.$name); $pdf->Cell(0,10,'address: '.$address); $pdf->Output(); ?> 

Но я не получаю PDF взамен. Что не так?? На самом деле, ничего не происходит .. Я хочу отыскать файл PDF и отправить его на печать

Чтобы загрузить PDF-файл через ajax, вы можете попробовать:

  • Используйте некоторые из javascript-библиотек PDF для рендеринга PDF непосредственно из javascript без плагинов, таких как mozilla pdf.js или jspdf . И попытайтесь проверить, позволяют ли эти библиотеки установить PDF напрямую из двоичных данных (что вы получаете в ajax).

  • Другим вариантом является получение данных pdf в кодировке base64 и использование URI данных для установки window.location.href в этот uri данных, хотя в этом случае PDF можно предлагать в виде диалогового окна dowload вместо загрузки непосредственно на странице, вы должны это проверить. Кроме того, поддержка данных uri очень ограничена для PDF в IE 8 и старше, более подробную информацию см. На странице uri данных wikipedia.

  • Также см. Этот ответ о том, как загрузить PDF-файл напрямую из ajax и какие другие параметры вы пытаетесь сделать, что хотите (в основном сохраняя pdf как временный файл на сервере и используя его с помощью window.location.href или <iframe> или window.open )

Вы должны открыть новую страницу, используя тег <a> с вашей страницей PHP print.php с вашими переменными.

<a href="print.php?data" target="_blank">click me to download the file</a>

На странице PHP добавьте заголовки

 // Send Headers header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="myPDF.pdf'); // Send Headers: Prevent Caching of File header('Cache-Control: private'); header('Pragma: private'); header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); 

Попробуйте сыграть с заголовком header('Content-type: application/force-download'); автоматически загрузить файл.

Вы также можете отображать данные в формате PDF, например, если файл был сохранен readfile('original.pdf');