我正在使用Codeigniter开发一个系统。我想以PDF格式生成采购订单并保存在文件夹中。所以,我使用TCPDF库来生成PDF。但是我收到了以下错误。
**TCPDF ERROR: Unable to create output file: http://localhost/new-esup/po/14-22-25-04-2015.pdf**
我使用了以下代码。
<?php
tcpdf();
$obj_pdf = new TCPDF('P', PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
$obj_pdf->SetCreator(PDF_CREATOR);
$title = "";
$obj_pdf->SetTitle($title);
$obj_pdf->SetHeaderData('', '', $title, PDF_HEADER_STRING);
$obj_pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$obj_pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
$obj_pdf->SetDefaultMonospacedFont('helvetica');
//$obj_pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$obj_pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
$obj_pdf->SetMargins(PDF_MARGIN_LEFT, '5', PDF_MARGIN_RIGHT);
$obj_pdf->setPrintHeader(false);
$obj_pdf->setPrintFooter(false);
$obj_pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
$obj_pdf->SetFont('helvetica', '', 12);
$obj_pdf->setFontSubsetting(false);
$obj_pdf->AddPage();
$content = 'HTML Text'
$obj_pdf->writeHTML($content, true, false, true, false, '');
$path = base_url() . 'po/';
$file_name = $rfq_row->rfq_id . '-' . $quote_row->quote_id . '-' . date('d-m-Y') . '.pdf';
$full_path = $path . $file_name;
ob_clean();
$obj_pdf->Output($full_path, 'F');
?>
任何人都可以帮助我。我浪费了很多时间来解决这个错误。
答案 0 :(得分:1)
在tcpdf_static.php下的静态函数中删除条件'if statement ..',它工作了!!
public static function fopenLocal($filename, $mode) {
/*if (strpos($filename, '://') === false) {
$filename = 'file://'.$filename;
} elseif (strpos($filename, 'file://') !== 0) {
return false;
}*/
return fopen($filename, $mode);
}
答案 1 :(得分:0)
在运行脚本时,确保您的文件没有打开。如果它在其他地方打开,则TCPDF无法打开它。
答案 2 :(得分:0)
尝试使用FCPATH
代替base_url()
:
$obj_pdf->Output(FCPATH.'your/path/directory/filename.pdf', 'F');