2016-04-12 2 views
1

Я пытаюсь добавить библиотеку DOM PDF в мой CodeIgniter приложениеDOM PDF CodeIgniter: Class 'DOMPDF' не найдена ошибка

1.Download DOMPDF и скопировать dompdf папки в папку библиотеки.

2.Create файл с именем 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 'DOMPDF' не найден

Имя файла: библиотеки/Dompdf.php

Порядковый номер: 16

I am using latest DOMPDF

ответ

0

Я сделал поколение PDF с tcpdf библиотека, но немного отличающаяся от вас. Вот мое решение с tcpdf. Вы можете попробовать его с помощью Dompdf.

Скачать TCPDF и положить в THIRD_PARTY папки Создайте файл 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'); 
1

Начиная с v0.7.0 DOMPDF использует пространство имен. Вероятно, вам нужно добавить оператор use перед ссылкой на класс. Или ссылайтесь на него, используя полный путь к пространству имен.

Try:

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

Использование доступна в readme или на wiki usage page.

1

в моем случае. i использовать это

$ 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

По какой-то причине я не мог использовать 'использовать DOMPDF \ DOMPDF;', потому что ничего не будет загружать. Поместив пространство имен в декларацию, он решил проблему. – AndyD273