我尝试将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
答案 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
{
...
}
使用情况可在readme或wiki 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;