Возвращать результат MPDF в браузер, используя JSON и ExtJS

0

Я использовал mpdf для создания pdf-отчета в моем PHP-коде. Я могу видеть файл pdf, когда я сохраняю его с помощью Output ($ pdfFilePath), но ему нужно вернуть его в браузер с помощью json без сохранения его на сервере, поэтому я использовал Output ($ pdfFilePath, "D"). Ниже мой код, но он возвращает пустую страницу html:

серверный код в php:

$report = $this->load->view('report', $data, true);

$pdfFilePath = "the_pdf_output.pdf";

$this->load->library('m_pdf');

$pdf = $this->m_pdf->load();
$pdf->SetDisplayMode('fullpage');
$pdf->WriteHTML($report);

    $result["success"] = true;
    $result["data"] =$pdf->Output($pdfFilePath,"D");
    $result["extra"] = $row->extra;

    echo json_encode($result);

передний конец в extjs:

        success: function(xhr) {

                    var response = Ext.decode(xhr.responseText);
                    if (response.success) {
                        var html =response.data.replace(/\//g, '')
                        ui_print(html);
                     } else {
                        Ext.example.msg('Error', 'Oops, there has been a problem!');
                    }
               }
Теги:
extjs
mpdf

1 ответ

0

вы должны выводить как строку

$result["data"] =$pdf->Output($pdfFilePath,"S");

используя D, отправляет данные в браузер напрямую

Более того, я не уверен, что такое EXT.decode, но я обычно использую JSON.parse для использования json из ajax:

var response = JSON.parse(xhr.responseText);
console.log(response['data']);

что, будучи сказанным, я не уверен, насколько хорошо файлы PDF могут быть проанализированы в json файлах...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню