2014-09-23 1 views
0

Я использую библиотеку dompdf для преобразования содержимого html в pdf.
Я отправляю содержимое html из представления в контроллер с запросом на отправку ajax.
В этом контроллере я вызываю класс помощника dompdf для преобразования моего html в pdf-файл и сохранения его на стороне клиента.не удалось сохранить файл pdf на стороне клиента usng dompdf

Вот мой запрос Ajax:

$.ajax({ 
type: "POST", 
url: "<?php echo $this->config->base_url('reports/exportPDF')?>", 
data: 
{ 
report : totalHtml 
}, 
success: function (response) { 
console.log(response); 
},  
error: function (err) { 
//console.log(err); 
      } 
}); 

Вот мой контроллер код, где я вношу свой контент HTML:

$this->load->helper('url'); 
$this->load->helper(array('dompdf', 'file')); 
$html = $this->input->post('report'); 
$data = pdf_create($html); 

Наконец, вот мой DOMPDF код помощник интеграции библиотеки:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
function pdf_create($html, $filename='', $stream=TRUE) 
{ 
    require_once("dompdf/dompdf_config.inc.php"); 

    $dompdf = new DOMPDF(); 

    $htmlData = $dompdf->load_html($html); 
    $dompdf->set_paper("a4", "landscape"); 
    $dompdf->render(); 
    $dompdf->stream("report.pdf"); 

} 
?> 

согласно DOMPDF документации, окно загрузки диалог должен появиться, но я unab чтобы получить его.
Как сохранить файл pdf на стороне клиента с помощью dompdf?

Заранее спасибо.

+1

Это нетривиальное делать то, что вы пытаетесь сделать с помощью AJAX. Вместо этого вы должны просто подчиниться «reports/exportPDF» обычно (создайте скрытую форму, если вам нужно разместить контент на сервере). – BrianS

+0

рекомендую посмотреть через [DOMPDF AJAX] (http://stackoverflow.com/search?q=dompdf+ajax) и [PDF Аякса] (http://stackoverflow.com/search?q=pdf+ajax) quetions – BrianS

+0

Но если вы действительно хотите сделать это через AJAX: http://stackoverflow.com/q/16086162/264628 – BrianS

ответ

0

Что происходит, когда вы отправляете вызов ajax? Файл открыт внутри страницы или есть ошибки? Я обычно посылаю ответ на вид открытия нового окна, где я установить заголовок в двоичный файл, который заставит браузер, чтобы открыть диалог сохранения

$this->output->set_header('Content-Type: application/octet-stream'); 
+0

Я получаю ответ в формате pdf в функции успеха ajax без ошибок. Кроме того, когда я пытаюсь сохранить файл на сервере, он отлично работает. Но я хочу диалоговое окно, которое загружает PDF-файл. – nagesh29

Смежные вопросы