使用Ajax创建PDF

时间:2019-02-09 16:18:55

标签: javascript php ajax fpdf

我正在使用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);           
    })

我想在新标签中显示报告

2 个答案:

答案 0 :(得分:0)

我认为您应该成功的关键。所以会是这样

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

答案 1 :(得分:0)

已解决:

我采用了不同的方式:

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

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

在Jquery Ajax中,我选择文件,而不是打开由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);
    })

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