CI2 Dompdf return blank tabs when deploying to server Centos

28 Views Asked by At

I'm creating a pdf feature for my project. Using CI2 and Dompdf. Everthing is normal when I run this project in my local laptop that using windows 11. But when I deploy it to server which is using Centos it return blank page.

This is my file in apps/backend/libraries:

<?php
defined('BASEPATH') or exit('No direct script access allowed');

require_once('apps/backend/third_party/dompdf/autoload.inc.php');

use Dompdf\Dompdf;

class ToPdf 
{
    protected $ci;

    public function __construct()
    {
        $this->ci = &get_instance();
    }

    public function generate($view, $data = array(), $filename = "", $paper = "A4", $orientation = "portrait")
    {
        $html = $this->ci->load->view($view, $data, TRUE);

        $dompdf = new Dompdf();
        $dompdf->loadHtml($html);
        $dompdf->setPaper($paper, $orientation);

        $dompdf->render();
        $dompdf->stream($filename . ".pdf", array("Attachment" => FALSE));
    }
}

And this is the generate pdf method that I created: apps/backend/modules/cppt/controllers/cppt.php

<?php 
class Cppt extends CI_Controller {
    var $webconfig;
    var $moduleid = 401;
    function __construct()
    {
        parent::__construct();
        $this->load->helper('url');
        $this->load->library('session');
        $this->load->library('pagination');
        $this->load->library('ToPdf');
        $this->load->helper('common');
        $this->load->helper('operator');

        $this->load->model('CpptModel');
        $this->load->sharedModel('PendaftaranModel');
        $this->load->sharedModel('LoginModel');
        if (!$this->LoginModel->isLoggedIn()) {
            redirect(base_url() . 'login');
        }

        $this->webconfig = $this->config->item('webconfig');
        $this->module_name = 'cppt';
    }

    function index()
    {
        redirect(base_url() . $this->router->class . '/listing');
    }

    function listing($page = 0)
    {
        if (!checkRole(array($this->moduleid))) {
            redirect(base_url() . 'dashboard');
        }

        $tdata = array();
        $ldata['content'] = $this->load->view($this->router->class . '/index', $tdata, true);
        $this->load->sharedView('template', $ldata);
    }

    ...some code ...

    function generate_pdf($idPendaftaran) {
        $idMedrec = $this->CpptModel->getIdMedrec($idPendaftaran);
        $data = array();
        $data = $this->CpptModel->getCppt(['id_medrec' => $idMedrec]);
        $data['imgUrl'] = base64_encode(file_get_contents(base_url().'public/template/backend_template/img/logo_hs_better-removebg-preview.png'));
        $this->topdf->generate('pdf_view', $data);
    }

}

And this is my pdf file:

<style>
    .soap {
        text-align: left;
    }

    tr > td {
        text-align: center; 
    }
</style>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Catatan Perkembangan Pasien Terintegrasi</title>
    <link rel="icon" type="image/png" href="<?php echo base_url(); ?>theme/img/hi.png">

    <meta name="msapplication-TileColor" content="#ffffff">
    <meta name="theme-color" content="#ffffff">
