使用 Ajax 创建 PDF

Create PDF with Ajax

我正在使用 FPDF 创建我的报告。

$pdf = new Report('P','mm','A4', $_POST);
$pdf->AddPage();
$pdf->Output('file.pdf','I');

然后我使用 ajax 向 PHP 申请。

$.ajax({
        type: 'POST',
        url: '../reports/report.php',
        data: { id: id }
    }).done(function(data){         
        window.open(data);           
    })

我想在新标签页中显示报告

我想你应该是成功的关键。所以它会像这样

$.ajax({
        type: 'POST',
        url: '../reports/report.php',
        data: { id: id },
        success: function(data){
         var blob = new Blob([data]);
         window.open(URL.createObjectURL(blob));
       }
    })

已解决:

我采用了不同的方式:

在我的报告PHP中,我生成了一个临时文件,传递了参数'F'。

$pdf->Output('file.pdf','F');

在JqueryAjax我打开文件,而不是打开ajax请求返回的数据。

$.ajax({
        type: 'POST',
        url: '../reports/report.php',
        data: { id: id }
    }).done(function(data){         
        var fileName = "file.pdf";
        $('#modalRel').modal('show');
         var object = "<object data=\"{FileName}\" type=\"application/pdf\" width=\"500px\" height=\"300px\">";
                    object += "If you are unable to view file, you can download from <a href = \"{FileName}\">here</a>";
                    object += " or download <a target = \"_blank\" href = \"http://get.adobe.com/reader/\">Adobe PDF Reader</a> to view the file.";
                    object += "</object>";
                    object = object.replace(/{FileName}/g, "../Files/" + fileName);
                     $("#body-rel").html(object);
    })

我希望有一天能帮助到需要帮助的人。