简体   繁体   English

DOMPDF生成的pdf结果搞砸了

[英]DOMPDF generated pdf result getting messed up

This is my following piece of code to generated pdf 这是我生成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. 我必须在单个页面上打印总共29个条目。 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页

打印第1页

Print being generated from 2nd page on wards is being like this 在病房的第2页生成的打印是这样的

打印从病房的第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. 我也遇到了dompdf的问题,最后我们决定使用https://github.com/KnpLabs/snappy - 非常适合创建新的pdf,甚至在将html转换为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. 也许这对你来说会更好。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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