Abrir pdf generado ...
 
Avisos
Vaciar todo

Abrir pdf generado mediante Breezingforms

11 Respuestas
4 Usuarios
0 Reactions
4,278 Visitas
Respuestas: 125
Estimable Member
Topic starter
 

Hola a to@s,

Necesitaría que el usuario al rellenar un formulario y dar enviar, de forma automatica, le salga un pdf en una nueva ventana con los datos del formulario, de tal forma que el usuario pueda guardar una copia del pdf.

He llegado a generar el pdf con el siguiente tutorial:

https://www.webempresa.com/blog/como-crear-informes-en-pdf-con-joomla-y-breezingforms.html

Me da lo mismo que el formulario se guarde o no, sólo me interesa que el usuario visualice los datos que ha rellenado en un pdf despues de pulsar "Enviar".

Gracias y saludos,


 
Respondido : 09/01/2012 11:45 am
Pablo Velasco
Respuestas: 20382
Illustrious Member
 

Hola,

Prueba a editar la pieza genera_pdf de la que se habla en el tutorial y al final del todo añade la siguiente línea de código para ver si te funciona:

header('Location: administrator/components/com_facileforms/images/informe'.date('d-m-Y_H-i-s').'.pdf'');

 
Respondido : 09/01/2012 11:57 am
Respuestas: 125
Estimable Member
Topic starter
 

Hola,

Gracias por contestar. He probado lo que me has comentado y no hace nada. Envia los datos por mail pero no muestra el pdf. Este es el código:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(73, 117, 172);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');
header('Location: administrator/components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf'');

He probado deshabilitando este código

$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');

y tampoco funciona.

Gracias de nuevo y saludos,


 
Respondido : 09/01/2012 12:23 pm
Jhon
 Jhon
Respuestas: 44989
Illustrious Member Moderator
 

Hola Gustavo

Concatena la ruta completa a ver si te va el header, es decir :

header('Location: '.JPATH_ADMINISTRATOR.DS.'administrator/components/com_facileforms/images/informe'.date('d-m-Y_H-i-s').'.pdf'');

Asegúrate de que el archivo exista, esto lo puedes comprobar colocando directamente la url en el navegador.

Saludos.


 
Respondido : 09/01/2012 6:58 pm
Respuestas: 125
Estimable Member
Topic starter
 

Hola Jhon,

Gracias por contestar. He probado lo que me comentas del asiguiente forma:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(73, 117, 172);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');
//header('Location: '.JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf'');

Y así, si que me genera el pdf en la ruta que indico, pero no lo abre en una nueva ventana para que lo pueda ver el usuario.
Sin embargo, si lo dejo así:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(73, 117, 172);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');
header('Location: '.JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf'');

o deshabilitando este código:

$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/pdfs/informes'.date('d-m-Y_H-i-s').'.pdf');

No hace nada (ni me genera el pdf, ni me lo muestra en el navegador).

Gracias de nuevo y saludos.


 
Respondido : 10/01/2012 5:07 pm
Pablo Velasco
Respuestas: 20382
Illustrious Member
 

Hola,

He realizado una prueba con la generación del pdf y veo que me funciona correctamente la redirección al pdf creado. He utilizado el siguiente código para la pieza de Breezingforms genera_pdf:

require_once(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/libraries/fpdf/fpdf.php');

$pdf=new FPDF();

$pdf->AddPage();
$pdf->SetFont('Arial','',8);
$pdf->SetTextColor(0, 0, 0);

// create the message
$pdf->Write(4,utf8_decode( "Informe : " . $this->formrow->title.nl().nl()));
$pdf->Ln();
$pdf->Write(4,utf8_decode("Fecha de envío: " . $this->submitted.nl().nl()));
$pdf->Ln();
if (count($this->maildata)) {
	foreach ($this->maildata as $data) {
			$pdf->SetFont('Arial','B',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_TITLE] . ": "));
			$pdf->SetFont('Arial','',8);
			$pdf->Write(4,utf8_decode($data[_FF_DATA_VALUE].nl()));
			$pdf->Ln();
	}
	
}


//Close and output PDF document
$pdf->Output(JPATH_ADMINISTRATOR.DS.'components/com_breezingforms/images/informe'.date('d-m-Y_H-i-s').'.pdf');

header('Location: administrator/components/com_breezingforms/images/informe'.date('d-m-Y_H-i-s').'.pdf');

Prueba este código a ver si te funciona.


 
Respondido : 11/01/2012 1:17 pm
Respuestas: 125
Estimable Member
Topic starter
 

Hola,

Lo he probado y funciona ok. Una última cosillas mas: ¿Cual seria el codigo para que lo mostrara en una nueva pestaña o ventana del navegador? El equivalente a

target="_blank"

.

De nuevo muchisimas gracias por vuestra ayuda.

Saludos,


 
Respondido : 12/01/2012 2:58 pm
David Noguera
Respuestas: 4433
Famed Member Moderator
 

Hola Gustavo,

prueba con "target=_new"

Si no, tendrás que pulsar el botón derecho del ratón y decir que lo abra en una nueva pestaña..

Saludos


 
Respondido : 13/01/2012 10:27 am
Respuestas: 125
Estimable Member
Topic starter
 

Hola,

Perdón por tardar tanto en responder, pero no he podido antes. ¿En que parte del codigo iría "target=_new"? Por mas que he probado, no me funciona.

Gracias de nuevo y saludos.


 
Respondido : 18/01/2012 12:20 pm
David Noguera
Respuestas: 4433
Famed Member Moderator
 

Hola Gustavo,

en el último post entendí mal lo que querías hacer.. no se puede hacer que se abra la web en una nueva pestaña por que desde PHP no es posible hacer eso, podríamos hacer pruebas poniendo código Javascript en una página HTML, pero no en un PDF..

Saludos


 
Respondido : 18/01/2012 1:25 pm
Respuestas: 125
Estimable Member
Topic starter
 

Hola David,

Pues lo dejamos así, es decir, abriendo el pdf en la misma ventana.

Se puede cerrar el hilo.

Muchas gracias de nuevo y un saludo


 
Respondido : 19/01/2012 5:02 pm