首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dompdf生成的pdf为0字节

Dompdf生成的pdf为0字节
EN

Stack Overflow用户
提问于 2013-05-20 15:50:31
回答 1查看 1.3K关注 0票数 1

我正在尝试将pdf保存到磁盘。

我正在使用DompdfCodeigniter,如下所示:

代码语言:javascript
复制
$this->load->helper('dompdf','file');
$this->load->helper('file');
$saveTo = './labels'; 
$data['id'] = $this -> uri -> segment(3);
$data['no_of_prints'] = $this -> uri -> segment(4);   
$labelname = "Label". $data['id'] ."-". $data['no_of_prints'] . ".pdf";
$html = $this->load->view('label_view', $data, TRUE);
file_put_contents($saveTo."/".$labelname, pdf_create($html, $labelname));

同时正确地生成标签名。保存到磁盘的文件读取0字节,不出所料,我得到了一个Adobe Reader cannot open this file ...错误。

我也使用fancybox 2.0来弹出pdf,当我右击弹出的时候( pdf没有显示,我猜是pdf插件的问题)我能够Save as一个可读的pdf不是0字节。

对于应用程序来说,自动将pdf保存到磁盘是很重要的。如何将可读的pdf文件保存到磁盘?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-20 16:43:45

我发现了一些使用DomPDF的旧CI代码(版本2之前),我有一个额外的参数可以写成文件。

这和你的有很大不同吗?

代码语言:javascript
复制
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
function pdf_create($html, $filename, $stream=FALSE, $orientation='portrait')
{
    require_once("dompdf/dompdf_config.inc.php");
    spl_autoload_register('DOMPDF_autoload');

    $dompdf = new DOMPDF();
    $dompdf->set_paper( array(0,0, 2.175 * 72, 3.375 * 72), "landscape" ); // credit card size
    $dompdf->load_html($html);
    $dompdf->render();
    if ($stream)
    {
        $dompdf->stream($filename.".pdf");
    }
    else
    {
        $CI =& get_instance();
        $CI->load->helper('file');
        write_file("./uploads/$filename.pdf", $dompdf->output());
    }
}
?>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16644915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档