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()
は2番目のパラメーター$dest
、単一の文字を受け入れます。デフォルト、 $dest='I'
は、ブラウザでPDFを開きます。
F
を使用してファイルに保存します
$pdf->Output('/path/to/file.pdf', 'F')
私のために働いた唯一のもの:
// save file
$pdf->Output(__DIR__ . '/example_001.pdf', 'F');
exit();
ファイルを保存するのが難しい人のために、パスはルートを通る必要があります。たとえば、私のものは:
$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
$pdf->Output( "myfile.pdf", "F");
TCPDFエラー:出力ファイルを作成できません: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);
}
それでもまだ
TCPDFエラー:出力ファイルを作成できません:myfile.pdf
PDFデータを変数に入れ、この文字列をファイルに保存することにより、TCPDFのファイル保存ロジックを回避できます。
$pdf_string = $pdf->Output('pseudo.pdf', 'S');
file_put_contents('./mydir/myfile.pdf', $pdf_string);
nickの例では、ローカルホストに保存します。
ただし、ローカルドライブに保存することもできます。
二重バックスラッシュを使用する場合:
$filename= "Invoice.pdf";
$filelocation = "C:\\invoices";
$fileNL = $filelocation."\\".$filename;
$pdf->Output($fileNL,'F');
$pdf->Output($filename,'D'); // you cannot add file location here
追伸Firefox(オプション)で、[ツール]> [オプション]> [全般]タブ> [ダウンロード]> [ファイルの保存先を常に確認する]
試してみてください。
$this->Output(/path/to/file);
あなたにとって、それは次のようになります。
$this->Output(/kuitit/); //or try ("/kuitit/")