Я использую TCPDF для печати квитанции, а затем отправлю ее клиенту с помощью phpMailer, но у меня есть проблема:
Я не знаю, как сохранить файл в формате pdf.
Я пробовал это:
// reset pointer to the last page $pdf->lastPage(); //Close and output PDF document $pdf->Output('kuitti'.$ordernumber.'.pdf', 'I'); $this->Output("kuitit");
попробуй это
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'F');
это сохраняет созданный файл PDF в вашей пользовательской папке вашего проекта
$filename= "{$membership->id}.pdf"; $filelocation = "D:\\wamp\\www\\project\\custom";//windows $filelocation = "/var/www/project/custom"; //Linux $fileNL = $filelocation."\\".$filename;//Windows $fileNL = $filelocation."/".$filename; //Linux $this->pdf->Output($fileNL,'F');
$pdf->Output()
принимает второй параметр $dest
, который принимает один символ. По умолчанию, $dest='I'
открывает PDF в браузере.
Используйте F
для сохранения в файл
$pdf->Output('/path/to/file.pdf', 'F')
Единственное, что сработало для меня:
// save file $pdf->Output(__DIR__ . '/example_001.pdf', 'F'); exit();
Для тех, кто испытывает трудности с хранением файла, путь должен быть полностью через root. Например, мой был:
$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
пример nick's сохраняет его на ваш localhost.
Но вы также можете сохранить его на локальном диске.
если вы используете doublebackslashes:
$filename= "Invoice.pdf"; $filelocation = "C:\\invoices"; $fileNL = $filelocation."\\".$filename; $pdf->Output($fileNL,'F'); $pdf->Output($filename,'D'); // you cannot add file location here
PS В Firefox (необязательно) Инструменты> Параметры> вкладка Общие> Загрузка> Всегда спрашивайте меня, где сохранять файлы
TCPDF использует fopen()
для сохранения файлов. Таким образом, любые пути, передаваемые функции Output()
TCPDF, должны быть абсолютным путем.
Если вы хотите сохранить относительный путь, используйте, например, глобальную константу __DIR__
(см. Этот ответ ).
$pdf->Output( "myfile.pdf", "F");
TCPDF ERROR: невозможно создать выходной файл: myfile.pdf
В файле include/tcpdf_static.php
около 2435 строк в статической функции fopenLocal
если я удалю полный оператор if, он отлично работает.
public static function fopenLocal($filename, $mode) { /*if (strpos($filename, '://') === false) { $filename = 'file://'.$filename; } elseif (strpos($filename, 'file://') !== 0) { return false; }*/ return fopen($filename, $mode); }
Вы можете попробовать;
$this->Output(/path/to/file);
Итак, для вас это будет похоже;
$this->Output(/kuitit/); //or try ("/kuitit/")