我正在使用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");
答案 0 :(得分:47)
试试这个
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'F');
答案 1 :(得分:17)
这会将生成的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');
答案 2 :(得分:14)
$pdf->Output()
接受第二个参数$dest
,该参数接受单个字符。默认情况下,$dest='I'
会在浏览器中打开PDF。
使用F
保存到文件
$pdf->Output('/path/to/file.pdf', 'F')
答案 3 :(得分:11)
只有对我有用的东西:
// save file
$pdf->Output(__DIR__ . '/example_001.pdf', 'F');
exit();
答案 4 :(得分:5)
对于谁在存储文件时遇到困难,路径必须一直通过root。例如,我的是:
$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
答案 5 :(得分:3)
$pdf->Output( "myfile.pdf", "F");
TCPDF错误:无法创建输出文件:myfile.pdf
如果我删除了完整的' if语句,请在静态函数include/tcpdf_static.php
中的fopenLocal
文件中关于2435行。它工作正常。
public static function fopenLocal($filename, $mode) {
/*if (strpos($filename, '://') === false) {
$filename = 'file://'.$filename;
} elseif (strpos($filename, 'file://') !== 0) {
return false;
}*/
return fopen($filename, $mode);
}
答案 6 :(得分:2)
nick的示例将其保存到您的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
P.S。在Firefox(可选)工具>选项>常规标签>下载>总是问我在哪里保存文件
答案 7 :(得分:2)
TCPDF使用fopen()
来保存文件。
因此,传递给TCPDF的Output()
函数的任何路径都应该是绝对路径。
如果您想保存到相对路径,请使用例如__DIR__
全局常量(请参阅this answer)。
答案 8 :(得分:1)
如果你还是
TCPDF错误:无法创建输出文件:myfile.pdf
您可以通过将PDF数据放入变量并将此字符串保存到文件来避免TCPDF的文件保存逻辑:
$pdf_string = $pdf->Output('pseudo.pdf', 'S');
file_put_contents('./mydir/myfile.pdf', $pdf_string);
答案 9 :(得分:0)
你可以试试;
$this->Output(/path/to/file);
所以对你来说,就像是;
$this->Output(/kuitit/); //or try ("/kuitit/")
答案 10 :(得分:0)
这对我有用,保存到根目录下的子目录(temp_pdf
):
$sFilePath = $_SERVER['DOCUMENT_ROOT'] . '//temp_pdf/file.pdf' ;
$pdf->Output( $sFilePath , 'F');
请记住使该目录可写。