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

Я использовал 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!');
}
}

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-файлах …

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]