TCPDF将文件保存到文件夹?

时间:2012-09-06 16:37:32

标签: php tcpdf

我正在使用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");

11 个答案:

答案 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');

请记住使该目录可写。