AJAX - Ayuda generando un PDF con AJAX

   
Vista:

Ayuda generando un PDF con AJAX

Publicado por Guillermo setialfauno@hotmail.com (6 intervenciones) el 19/08/2016 03:12:34
Hola compañeros, necesito su ayuda una vez mas. Se trata de generar un pdf con la librería FPDF, desde un script PHP y recibirla con AJAX, o eso creo yo ;-).

Ví varias opciones en foros en inglés, ninguno me convenció, pero al menos me formé una idea de como hacer las cosas. Lo que rescaté, es que muchos chocaron con, tal vez, el mismo problema que tengo yo ahora, y es que la última línea del script PHP es algo como esto:


$doc->Output ("nombre_archivo.pdf", "D");


Si ejecuto el script PHP en forma independiente, funciona perfecto. No tengo quejas de esa parte.

El tema es que cuando ejecuto el AJAX que llama a PHP, no se ejecuta el PHP, no generando el PDF. Esperaba que apareciera la caja de dialogo de "Guardar como..." el PDF.

Finalmente, la pregunta es: ¿cómo hago para que el script PHP genere y me muestre la caja de "Guardar como..." desde el AJAX.

Les adjunto algo del código, resumido, para que me den alguna recomendación por favor:

Código PHP:


$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage('P','Letter');

$pdf->Output("nombre_archivo.pdf", "D"); //Salida al navegador



Hasta aquí todo bien. Ahora va el código AJAX:

$.ajax({
var url = "inventario.php"; // El script a dónde se realizará la petición.
type: "POST",
url: url,
data: $("#salida").serialize(), // Adjuntar los campos del formulario enviado.

//por medio de data rescatamos el código de error interno del script php
//luego se compara para ejecutar acciones acorde.

success: function(data)
{

... ¿que hago aquí?...
... ¿debo hacer algo?...
... en este espacio se supone que "sale o retorna" el PDF desde PHP

}

});

return false;


Si pudieran ayudarme con esto por favor.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Vainas

Ayuda generando un PDF con AJAX

Publicado por Vainas (71 intervenciones) el 20/08/2016 09:22:30
Buenas:

Para mi hay dos formas de resolver esto (puede haber muchas mas pero solo veo dos ahora mismo):

1. La mas facil de todas: No generes el pdf en el mismo link y lo envies al cliente. mandas un status OK de que el pdf se ha creado bien y envias la ruta donde esta. Por javascript creas un link a la ruta para que el cliente al hacer click se descargue el mismo. Tambien puede ser modificar window.location para que apunte al pdf guardado pero esto no tengo claro que funcione

2. Utilizar un https://developer.mozilla.org/es/docs/Web/API/Blob como te dicen en este ejemplo: http://stackoverflow.com/a/27563953.

Lo que tienes que entender es que ajax esta pensando en un principio para enviar texto xml html o asi.... no binario como tu pdf o una imagen por ejemplo.

Mira en el primer enlace la compatibilidad de los navegadores ya que puede que no en todo o en anteriores funcione....


Espero que sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar