使用Ajax创建PDF

I am using FPDF to create my report.

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

And I use ajax to make requisition to the PHP.

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

I want to show the report in a new tab

I think you should success key. So it would be something like this

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

Resolved:

I did the different way:

In my report PHP, I generate one temporay file, passing the parameter 'F'.

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

In Jquery Ajax I opne the file, rather than open the data retorned of ajax request.

$.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);
    })

I hope to have helped who one day to need.