In Codeigniter I have got this error when I am trying to generate a PDF file using TCPDF library. I have followed some example code, which code generate a PDF file, but all time I am got this error:
TCPDF ERROR: Unable to create output file: http://zaamana.net/assets/generate_pdf/1545722877.pdf
How can I do to solve this error?
I am trying this code:
In my controller page I have created this function.
<?php public function generatePDFFile() { $base_url=base_url(); $data = array(); $htmlContent=''; $data['getInfo'] = 'My PDF Data'; $htmlContent = $this->load->view('back/admin/pdf_file', $data, TRUE); $createPDFFile = time().'.pdf'; return $this->createPDF($base_url.'assets/generate_pdf/'.$createPDFFile, $htmlContent); } ?>
Then define createPDF function and enter these codes:
<?php public function createPDF($fileName,$html) { ob_start(); $this->load->library('Pdf'); $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetCreator('PDF_CREATOR'); $pdf->SetAuthor('TechArise'); $pdf->SetTitle('TechArise'); $pdf->SetSubject('TechArise'); $pdf->SetKeywords('TechArise'); // set default header data $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE, PDF_HEADER_STRING); // set header and footer fonts $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(false); // set default monospaced font $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // set margins $pdf->SetMargins(PDF_MARGIN_LEFT, 0, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(0); $pdf->SetFooterMargin(0); // set auto page breaks $pdf->SetAutoPageBreak(TRUE, 0); // set image scale factor $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); if (@file_exists(dirname(__FILE__).'/lang/eng.php')) { require_once(dirname(__FILE__).'/lang/eng.php'); $pdf->setLanguageArray($l); } // set font $pdf->SetFont('dejavusans', '', 10); // add a page $pdf->AddPage(); // output the HTML content $pdf->writeHTML($html, true, false, true, false, ''); // reset pointer to the last page $pdf->lastPage(); ob_end_clean(); //Close and output PDF document $pdf->Output($fileName, 'F'); } ?>
You can not use the base_url() when you uploaded any file or generated any file. Here you need to remove base_url() from the file path, or “FCPATH” to replace base_url().
For Example:
<?php (FCPATH.'assets/generate_pdf/'.$createPDFFile, $htmlContent); ?>
Follow this example code:
<?php public function generatePDFFile() { $base_url=base_url(); $data = array(); $htmlContent=''; $data['getInfo'] = 'My PDF Data'; $htmlContent = $this->load->view('back/admin/pdf_file', $data, TRUE); $createPDFFile = time().'.pdf'; return $this->createPDF(FCPATH.'assets/generate_pdf/'.$createPDFFile, $htmlContent); } ?>
Question and answer is powered by AnsPress.io