使用AJAX和Jquery使用FPDF创建pdf

cal*_*n12 8 php pdf ajax jquery

我正在尝试使用FPDF创建pdf文件.

我现在拥有的是一个HTML页面,其中包含各种数据行和旁边的打印按钮.当有人点击Print时,我通过调用AJAX来使用Jquery发送相应的数据.

这是我的JQUERY代码:

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

这是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();

 ?>
Run Code Online (Sandbox Code Playgroud)

但我不会得到PDF作为回报.怎么了??事实上,没有发生..我想要检索pdf文件并将其发送到打印

Nel*_*son 1

要通过 ajax 加载 PDF,您可以尝试:

  • 使用一些 PDF javascript 库直接从 javascript 渲染 PDF,无需插件,例如mozilla pdf.jsjspdf。并尝试看看这些库是否允许您直接从二进制数据(您在ajax中收到的数据)设置pdf。

  • 另一种选择是接收采用 Base64 编码的 pdf 数据,并使用数据 URI设置window.location.href为该数据 URI,尽管在这种情况下,PDF 可能作为下载对话框提供,而不是直接在页面中加载,您必须测试该情况。此外,IE 8 及更早版本中对 pdf 的数据 uri 支持非常有限,请参阅维基百科数据 uri 页面了解更多详细信息。

  • 另请参阅此答案,了解如何无法直接从ajax加载pdf以及您必须尝试执行您想要的操作的其他选项(主要是将pdf保存为服务器上的临时文件并与window.location.hrefor<iframe>或一起使用window.open