Я пытаюсь добавить DOM PDF-библиотеку к моему приложению codeigniter
1.Загрузить dompdf и скопировать папку dompdf
папку библиотек.
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); } }
Но я сделаю эту ошибку.
Сообщение: Класс DOMPDF не найден
Имя файла: libraries / Dompdf.php
Номер строки: 16
Я использую последнюю версию DOMPDF
Начиная с v0.7.0 Dompdf использует пространства имен. Вероятно, вам нужно добавить инструкцию use
до ссылки на класс. Или ссылайтесь на него, используя полный путь к пространству имен.
Пытаться:
require_once(dirname(__FILE__) . '/dompdf/autoload.inc.php'); use Dompdf\Dompdf; class Pdf extends Dompdf { ... }
Использование доступно в readme или на странице использования вики .
в моем случае. я использую это
$ 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");
Я tcpdf
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');