Создать PDF с Ajax - PullRequest
       11

Создать PDF с Ajax

0 голосов
/ 09 февраля 2019

Я использую 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 голосов
/ 12 февраля 2019

Решено:

Я сделал по-другому:

В своем отчете PHP я генерирую один временный файл, передавая параметр '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);
    })

Я надеюсь, что помог кому-то однажды.

0 голосов
/ 09 февраля 2019

Я думаю, что вы должны ключ к успеху.Так было бы что-то вроде этого

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