mpdf:如何生成包含大页面的mpdf的pdf文件

I'm trying to generate a pdf file with mpdf. It contains more than 50000 pages. The problem is browser can handle and show the pdf file when it's has 2000 pages but when i'm trying to generate more then the browser doesn't respond and finally, it's show max_execution_time error all though I increase max_execution_time 30 to 300 form php.ini file.

here is my mpdf code ...

<?php
// header('Content-type: application/force-download');
// header("Content-type:application/pdf");
ini_set("memory_limit","128M");
ob_start();


include("fpdf/mpdf/mpdf.php");
// $mpdf=new mPDF('mm','array(140,215)',14,'nikosh'); 
$mpdf = new mPDF('0',array(280,216),12,'nikosh',3,3,'L'); 
$mpdf->SetTopMargin(0);
$mpdf->SetRightMargin(0);
$mpdf->useSubstitutions = false;
$mpdf->simpleTables = true;
$stylesheet = file_get_contents('style.css');

$html='
<div style="display:inline-table">
<div style="float:right;width:48.5%;">
<p style="margin-left:55mm;margin-bottom:0mm;padding-bottom:0mm;font-size:8mm;float:left;"> যশোর  <span class="hide">পৌরসভা </span>   </p>
<div style="margin-left:48mm;margin-top:0mm;padding-top :0mm;"><span style="width:20mm;">পৌরকরের বিল</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="margin-left:50mm;margin-bottom:-10mm;font-size:4mm"> অর্থ বছরঃ   </span></div> 
<div style="margin-left:48mm;margin-top:0mm;padding-top :0mm;"><span style="width:20mm;color:red;">পৌরসভার কপি </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="margin-left:50mm;margin-bottom:-10mm;font-size:4mm"> কিস্তিঃ   </span></div> 

<div class="all_o_i">
        <p  class="o_in">হোল্ডিং নং &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;: ৩৮৯৪-৩৪৩ </p>
        <p  class="o_in">কর দাতার আই ডি &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </p>
        <p  class="o_in">করদাতার নাম &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </p>
        <p  class="o_in">রাস্তা/মৌজা/এলাকা/মহল্লা &nbsp;: </p>
        <p  class="o_in">বিলের ঠিকানা &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : </p>
        <p  class="o_in">বিল ইস্যুর তারিখ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : </p>
        <p class="o_in" style="color:red">জমাদানের শেষ তারিখ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </p>
    </div>
</div>
<div style="float:left;width:48.5%;">
<p style="margin-left:55mm;margin-bottom:0mm;padding-bottom:0mm;font-size:8mm;float:left;"> পৌরসভা   </p>
<div style="margin-left:48mm;margin-top:0mm;padding-top :0mm;"><span style="width:20mm;">পৌরকরের বিল</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="margin-left:50mm;margin-bottom:-10mm;font-size:4mm"> অর্থ বছরঃ   </span></div> 
<div style="margin-left:48mm;margin-top:0mm;padding-top :0mm;"><span style="width:20mm;color:red;">পৌরসভার কপি </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="margin-left:50mm;margin-bottom:-10mm;font-size:4mm"> কিস্তিঃ   </span></div> 
    <div class="all_o_i" style="">
    <p  class="o_in">হোল্ডিং নং &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;: </p>
        <p  class="o_in">কর দাতার আই ডি &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </p>
        <p  class="o_in">করদাতার নাম &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </p>
        <p  class="o_in">রাস্তা/মৌজা/এলাকা/মহল্লা &nbsp;: </p>
        <p  class="o_in">বিলের ঠিকানা &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : </p>
        <p  class="o_in">বিল ইস্যুর তারিখ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : </p>
        <p class="o_in" style="color:red">জমাদানের শেষ তারিখ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;: </p>
    </div>
</div>
</div>

