小编典典

使用AJAX和Jquery使用FPDF创建pdf

ajax

我正在尝试使用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文件并发送给打印


阅读 295

收藏
2020-07-26

共1个答案

小编典典

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

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

  • 另一个选择是接收以base64编码的pdf数据,并使用Data URI设置window.location.href为该数据uri,尽管在这种情况下,有可能将PDF作为下载对话框提供,而不是直接在页面中加载,您必须测试一下。另外,在IE 8和更早版本中,数据uri支持的pdf非常有限,有关更多详细信息,请参见Wikipedia 数据uri页面

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

2020-07-26