php - plantillas - TCPDF ¿Guardar archivo en la carpeta?
tcpdf output (10)
Estoy usando TCPDF para imprimir un recibo y luego enviarlo al cliente con phpMailer, pero tengo un problema:
No tengo idea de cómo guardar el archivo en un pdf.
He intentado esto:
// reset pointer to the last page
$pdf->lastPage();
//Close and output PDF document
$pdf->Output(''kuitti''.$ordernumber.''.pdf'', ''I'');
$this->Output("kuitit");
Lo único que funcionó para mí:
// save file
$pdf->Output(__DIR__ . ''/example_001.pdf'', ''F'');
exit();
Para quien tenga dificultades para almacenar el archivo, la ruta tiene que ser completamente a través de la raíz. Por ejemplo, el mío era:
$pdf->Output(''/home/username/public_html/app/admin/pdfs/filename.pdf'', ''F'');
Puedes intentarlo;
$this->Output(/path/to/file);
Así que para ti, será como;
$this->Output(/kuitit/); //or try ("/kuitit/")
Si todavía tienes
TCPDF ERROR: No se puede crear el archivo de salida: myfile.pdf
puede evitar la lógica de guardado de archivos de TCPDF colocando datos PDF en una variable y guardando esta cadena en un archivo:
$pdf_string = $pdf->Output(''pseudo.pdf'', ''S'');
file_put_contents(''./mydir/myfile.pdf'', $pdf_string);
TCPDF usa fopen()
para guardar archivos. Cualquier ruta que se pase a la función Output()
TCPDF debería ser una ruta absoluta.
Si desea guardar en una ruta relativa, utilice, por ejemplo, la constante global __DIR__
(vea esta respuesta ).
el ejemplo de nick lo guarda en tu localhost.
Pero también puedes guardarlo en tu disco local.
Si usas barras dobles:
$filename= "Invoice.pdf";
$filelocation = "C://invoices";
$fileNL = $filelocation."//".$filename;
$pdf->Output($fileNL,''F'');
$pdf->Output($filename,''D''); // you cannot add file location here
PS En Firefox (opcional) Herramientas> Opciones> pestaña General> Descargar> Preguntarme siempre dónde guardar archivos
esto almacena el archivo pdf generado en su carpeta personalizada de su proyecto
$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'');
prueba esto
$pdf->Output(''kuitti''.$ordernumber.''.pdf'', ''F'');
$pdf->Output()
toma un segundo parámetro $dest
, que acepta un solo carácter. El valor predeterminado, $dest=''I''
abre el PDF en el navegador.
Usa F
para guardar en el archivo
$pdf->Output(''/path/to/file.pdf'', ''F'')
$pdf->Output( "myfile.pdf", "F");
TCPDF ERROR: No se puede crear el archivo de salida: myfile.pdf
En el archivo include/tcpdf_static.php
sobre la línea 2435 en la función estática fopenLocal
si fopenLocal
la ''declaración'' if completa, funciona 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);
}