DOM pdf codeigniter:Class' DOMPDF'找不到错误

时间:2016-04-12 05:03:57

标签: php codeigniter dompdf

我尝试将DOM PDF库添加到我的codeigniter应用程序

1.下载dompdf并将dompdf文件夹复制到libraries文件夹。

2.在库文件夹

中创建名为Dompdf.php的文件

在我的控制器中

public function pdf_test()
   {
       $this->load->library('Dompdf');
       $this->Dompdf->loadHtml('hello world');
       $this->pdf->render();
       $this->pdf->stream("welcome.pdf");
   }

Dompdf.php

<?php defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * CodeIgniter PDF Library
 *
 * Generate PDF's in your CodeIgniter applications.
 *
 * @package         CodeIgniter
 * @subpackage      Libraries
 * @category        Libraries
 * @author          Chris Harvey
 * @license         MIT License
 * @link            https://github.com/chrisnharvey/CodeIgniter-PDF-Generator-Library
 */
require_once(dirname(__FILE__) . '/dompdf/autoload.inc.php');
class Pdf extends DOMPDF
{
    /**
     * Get an instance of CodeIgniter
     *
     * @access  protected
     * @return  void
     */
    protected function ci()
    {
        return get_instance();
    }
    /**
     * Load a CodeIgniter view into domPDF
     *
     * @access  public
     * @param   string  $view The view to load
     * @param   array   $data The view data
     * @return  void
     */
    public function load_view($view, $data = array())
    {
        $html = $this->ci()->load->view($view, $data, TRUE);
        $this->load_html($html);
    }
}

但我会这个错误。

  

消息:Class&#39; DOMPDF&#39;找不到

     

文件名:libraries / Dompdf.php

     

行号:16

I am using latest DOMPDF

4 个答案:

答案 0 :(得分:2)

在我的情况下。我用这个

  

$ dompdf = new Dompdf \ DOMPDF();

require_once(_MAP."libraries/dompdf/autoload.inc.php");
$dompdf = new Dompdf\DOMPDF();
$html = 'rats :)';
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("sample.pdf");

答案 1 :(得分:1)

从v0.7.0开始,Dompdf使用名称空间。您可能需要在引用类之前添加use语句。或者使用完整的命名空间路径引用它。

尝试:

require_once(dirname(__FILE__) . '/dompdf/autoload.inc.php');
use Dompdf\Dompdf;
class Pdf extends Dompdf
{
...
}

使用情况可在readmewiki usage page上找到。

答案 2 :(得分:0)

我使用tcpdf库完成了pdf生成,但与您的方法略有不同。这是我的tcpdf解决方案。您可以使用Dompdf尝试。

下载tcpdf并输入 third_party 文件夹 使用以下内容在 libraries 文件夹中创建文件PDF.php

 require_once APPPATH."third_party/tcpdf/tcpdf.php";

    class PDF extends TCPDF {
        public function __construct() {
            parent::__construct();
        }
    }

控制器文件夹中,使用以下代码

创建文件Createpdf.php
defined("BASEPATH") OR exit("No direct script access allowed");

    class Createpdf extends CI_Controller {

        public function pdf()
        {
            $this->load->library("pdf");
            $data["content"] = "Hello from CodeIgniter with TCPDF...";
            $this->load->view("pdfreport", $data);
        }
    }

并且pdfreport.php视图为:

$obj_pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$obj_pdf->AddPage();
$obj_pdf->writeHTML($content, true, false, true, false, '');
$obj_pdf->Output('output.pdf', 'I');

答案 3 :(得分:0)

首先通过composer

安装它
composer require dompdf/dompdf

并在pdf库中使用它。

 require 'vendor/autoload.php';
 use Dompdf\Dompdf as Dompdf;