无法在客户端使用dompdf保存pdf文件

时间:2014-09-23 10:10:51

标签: ajax codeigniter dompdf

我正在使用dompdf库将我的html内容转换为pdf 我正在通过ajax post请求将html内容从视图发送到控制器 在这个控制器中,我调用dompdf helper类将我的html转换为pdf文件并将其保存在客户端。

这是我的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文档,应该出现下载对话框,但我无法得到它 我应该如何使用dompdf在客户端保存pdf文件?

提前致谢。

1 个答案:

答案 0 :(得分:0)

发送ajax电话会发生什么? 文件在页面内打开或有错误? 我通常会向一个视图发送响应,打开一个新窗口,我将标题设置为二进制文件,强制浏览器打开保存对话框

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