Я пытаюсь создать 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');