简体   繁体   中英

DOMPDF generated pdf result getting messed up

This is my following piece of code to generated pdf

$values = $Viewer->getPrintData($_GET['id']);

if($values->num_rows > 0){
    $html_data = "";
    while($row = $values->fetch_assoc()){
        switch($row['birth_type_id'])
        {
            case 1: $hospital_id = $row['hospital_id'];
                     $home_detail = "None";
                     $other_detail = "None";
                     $birth_formatted_type = "Birth at : ".$Viewer->getHospitalName($row['hospital_id']);
                     break;

            case 2: $hospital_id = "None";
                     $home_detail = $row['home_detail'];
                     $other_detail = "None";
                     $birth_formatted_type = "|| Birth at Home || <br />Home Details Are : ".$row['home_detail'];
                     break;

            case 3: $hospital_id = "None";
                     $home_detail = "None";
                     $other_detail = $row['other_detail'];
                     $birth_formatted_type = "|| Birth at Other Location || <br />Details Are : ".$row['other_detail'];
                     break;

            default:
                     $hospital_id = "None";
                     $home_detail = "None";
                     $other_detail = "None";
                     break;
        }

        $html_data .= "
                     <html>
                          <head>
                                <style>
                                     *
                                          {
                                                font-family: 'oswald';
                                          }
                                     @page
                                          {
                                                margin: 10px;
                                          }
                                     body, table
                                          {
                                                margin: 10px;
                                          }
                                </style>
                          </head>
                          <body>
                                <br />
                                <center>
                                     <h2>
                                          Birth Certificate Details
                                     </h2>
                                </center>
                                <div style='width: 100%;'>
                                     <table>
                                          <tr>
                                                <td style='width: 350px;'>
                                                     <u>
                                                          <h3>Baby Related Details</h3>
                                                     </u>
                                                     Registration Number: ".$row['registration_number']."<br />
                                                     Birth Date: ".$row['birth_date']."<br />
                                                     Birth Time: ".$row['birth_time']."<br /><br />
                                                     Gender: ".$Viewer->getGender($row['gender_id'])."<br />
                                                     Baby's Full Name: ".$row['baby_name']."<br />
                                                     Father's Full Name: ".$row['fathers_name']."<br />
                                                     Father's Aadhar ID: ".$row['fathers_uid']."<br />
                                                     Mother's Full Name: ".$row['mothers_name']."<br />
                                                     Mother's Aadhar ID: ".$row['mothers_uid']."<br />
                                                     While Baby's Birth Parents Address: ".$row['while_baby_birth_parents_address']."<br />
                                                     Parent's Permanent Address: ".$row['parents_permanent_address']."<br />
                                                </td>
                                                <td style='width: 350px;'>
                                                     <u>
                                                          <h3>Parents Details</h3>
                                                     </u>
                                                     {$birth_formatted_type}<br />
                                                     Religion: ".$row['religion']."<br /><br />
                                                     Taluka: ".$Viewer->getTalukaDetail($row['taluka_id'])."<br />
                                                     City: ".$Viewer->getCityDetail($row['city_id'])."<br />
                                                     Pincode: ".$Viewer->getPincodeDetail($row['pincode_id'])."
                                                     <br /><br />
                                                     Father's Education Level: ".$Viewer->getEducationLevel($row['id_of_fathers_education_level'])."<br />
                                                     Mother's Education Level: ".$Viewer->getEducationLevel($row['id_of_mothers_education_level'])."}<br />
                                                     Father's Occupation: ".$Viewer->getOccupationDetail($row['id_of_fathers_occupation'])."<br />
                                                     Mother's Occupation: ".$Viewer->getOccupationDetail($row['id_of_mothers_occupation'])."

                                                     <u>
                                                          <h3><br />Other Details</h3>
                                                     </u>    
                                                     Mother's Marriage Age: ".$row['mothers_marriage_age']."<br />
                                                     While Baby's Birth Mother's Age: ".$row['while_birth_mothers_age']."<br />
                                                     Alive Deliveries Upto Now: ".$row['total_alive_deliveries_uptill_date']."<br /><br />
                                                     Birth Place / Person: ".$Viewer->getBirthPlaceOrPerson($row['id_of_birth_place_person'])."<br />
                                                     Mother's Delivery Type: ".$Viewer->getDeliveryType($row['id_of_delivery_type'])."<br />
                                                     Child's Weight: ".$row['child_weight_while_birth']."<br />
                                                     Pregnancy Duration: ".$row['pregnancy_duration']."
                                                </td>
                                          </tr>
                                     </table>
                                </div>
                          </body>
                     </html>";
    }

    require "../dompdf/dompdf_config.inc.php";
    $dompdf = new DOMPDF();
    $dompdf->load_html($html_data);
    $dompdf->render();
    $dompdf->stream("PD_.pdf");
}

I have total number of 29 entries that have to be printed on individual page. The problem is when the 1st result is being printed on the page it is fine from the second page on wards the result is being jumbled as shown in the image below

Print of 1st page

打印第1页

Print being generated from 2nd page on wards is being like this

打印从病房的第2页生成

Please someone help.

I had some trouble with dompdf as well, in the end we've decided to use https://github.com/KnpLabs/snappy - works great for creating new pdfs and even better when converting html to pdf.

    $template = $this->twig->loadTemplate($data['template']);
    $rendered = $template->renderBlock('bodyHtml', ['data' => $data['data']]);

    return $this->snappy->getOutputFromHtml($message);

maybe this will work out better for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM