我正在尝试使用FPDF创建pdf文件。
我现在所拥有的是一个HTML页面,其中包含各种数据行,并在其旁边有一个打印按钮。当有人单击“打印”时,我通过拨打AJAX来使用Jquery发送相应的数据。
这是我的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。
另一个选择是接收以base64编码的pdf数据,并使用Data URI设置window.location.href为该数据uri,尽管在这种情况下,有可能将PDF作为下载对话框提供,而不是直接在页面中加载,您必须测试一下。另外,在IE 8和更早版本中,数据uri支持的pdf非常有限,有关更多详细信息,请参见Wikipedia 数据uri页面。
window.location.href
另请参阅此答案,以了解如何无法直接从ajax加载pdf以及必须执行其他操作的其他选项(主要是将pdf保存为服务器上的临时文件,并与window.location.hrefor <iframe>或一起使用window.open)
<iframe>
window.open