【问题标题】:Dompdf generated pdf is 0 bytesDompdf 生成的 pdf 为 0 字节
【发布时间】:2013-05-20 07:50:30
【问题描述】:

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

我使用DompdfCodeigniter如下:

$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 保存到磁盘?

【问题讨论】:

  • 文件是否被写入服务器?您是否尝试过使用绝对系统路径作为文件位置?例如。 $save_to = $_SERVER["DOCUMENT_ROOT"] 。 '/labels/'.$labelname.'.pdf';
  • 文件被写入根目录下的labels文件夹,只是0字节,pdf阅读器无法打开。
  • 您应该分部分进行调查。首先,查找来自 PHP 的任何错误或警告。其次,检查以确保$html 已填写?您可以将其回显以进行检查。第三,返回pdf_create() 的结果,这样你就可以确保它返回了一些东西。如果这些都不起作用,您可能需要检查您的 dompdf 配置或深入使用 dompdf 的扩展。
  • 感谢@BrianS 单独检查了各个部分,使用了下面的选定答案。

标签: codeigniter pdf dompdf


【解决方案1】:

我发现了一些使用 DomPDF 的旧 CI 代码(第 2 版之前),我有一个额外的参数可以写成文件。
这和你的有很大不同吗?

<?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());
    }
}
?>

【讨论】:

  • 添加了 require_once() ,创建了 DOMPDF 的新对象,如您的代码所示,它有效。谢谢。
猜你喜欢
  • 2013-08-10
  • 2017-08-14
  • 2012-06-06
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2015-10-30
相关资源
最近更新 更多