使用AJAX和Jquery使用FPDF创建pdf
我正在尝试使用FPDF创建PDF文件。
我现在所拥有的是一个包含各种数据行和其旁边的打印按钮的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文件并将其发送出版
要通过ajax加载PDF,你可以尝试:
使用一些PDF JavaScript库直接从JavaScript呈现PDF,无需插件,如mozilla pdf.js或jspdf。 并尝试查看这些库是否允许您直接从二进制数据(您在ajax中收到的内容)设置pdf。
另一种选择是接收pdf数据作为base64编码,并使用Data URI将window.location.href
设置为该数据uri,但在这种情况下,可能将PDF作为下载对话框提供,而不是直接在页面中加载,你必须测试一下。 在IE 8及更高版本中,对于PDF格式的数据uri支持也非常有限,请参阅维基百科数据uri页面以获取更多详细信息。
另请参阅此答案,了解如何从ajax直接加载pdf,以及您需要尝试做什么的其他选项(主要是将pdf保存为服务器上的临时文件并将其与window.location.href
或<iframe>
或window.open
)
您应该使用带有变量的PHP页面print.php
打开一个使用<a>
标签的新页面。
<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');