2016-06-15 1 views
1

Я пытаюсь получить DOMPDF работы с CodeIgniter, загрузить файл здесь https://github.com/dompdf/dompdf/releases версия была 0.7.0, а затем я положил в мой контроллер кусок кода, как этоDOMPDF с CodeIgniter

public function generatepdf(){ 

     $this->load->helper('file'); 
     require_once(APPPATH.'third_party/dompdf/autoload.inc.php'); 

     $domdpf = new DOMPDF(); 
     $domdpf -> loadHtml('<h1>HELLO WORLD</h1>'); 
     $domdpf -> setPaper('A4','Landscape'); 
     $domdpf ->render(); 

     $domdpf->stream(); 


    } 

Но . Я получаю ошибку о том, Fatal error: Class 'DOMPDF' not found in C:\Apache24\htdocs\faceloan\faceloan\application\controllers\moneyexchange.php on line 2495

+0

Это одна поможет вам http://stackoverflow.com/questions/24497216/php-fatal-error-class-dompdf-not-found -on-line-30 – Gopalakrishnan

+0

@Gopal Я пробовал, что не работал – FaF

ответ

0

Вам нужно использовать v0.6. v0.7 использует пространства имен, которые не поддерживаются в CodeIgniter.

+0

все будет хорошо, если я использую 0.6.2? – FaF

+0

Да, все будет хорошо – Efekan

1

Так как V 0,7 вы должны включить в свой ссылочный код для dompdfs пространства имен:

use Dompdf\Dompdf; 
+0

, если я напишу это, я получаю сообщение об ошибке – FaF

+0

Я получаю ошибку синтаксического анализа – FaF

+0

С композитором это лучший способ пойти. @Farhana Какая у вас ошибка? – Tpojka

2

Вы можете интегрировать DomPDF с Codeigniter в два простых шага.

1) Download библиотека domPDF и поместите ее в каталог приложений/библиотек.

2) Создайте файл файл pdf.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/dompdf_config.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); 
    } 
} 
?> 

Теперь в вашем контроллер файл называют его, как это

defined('BASEPATH') OR exit('No direct script access allowed'); 
class Welcome extends CI_Controller { 
function my_DOMPDF(){ 
    $this->load->library('pdf'); 
    $this->pdf->load_view('common/template'); 
    $this->pdf->render(); 
    $this->pdf->stream("welcome.pdf"); 
} 
} 

Вы можете получить полный step by step configurations here

3

@Zedd Ответ правильно

но для последней версии, как на эта дата, следующая работа будет работать.

приложения/библиотеки/Pdf.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 APPPATH.'third_party/dompdf/autoload.inc.php'; 

use Dompdf\Dompdf; 
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()) 
{ 
    $dompdf = new Dompdf(); 
    $html = $this->ci()->load->view($view, $data, TRUE); 

    $dompdf->loadHtml($html); 

    // (Optional) Setup the paper size and orientation 
    $dompdf->setPaper('A4', 'landscape'); 

    // Render the HTML as PDF 
    $dompdf->render(); 
    $time = time(); 

    // Output the generated PDF to Browser 
    $dompdf->stream("welcome-". $time); 
} 
} 

На контроллере

function pdf_gen(){ 

    $this->load->library('pdf'); 
    $this->pdf->load_view('main_report'); 
} 

Очевидно main_report это файл вид на приложения/просмотров/main_report и вы можете отправить данные для файла просмотра например, следующие

$this->pdf->load_view('main_report', $data); 

И примечание

Я поместил папку dompdf в папку application/thirdparty, а не в приложение/библиотеки.

Удостоверьтесь, что вы прокомментировали все функции print, echo в вашем методе контроллера, иначе вы можете получить сообщение об ошибке, похожее на «файл pdf поврежден».

Надеюсь, что это сообщение было полезно.

1
require_once(dirname(__FILE__) . '/dompdf/autoload.inc.php'); 
use Dompdf\Dompdf; 

class Pdf 
{ 
public function create($html,$filename) 
{ 
    $dompdf = new Dompdf(); 
    $dompdf->loadHtml($html); 
    $dompdf->render(); 
    $dompdf->stream($filename.'.pdf'); 
} 

Попробуйте эту библиотеку https://github.com/hanzzame/ci3-pdf-generator-library

Эта библиотека, используя

  • DOMPDF 0.8.0
  • Codeigniter 3.xx
  • Поддержка SSL соединения для изображения

 Смежные вопросы

  • Нет связанных вопросов^_^