I'm trying to generate pdf with the combination of TCPDF and FPDI. Here is my code.
require_once('../tcpdf/tcpdf.php');
require_once('../FPDI/fpdi.php');
$fileName = '../sample.pdf';
class PDF extends FPDI {
/**
* "Remembers" the template id of the imported page
*/
var $_tplIdx;
var $numPages = 0;
/**
* Draw an imported PDF logo on every page
*/
function Header() {
global $fileName;
if (is_null($this->_tplIdx)) {
$this->setSourceFile($fileName);
$this->_tplIdx = $this->importPage(1);
$this->numPages = $this->setSourceFile($fileName);
}
$size = $this->useTemplate($this->_tplIdx);
}
function Footer() {
// emtpy method body
}
}
// initiate PDF
$pdf = new PDF($fileName);
$pdf->setFontSubsetting(true);
// add a page
$pdf->AddPage();
// save file
$pdf->Output('output.pdf', 'F');
Here, the last line $pdf->Output('output.pdf', 'F');
is for saving the file. But it is not working. When I was having only $pdf->Output()
, it was showing the pdf in browser.
I've tried $pdf->Output('output.pdf', 'D');
for downloading and it worked fine. Seems $pdf->Output('output.pdf', 'F');
is only not working and it shown an error TCPDF ERROR: Unable to create output file: output.pdf
.
Note: there is no file permission issues
Can anyone point out the issue please.
Try putting ob_clean(); right above $pdf->Output('output.pdf', 'F');
ob_clean();
// save file
$pdf->Output('output.pdf', 'F');
if that dont work. Than you need to set a path like this:
$pdf->Output('yourpath/output.pdf', 'F');
if you dont know the absolute path try this:
$pdf->Output($_SERVER['DOCUMENT_ROOT'] . 'output.pdf', 'F');