</head>
<body>
    <header>
        <table>
            <tr>
                <td><img style="width: 49%;" src="data:image/png;base64, <?= $imgUrl; ?>" /></td>
            </tr>
        </table>
        <!-- <hr style="border-top: 1px solid black; height: 0px; margin-bottom:25px"> -->
        <div style="border-color: #555555;
            border-top-width: 2px;
            border-bottom-width: 0;
            border-right-width: 0;
            border-left-width: 0;
            border-style: solid;
            text-align: center;
            margin-bottom:20px;
            ">
        </div>
    </header>
    <main>
        <h3 style="text-align:center">Catatan Perkembangan Pasien Terintegrasi</h3>
        <table style="border: 1px solid;">
            <tr style="border-bottom:  solid thin;">
                <th width="15%" style="font-size: small; text-align:center; border: 1px solid;"><?= $this->lang->line('label_tanggal_cppt');?></th>
                <th width="10%" style="font-size: small; text-align:center; border: 1px solid;"><?= $this->lang->line('label_profesi_cppt');?></th>
                <th width="40%" style="font-size: small; text-align:center; border: 1px solid;"><?= $this->lang->line('label_soap_cppt');?> <br>
                    <small style="font-weight: 500;"><?= $this->lang->line('label_soap_desc_cppt');?> </small>
                </th>
                <th width="20%" style="font-size: small; text-align:center; border: 1px solid;"><?= $this->lang->line('label_instruksi_cppt') ?></th>
                <th width="15%" style="font-size: small; text-align:center; border: 1px solid;"><?= $this->lang->line('label_nama_cppt') ?></th>
            </tr>
            <tr>
                <td style=" border: 1px solid;"><?= isset($cppt['tanggal_pemeriksaan_perawat']) ? $cppt['tanggal_pemeriksaan_perawat'] : '-'; ?></td>
                <td style=" border: 1px solid;">Perawat</td>
                <td class="soap" style=" border: 1px solid;">
                    <ul>
                        <li>
                            S: <?= $keluhan_utama_perawat ?>
                            <?= isset($alergi['alergi_obat']['nama']) ? ('<br>&nbsp;&nbsp;&nbsp; Alergi Obat : '.$alergi['alergi_obat']['nama']) : '' ?>
                            <?= isset($alergi['alergi_kandungan_obat']['nama_kandungan_obat']) ? ('<br>&nbsp;&nbsp;&nbsp; Alergi Kandungan Obat : '.$alergi['alergi_kandungan_obat']['nama_kandungan_obat']) : '' ?>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <?= $alergi_lainnya ?? '' ?>
                        </li>
                        <li>
                            O: Tinggi Badan: <?= $tinggi_badan  ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Berat Badan: <?= $berat_badan ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tensi: <?= $tensi_sistole .'/'. $tensi_diastole ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nadi: <?= $nadi ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Respirasi: <?= $respirasi ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saturasi Oksigen: <?= $spo2 ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suhu Badan: <?= $suhu ?> <br>
                        </li>
                        <li>A: <?= $diagnosis_perawat ?></li>
                        <li>P: <?= $planning_perawat ?></li>
                    </ul>
                </td>
                <td style=" border: 1px solid;"><?= nltobr($instruksi_perawat) ?></td>
                <td style=" border: 1px solid;"><?= isset($perawat['fullname']) ? $perawat['fullname'] : '-'; ?></td>
            </tr>
            <tr>
                <td style=" border: 1px solid;"><?= isset($tanggal_pemeriksaan) ? $tanggal_pemeriksaan : '-'; ?></td>
                <td style=" border: 1px solid;">Dokter</td>
                <td class="soap" style=" border: 1px solid;">
                    <ul>
                        <li>
                            S: <?= $anamnesa ?>
                            <?= isset($alergi['alergi_obat']['nama']) ? ('<br>&nbsp;&nbsp;&nbsp; Alergi Obat : '.$alergi['alergi_obat']['nama']) : '' ?>
                            <?= isset($alergi['alergi_kandungan_obat']['nama_kandungan_obat']) ? ('<br>&nbsp;&nbsp;&nbsp; Alergi Kandungan Obat : '.$alergi['alergi_kandungan_obat']['nama_kandungan_obat']) : '' ?>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <?= $alergi_lainnya ?? '' ?>
                        </li>
                        <li>
                            O: Tinggi Badan: <?= $tinggi_badan  ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Berat Badan: <?= $berat_badan ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Tensi: <?= $tensi_sistole .'/'. $tensi_diastole ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Nadi: <?= $nadi ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Respirasi: <?= $respirasi ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Saturasi Oksigen: <?= $spo2 ?> <br>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Suhu Badan: <?= $suhu ?> <br>
                        </li>
                        <li>
                            A: <ul style="display: inline-table;">
                                <?php foreach($diagnosis as $key => $value): ?>
                                    <li><?= $value['penyakit']['nama'] ?></li>
                                <?php endforeach ?>
                                </ul>
                        </li>
                        <li>
                            P: <?= $planning ?>
                            <?php if(count($terapi)>0): ?>
                            <br>Terapi:
                            <ul>
                                <?php foreach($terapi as $key => $value): ?>
                                    <li><?= $value['obat']['nama'] ?></li>
                                <?php endforeach; ?>
                            </ul>
                            <?php endif; ?>
                            <?php if(count($tindakan)>0): ?>
                            <br>Tindakan:
                            <ul>
                                <?php foreach($tindakan as $key => $value): ?>
                                <li><?= $value['detail']['nama'] ?></li>
                                <?php endforeach; ?>
                            </ul>
                            <?php endif; ?>
                        </li>
                    </ul>
                </td>
                <td style=" border: 1px solid;"><?= nltobr($instruksi_dokter) ?></td>
                <td style=" border: 1px solid;"><?= isset($dokter['nama']) ? $dokter['nama'] : '-'; ?></td>
            </tr>
        </table>
    </main>
    <footer>
        
    </footer>
</body>

I don't know what happened. Any solutions for that problem?

0

There are 0 best solutions below