Yii Framework 2 : Create PDF Files Using mPDF

mPDF is a PHP class Which is used to create a PDF files from the HTML content in yii2.0.

Install mPDF

Install mPDF Using Composer

To include the mPDF package into yii2.0 application folder, add the following code into 'composer.json' file and run the command 'composer update'. Now you can see the mPDF packages in your application.

"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": "*",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/yii2-swiftmailer": "*",
    "mpdf/mpdf":"*"
},
In command prompt composer update (Or) You can add the mPDF package through the command line using below code. We don't need to add code in composer.json. It will be added automatically When we use this method. php composer.phar require mpdf/mpdf "dev-master" Now got to 'vendor/composer/autoload_classmap.php' file, All the preload class will be set on this file.
Install mPDF Manually
First goto the mPDF library path 'https://github.com/mpdf/mpdf'. Download the .zip file and unzip it into application 'Vendor' folder. Now change the file path as mpdf/mpdf/ and See the below image for file structure.
mPDF In Yii2.0
Now go to 'vendor/composer/autoload_namespaces.php' file and add the below line into array

'mPDF' => array($vendorDir . '/mpdf/mpdf'),
Note: Manual configuration will be automatically removed If you update the composer.json. Be careful on composer handling.

Create PDF Using mPDF

Now I will create a function called 'createMPDF' in sitecontroller.php and will make it as pdf file.
SiteController.php

<?php
//...............
use app\models\ContactForm;
use mPDF;
class SiteController extends Controller
{
    //...............
    public function actionCreateMPDF()
    {
        $mpdf = new mPDF();
        $mpdf->WriteHTML($this->renderPartial('mpdf'));
        $mpdf->Output();
        exit;
        //return $this->renderPartial('mpdf');
    }
    public function actionSamplePdf()
    {
        $mpdf = new mPDF;
        $mpdf->WriteHTML('Sample Text');
        $mpdf->Output();
        exit;
    }
    public function actionForceDownloadPdf()
    {
        $mpdf = new mPDF();
        $mpdf->WriteHTML($this->renderPartial('mpdf'));
        $mpdf->Output('MyPDF.pdf', 'D');
        exit;
    }
    //...............
}
?>
MPDF View

  • Ajith

    need more options regarding mpdf

  • Helly Helly

    can you tell me how can i incluce my customm css and bootstrap.css file in this extension

    • Mpdf not works well with bootstrap! ( i never figure out!) recomend you to read the documentation and make a simple css custom!

      • Alvaro Lordelo

        Or you just need to include it on Mpdf…
        although it can be done on multiple ways….You need to understand partial-render and render
        and to include @media in css…typography etc…

      • Joe

        How to show the view.php be the report.php (contents like in a view, just a little custom) then render to pdf?
        Thanks..

  • Helly Helly

    its working fine for the simple text . but when i include a page with dynamic content, then its is not wiorking fine. It doens’t include bootstrap.css and also one more file with custom css. Please help me

  • fucking THANKS!

  • Maxim

    How can I use landscape page orientation?

  • bijan

    not working in live server? Class ‘mPDF’ not found. any help?

    • Krishnadas PC

      For PHP7.4 version you can use

      use MpdfMpdf;

  • sonyta son

    i want to create PDF 5000 records how can i do?

  • Wade Developer

    I can’t believe nobody has said it yet…. You should never edit anything inside the “vendor” directory. Anyone who tells you to do so, is doing it wrong.

  • Satish Purohit

    Manual installation is not working, can anyone tell me complete step. Thanks in advance.

  • Krishnadas PC

    For PHP7.4 version you can use

    use MpdfMpdf;

    in your import. No need to edit any composer files. But images are not working for me.

  • omah group

    Trait “setasignFpdiFpdiTrait” not found
    what the problems guys?