Monthly Archives: March, 2017

Cách tìm file khai báo 1 class trong php

$reflector = new ReflectionClass(‘SiteManager’);
echo $reflector->getFileName(); die;

Dowload hoặc create file pdf trong cakephp3 sử dụng cakepdf

  • Link doc : https://github.com/FriendsOfCake/CakePdf-
  • Yêu cầu : 
    – PHP 5.4.16+
    – CakePHP 3.0+
    – wkhtmltopdf
  • Cài đặt wkhtmltopdf  : sử dụng Composer
    composer require friendsofcake/cakepdf
  • Thêm code vào file config/bootstrap.php
    // load CakePdf
    Plugin::load(‘CakePdf’, [‘routes’=>true,’bootstrap’ => true]);
    // cấu hình CakePdf (có thể thêm các yeu to khác trong link doc)
    Configure::write(‘CakePdf’, [
    ‘engine’ => [
    ‘className’ => ‘CakePdf.WkHtmlToPdf’,
    // Path trên server và server cần cái đặt wkhtmltopdf
    //’binary’ => ‘/usr/local/bin/wkhtmltopdf’,
    // Path trên window và cần cài thêm wkhtmltopdf.exe về máy tính theo link dưới
    ‘binary’ => ‘C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe’,
    ],
    ]);
  • Thêm code vào file config/routes.php 
    Router::extensions([‘pdf’]); // tạo môi trường pdf
  • Sử dụng : có 2 kiểu sử dụng là
    1 . Render ra view môi trường pdf(có thể set download= true để tự động down,mặc định sẽ là render ra view) 
    – Tạo file PdfsController có :
    public $components = array(‘RequestHandler’);
    public function download($id) {
    // config pdf để download
    $this->viewBuilder()->options([
    ‘pdfConfig’ => [
    ‘orientation’ => ‘portrait’,
    ‘filename’ => ‘filename.pdf’, // file name download
    ‘download’ => true // nếu true sẽ tự động down, false sẽ render ra view
    ]]);
    }
    -Tạo file layout cho pdf  src\Template\Layout\pdf\default.ctp
    -Tạo file view cho pdf     src\Template\Pdfs\pdf\download.ctp
    Cuối cùng chạy link  : /pdfs/download/29.pdf’ // 29 la id
    2. Tạo ra file pdf lưu trên server
    – Tạo file PdfsController có :
    public $components = array(‘RequestHandler’);
    public function createFile() {
    $CakePdf = new \CakePdf\Pdf\CakePdf();
    $CakePdf->template(‘create_file’, ‘default’);//run view pdf/create_file and layout pdf/default
    $CakePdf->viewVars([‘dataPdf’ => 1]);// truyền biến ra view
    // Get the PDF string returned
    $pdf = $CakePdf->output();
    $pdf = $CakePdf->write(WWW_ROOT . ‘files’ . DS . ‘pdf’ . DS . ‘ronaldo.pdf’); // tạo file pdf
    }
    -Tạo file layout cho pdf  src\Template\Layout\pdf\default.ctp
    -Tạo file view cho pdf    src\Template\Pdf\create_file.ctp
    Cuối cùng chạy link  : /pdfs/createFile

Cài đặt font chữ Nhật cho phần tạo file pdf

Khách hàng yêu cầu bạn tạo ra file pdf nhưng lại có chữ tiếng Trung, tiếng Nhật. Sau khi cài các thư viện rồi tạo ra giao diện rất ổn, bạn chợt nhận ra mất chữ.
Continue Reading

Copyright © 2017. Powered by WordPress & Romangie Theme.