Как я могу сделать PDF с codeigniter? - PullRequest
0 голосов
/ 30 января 2020

, чтобы это выглядело так пример

какому учебнику я должен следовать?

1 Ответ

0 голосов
/ 30 января 2020
  1. Загрузите файл TCPDF из здесь
  2. Извлеките и поместите папку как «tcpdf» в путь «application / third_party»
  3. Создайте файл с именем «pdf. php» в папке «application / library» и поместите следующий код

    <?php
    if (!defined('BASEPATH'))
    exit('No direct script access allowed');
    
    require_once APPPATH . "/third_party/tcpdf/tcpdf.php";
    class Pdf extends tcpdf {
        public function __construct() {
        parent::__construct();
        }
    }
    ?>
    
  4. Добавьте следующую функцию в ваш контроллер

        public function createPDF($fileName,$html) {
            ob_start(); 
            // Include the main TCPDF library (search for installation path).
            $this->load->library('Pdf');
            // create new PDF document
            $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
            // set document information
            $pdf->SetCreator(PDF_CREATOR);
            $pdf->SetAuthor('TcPdf');
            $pdf->SetTitle('TcPdf');
            $pdf->SetSubject('TcPdf');
            $pdf->SetKeywords('TcPdf');
    
            // set default header data
            $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING);
    
            // set header and footer fonts
            $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
            $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
    
            $pdf->SetPrintHeader(false);
            $pdf->SetPrintFooter(false);
    
            // set default monospaced font
            $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
    
            // set margins
            $pdf->SetMargins(PDF_MARGIN_LEFT, 0, PDF_MARGIN_RIGHT);
            $pdf->SetHeaderMargin(0);
            $pdf->SetFooterMargin(0);
    
            // set auto page breaks
            //$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
            $pdf->SetAutoPageBreak(TRUE, 0);
    
            // set image scale factor
            $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
    
            // set some language-dependent strings (optional)
            if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
                require_once(dirname(__FILE__).'/lang/eng.php');
                $pdf->setLanguageArray($l);
            }       
    
            // set font
            $pdf->SetFont('dejavusans', '', 10);
    
            // add a page
            $pdf->AddPage();
    
            // output the HTML content
            $pdf->writeHTML($html, true, false, true, false, '');
    
            // reset pointer to the last page
            $pdf->lastPage();       
            ob_end_clean();
            //Close and output PDF document
            $pdf->Output($fileName, 'F');        
        }
    
  5. Создайте представление в точности как вы хотите в PDF и загрузите его в контроллер, чтобы сделать PDF

        $htmlContent = $this->load->view('views/your-view-file', $data, TRUE);       
        $createPDFFile = 'your-pdf-name'.'.pdf';
        $this->createPDF('location-for-pdf'.$createPDFFile, $htmlContent);
    

Это создаст PDF-файл в точности так же, как вы сделали его в указанном вами месте.

...