使用AJAX和PHP输出PDF

时间:2013-09-05 22:27:28

标签: php javascript jquery ajax xpdf

我的网络应用程序的工作方式是用户填写表单,然后AJAX将表单数据发送到生成PDF的PHP文件(使用xpdf)。然后,可以使用AJAX在HTML页面上下载生成的PDF。

如果我直接在浏览器中打开pdf.php就行了。但是我需要弄清楚如何将它与AJAX连接,以便将生成的PDF发送回AJAX,用户只需单击页面上的按钮即可下载。

AJAX:

$.ajax({
    url: 'pdf.php',
    type: 'POST',
    data: pdfData
})
.done(function(response){
});

pdf.php:

<?php 
include('fpdf.php');
include('fpdi.php'); 

// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
$pdf->AddPage();
...
$pdf->Output('address.pdf', 'D'); 
?>

2 个答案:

答案 0 :(得分:0)

完成pdf文件后,您将了解pdf的路径和所有详细信息。将html或json对象返回到您的页面,并创建一个新的html按钮,该按钮将链接到pdf文件。

您返回的数据将包含有关pdf的所有必需详细信息。姓名,路径等......

答案 1 :(得分:0)

你需要一个两步的过程,你不能只用第一个AJAX调用就可以完成。

  1. 您的AJAX调用不应返回PDF内容,而应返回访问PDF的URL,例如/path/to/getpdf.php?id=23535&securitykey=142505
  2. 您的javascript应尝试在新窗口或标签页中打开该新网址
  3. 您的getpdf.php脚本应使用相应的HTTP Content-TypeContent-Disposition标头提供PDF数据,以强制下载提示。
  4. 大多数浏览器会在用户选择打开/保存文件后自动关闭新标签页。