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> Alergi Obat : '.$alergi['alergi_obat']['nama']) : '' ?>
<?= isset($alergi['alergi_kandungan_obat']['nama_kandungan_obat']) ? ('<br> Alergi Kandungan Obat : '.$alergi['alergi_kandungan_obat']['nama_kandungan_obat']) : '' ?>
<?= $alergi_lainnya ?? '' ?>
</li>
<li>
O: Tinggi Badan: <?= $tinggi_badan ?> <br>
Berat Badan: <?= $berat_badan ?> <br>
Tensi: <?= $tensi_sistole .'/'. $tensi_diastole ?> <br>
Nadi: <?= $nadi ?> <br>
Respirasi: <?= $respirasi ?> <br>
Saturasi Oksigen: <?= $spo2 ?> <br>
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> Alergi Obat : '.$alergi['alergi_obat']['nama']) : '' ?>
<?= isset($alergi['alergi_kandungan_obat']['nama_kandungan_obat']) ? ('<br> Alergi Kandungan Obat : '.$alergi['alergi_kandungan_obat']['nama_kandungan_obat']) : '' ?>
<?= $alergi_lainnya ?? '' ?>
</li>
<li>
O: Tinggi Badan: <?= $tinggi_badan ?> <br>
Berat Badan: <?= $berat_badan ?> <br>
Tensi: <?= $tensi_sistole .'/'. $tensi_diastole ?> <br>
Nadi: <?= $nadi ?> <br>
Respirasi: <?= $respirasi ?> <br>
Saturasi Oksigen: <?= $spo2 ?> <br>
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?