web-dev-qa-db-fra.com

TCPDF Enregistrer le fichier dans un dossier?

J'utilise TCPDF pour imprimer un reçu, puis l'envoyer au client avec phpMailer, mais j'ai un problème:

Je ne sais pas comment enregistrer le fichier en pdf.

J'ai essayé ça:

// reset pointer to the last page
$pdf->lastPage();

//Close and output PDF document
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'I');
$this->Output("kuitit");
27
user1537415

essaye ça

$pdf->Output('kuitti'.$ordernumber.'.pdf', 'F');
50
kushalbhaktajoshi

cela stocke le fichier pdf généré dans votre dossier personnalisé de votre projet

$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');
20
Developer

$pdf->Output() prend un deuxième paramètre $dest, qui accepte un seul caractère. Le défaut, $dest='I' ouvre le PDF dans le navigateur.

Utilisez F pour enregistrer dans un fichier

$pdf->Output('/path/to/file.pdf', 'F')
16
nick

La seule chose qui a fonctionné pour moi:

// save file
$pdf->Output(__DIR__ . '/example_001.pdf', 'F');
exit();
11
user1477388

Pour ceux qui ont des difficultés à stocker le fichier, le chemin doit être tout au long de la racine. Par exemple, le mien était:

$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
5
CIRCLE
$pdf->Output( "myfile.pdf", "F");

ERREUR TCPDF: Impossible de créer le fichier de sortie: monfichier.pdf

Dans le include/tcpdf_static.php fichier d'environ 2435 lignes dans la fonction statique fopenLocal si je supprime "l'instruction if" complète, cela fonctionne très bien.

public static function fopenLocal($filename, $mode) {
    /*if (strpos($filename, '://') === false) {
        $filename = 'file://'.$filename;
    } elseif (strpos($filename, 'file://') !== 0) {
        return false;
    }*/
    return fopen($filename, $mode);
}
3
Atul Baraiya

Si vous obtenez toujours

ERREUR TCPDF: Impossible de créer le fichier de sortie: monfichier.pdf

vous pouvez éviter la logique d'enregistrement des fichiers de TCPDF en mettant PDF données dans une variable et en enregistrant cette chaîne dans un fichier:

$pdf_string = $pdf->Output('pseudo.pdf', 'S');
file_put_contents('./mydir/myfile.pdf', $pdf_string);
2
Mesa

l'exemple de Nick l'enregistre sur votre hôte local.
Mais vous pouvez également l'enregistrer sur votre disque local.
si vous utilisez des barres obliques inverses:

 $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. Dans Firefox (facultatif) Outils> Options> onglet Général> Télécharger> Toujours me demander où enregistrer les fichiers

2
KarlosFontana

TCPDF utilise fopen() pour enregistrer les fichiers. Tout chemin transmis à la fonction Output() de TCPDF doit donc être un chemin absolu.

Si vous souhaitez enregistrer dans un chemin relatif, utilisez par exemple le __DIR__ constante globale (voir cette réponse ).

2
Jamy Mahabier

Vous pouvez essayer;

$this->Output(/path/to/file);

Donc pour vous, ce sera comme;

$this->Output(/kuitit/);  //or try ("/kuitit/")
0
blasteralfred Ψ