TCPDF Enregistrer le fichier dans un dossier?

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

Je ne sais pas comment sauvegarder le fichier dans un pdf.

j'ai essayé ceci:

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

//Close and output PDF document
$pdf->Output('kuitti'.$ordernumber.'.pdf', 'I');
$this->Output("kuitit");
20
demandé sur kushalbhaktajoshi 2012-09-06 20:37:31

10 réponses

essayez ceci

$pdf->Output('kuitti'.$ordernumber.'.pdf', 'F');
42
répondu kushalbhaktajoshi 2012-09-06 16:44:07

il 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');
15
répondu Developer 2018-09-24 15:07:05

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

Utiliser F pour enregistrer le fichier

$pdf->Output('/path/to/file.pdf', 'F')
13
répondu nick 2013-08-20 16:31:55

seule chose qui a fonctionné pour moi:

// save file
$pdf->Output(__DIR__ . '/example_001.pdf', 'F');
exit();
8
répondu user1477388 2015-05-10 12:11:32

pour ceux qui ont des difficultés à stocker le fichier, le chemin doit passer par root. Par exemple, le mien était:

$pdf->Output('/home/username/public_html/app/admin/pdfs/filename.pdf', 'F');
4
répondu CIRCLE 2015-02-19 20:09:18
$pdf->Output( "myfile.pdf", "F");

TCPDF erreur: Impossible de créer le fichier de sortie: myfile.pdf

Dans le include/tcpdf_static.php le fichier sur 2435 ligne 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
répondu Atul Baraiya 2017-05-30 13:43:02

l'exemple de nick Le sauvegarde dans votre localhost.

Mais vous pouvez également le sauvegarder sur votre lecteur local.

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

2
répondu KarlosFontana 2013-10-11 11:16:47

TCPDF utilise fopen() pour sauvegarder des fichiers. Tous les chemins sont passés à TCPDF Output() fonction doit donc être un chemin absolu.

si vous souhaitez sauvegarder sur un chemin relatif, utilisez par exemple le __DIR__ constante globale (voir cette réponse).

2
répondu Jamy Mahabier 2015-04-06 12:44:33

Si vous avez encore

TCPDF erreur: Impossible de créer le fichier de sortie: myfile.pdf

Vous pouvez éviter la logique de sauvegarde de fichier de TCPDF en mettant des données PDF à une variable et en sauvegardant cette chaîne de caractères dans un fichier:

$pdf_string = $pdf->Output('pseudo.pdf', 'S');
file_put_contents('./mydir/myfile.pdf', $pdf_string);
1
répondu Mesa 2018-03-07 08:26:11

Vous pouvez essayer;

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

Donc, pour vous, ce sera comme;

$this->Output(/kuitit/);  //or try ("/kuitit/")
0
répondu blasteralfred Ψ 2012-09-06 16:42:46