Postingan lainnya
Save to PDF di Codeigniter ?
Hay agan agan , biasanya di nativ saya pake MPDF buat save file ke pdf. tapi di code igniter saya ga ngerti cara makenya :D mungkin ada tutorial yang gampang di mengerti ? atau ada cara yang lebih efektif buat save pdf . mohon saran . thanks
9 Jawaban:
Jawaban Terpilih
kalau saya biasa pakai mpdf. tutorialnya bisa ambil di sini https://davidsimpson.me/2013/05/19/using-mpdf-with-codeigniter/ . cara kerja mpdf adalah men-convert html menjadi pdf, sehingga kita tidak perlu lagi membuat layout report yang ingin ditampilkan, karena report akan ditampilkan sesuai file html dan css yg kita buat. . cara memanggilnya jg cukup mudah dan tidak banyak konnfigurasi. mpdf sangat cocok untuk keperluan basic report.
/* Create PDF File*/
$pdfFilePath = FCPATH."/reports/".$this->data['id_list'].".pdf"; //tentukan nama file dan lokasi report yang akan kita buat
$tgl_cetak = date('d F Y H:i:s');
ini_set('memory_limit','32M');
$html = $this->load->view('cetak_pdf',$this->data,true); // menyimpan hasil HTML ke variabel $html
$this->load->library('pdf');
$pdf = $this->pdf->load();
$pdf->SetFooter(base_url().'|{PAGENO}|'.$tgl_cetak);
$pdf->WriteHTML($html); // generate file pdf dari $html
$pdf->Output($pdfFilePath, 'F'); // save ke direktori $pdfFilePath
//----------------------- EOF ------------------
Kalo saya load lebih dari 2 page gmna gan ? misal ada 3 view body . header , sama footer . yang di jadiin variabel $html nya gmna ?
File berhasil ke save tapi muncul banyak error di controlernya gan ini errornya
A PHP Error was encountered
Severity: 8192
Message: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead
Filename: includes/functions.php
Line Number: 96
Backtrace:
File: C:\xampp\htdocs\ci\application\third_party\mpdf\includes\functions.php
Line: 96
Function: preg_replace
File: C:\xampp\htdocs\ci\application\third_party\mpdf\mpdf.php
Line: 30666
Function: strcode2utf
File: C:\xampp\htdocs\ci\application\third_party\mpdf\mpdf.php
Line: 12824
Function: purify_utf8
File: C:\xampp\htdocs\ci\application\controllers\Welcome.php
Line: 29
Function: WriteHTML
File: C:\xampp\htdocs\ci\index.php
Line: 315
Function: require_once
file pdf berhasil ke save
![](https://skspace.sgp1.digitaloceanspaces.com/forums/images/file pdf.jpg)
controllernya
public function index()
{
$pdfFilePath = FCPATH."/downloads/test.pdf";
ini_set('memory_limit','32M');
$html = $this->load->view('welcome_message','',true);
$this->load->library('pdf');
$pdf = $this->pdf->load();
$pdf->WriteHTML($html);
$pdf->Output($pdfFilePath, 'f');
}
}
kalo biasanya ane pake mpdf sebelum di save ada previewnya dulu gan , gimana caranya ya ? and ilangin errornya biar bisa ke redirect waktu abis save , thanks
Controller :
$data['header'] = $this->load->view('view_header','',true);
$data['body'] = $this->load->view('view_body','',true);
$data['footer'] = $this->load->view('view_footer','',true);
$this->load->view('view_gabung',$data);
View :
<html>
<body>
<?=$header;?>
<?=$body;?>
<?=$footer;?>
<body>
</html>
CI nya versi berapa ? saya pake CI 2.x dan PHP 5.4 tidak ada error. belum pernah saya coba di CI 3.x
masih versi 2.* kayanya gan , ntar di rumah ane cuba lagi, kalo di preview sebelum di save gimana gan ?
SOLVED . untuk metode penggunaan MPDF Solved sama agan @welldone
untuk error nya solved di forum ini -- > https://github.com/carlholmberg/mpdf/issues/1
intinya ada sedikit yang kita harus ubah di function bawaan mpdf nya
$str = preg_replace_callback('/&#([0-9]+)\;/m', function($m){ return code2utf($m[1],$lo); }, $str);
$str = preg_replace_callback('/&#([0-9]+)\;/m', function($m){ return codeHex2utf($m[1],$lo);}, $str);
thanks
Satu lagi, Buat preview sebelum save bisa ganti ini
$pdf->Output($pdfFilePath, 'I');
Yang sebelumnya ini
$pdf->Output($pdfFilePath, 'F');
buat ngehemat drive. jadi di save kalo perlu aja, and save nya ke komputer user bukan ke host kita
gan mau tanya, kalau pake composer apakah masih di buat lagi di library di folder library nya apa tidak ? soalnya ada muncul error seperti ini !! <pre> An uncaught Exception was encountered Type: TypeError
Message: Argument 1 passed to Mpdf\Mpdf::__construct() must be of the type array, string given, called in /Applications/XAMPP/xamppfiles/htdocs/mpdf/application/controllers/Test.php on line 10
Filename: /Applications/XAMPP/xamppfiles/htdocs/mpdf/vendor/mpdf/mpdf/src/Mpdf.php
Line Number: 998
Backtrace:
File: /Applications/XAMPP/xamppfiles/htdocs/mpdf/application/controllers/Test.php Line: 10 Function: __construct
File: /Applications/XAMPP/xamppfiles/htdocs/mpdf/index.php Line: 315 Function: require_once </pre>