<div class="tax_secion1"> 
    <table class="tax_table"> 
        <tr>
            <td rowspan="2">করের বিবরন</td>
            <td colspan="1">বকেয়া </td>
            <td colspan="5">চলতি</td>
        </tr>

        <tr>
            <td style="line-height: 85%;"> &nbsp;  &nbsp;  &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <span style="float:right">অর্থ </span><br />বছরে   &nbsp;  &nbsp;কিস্তি থেকে </td>
            <td>১ম কিস্তি </td>
            <td>২য় কিস্তি </td>
            <td>৩য় কিস্তি </td>
            <td>৪র্থ কিস্তি </td>
            <td>মোট </td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>- </td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

    </table>
</div>

<div class="tax_secion2"> 
    <table class="tax_table"> 
        <tr>
            <td rowspan="2">করের বিবরন</td>
            <td colspan="1">বকেয়া </td>
            <td colspan="5">চলতি</td>
        </tr>

        <tr>
            <td style="line-height: 85%;"> &nbsp;  &nbsp;  &nbsp; &nbsp; &nbsp;&nbsp;&nbsp;&nbsp; <span style="float:right">অর্থ </span><br />বছরে   &nbsp;  &nbsp;কিস্তি থেকে </td>
            <td>১ম কিস্তি </td>
            <td>২য় কিস্তি </td>
            <td>৩য় কিস্তি </td>
            <td>৪র্থ কিস্তি </td>
            <td>মোট </td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>- </td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
    </table>
</div>

<div class="tax_secion1"> 
    <table class="tax_table"> 
        <tr>
            <td>করের বিবরন <br /> করের বিবরন  <br /> </td>
            <td>কেবল বকেয়া </td>
            <td>বকেয়া ও ১ম কিস্তি একত্রে </td>
            <td>বকেয়া ও (১ম-২য়)কিস্তি একত্রে </td>
            <td>বকেয়া ও (১ম-৩য়) কিস্তি একত্রে </td>
            <td>বকেয়া ও (১ম-৪র্থ) কিস্তি একত্রে </td>
        </tr>



        <tr>
            <td>-</td>
            <td>-</td>
            <td>- </td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
    </table>
</div>

<div class="tax_secion2"> 
    <table class="tax_table"> 
        <tr>
            <td>করের বিবরন <br /> করের বিবরন  <br /> </td>
            <td>কেবল বকেয়া </td>
            <td>বকেয়া ও ১ম কিস্তি একত্রে </td>
            <td>বকেয়া ও (১ম-২য়)কিস্তি একত্রে </td>
            <td>বকেয়া ও (১ম-৩য়) কিস্তি একত্রে </td>
            <td>বকেয়া ও (১ম-৪র্থ) কিস্তি একত্রে </td>
        </tr>



        <tr>
            <td>-</td>
            <td>-</td>
            <td>- </td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>

        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
        <tr>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
            <td>-</td>
        </tr>
    </table>
</div>
';
// $html = '<h1>This is test papers</h1>';

$x = 1; 
while($x <= 1000) {
    $mpdf->AddPage();
    $mpdf->WriteHTML($stylesheet,1);
    $mpdf->WriteHTML($html,2);

    $x++;
}
ob_end_clean();
$mpdf->Output('test.pdf',I);

exit;

?>

You have two options:

Generate your PDF in background without max_execution_time

You should do this anyway when handling something on this scale. Use a cli script to generate your PDF, cli php.ini usually has no max_execution_time set. Save your PDF on disk utilize further (send, share, link to download).

Browsers are not meant to display such amount of data, use a proper desktop PDF viewer for better performance.

You will most likely run into problems with memory limit when generating a PDF of this size, for this, there is a second option:

Generate your PDF file in background in smaller chunks and concatenate them with an external program

Split your HTML to chunks of at most a hundred pages, generate separate documents with cli (each with a new clean script run) and concatenate resulting PDF documents with an external program, eg. GhostScript:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=out.pdf in1.pdf in2.pdf

or pdftk:

pdftk in1.pdf in2.pdf cat output out.pdf