Estoy utilizando la funcionalidad de Ajax para recuperar mi contenido y necesito exportar PDF en caso de éxito de jQuery.ajax()
. ¿Cómo puedo hacer eso?¿Es posible generar PDF usando jQuery?
Respuesta
jQuery no puede (porque JavaScript no puede) crear un PDF a partir de datos, no ... puede obtener uno de su servidor (como cualquier otra solicitud), pero no puede generar uno. JavaScript simplemente no tiene un mecanismo (aunque hay algunas opciones de HTML5 implementadas ahora) para crear/guardar un archivo que funcione en varios navegadores, especialmente un archivo binario.
Si es posible, el lado del servidor es una mejor opción para generar archivos PDF. Probablemente sea más rápido para la mayoría de los usuarios y devolver un archivo a través de una solicitud HTTP estándar es mucho más sólido que las opciones actuales del lado del cliente.
Dicho esto, esta biblioteca generará un archivo PDF en el lado del cliente: http://snapshotmedia.co.uk/blog/jspdf
En los navegadores que soportan URIs de datos, se puede devolver el PDF directamente. En otros navegadores, puede acoplarlo con un componente Flash llamado Downloadify para lograr lo mismo.
Si está recuperando datos PDF de su servidor en su éxito AJAX y necesita enviarlos a su usuario como una descarga, se puede lograr con un poco de codificación base64. Si entiendo correctamente, lo más probable es que tenga un escenario en el que su servidor posiblemente devuelva un PDF o algún otro tipo de datos cuando tenga éxito (como XML). En este caso, tiene dos pasos para manejar la solicitud:
1) Determine el tipo de contenido a través de su encabezado. Aquí está un ejemplo de la división de su controlador basado en la respuesta:
$.ajax({
type: "POST", url: "/test", data: someData, success: function(response, status, xhr){
var ct = xhr.getResponseHeader("content-type") || "";
if (ct.indexOf(‘xml’) > -1) {
// handle xml here
}
if (ct.indexOf(‘pdf’) > -1) {
// handle pdf here
}
}
});
2) Una vez que tenga su contenido PDF, puede redirigir el navegador para mostrar el PDF mediante el uso de un truco de datos base 64. Primero, codifica el contenido de datos en base64. Hay un number of libraries para ayudarte a hacer esto en Javascript. A continuación, devuelva su contenido a través de document.location.href:
document.location.href = 'data:application/pdf;base64,' + base64PDFData;
Eso debería obtener lo que necesita. En teoría, podría reenviar cualquier tipo de contenido al navegador con este método.
EDITAR:
debería mencionar que el URI de datos desafortunadamente no funciona en IE due to security restrictions.
Si el HTML que está tratando es una tabla, puede usar el complemento jquery.dataTables con TableTools para generar PDF. Utiliza Flash detrás de escena y está severamente limitado en el formateo, pero genera PDF.
Creo que se puede utilizar este plugin
Agregue esto a su escritura:
<script src="https://docraptor.com/docraptor-1.0.0.js"></script>
DocRaptor.createAndDownloadDoc("YOUR_API_KEY_HERE", {
test: false, // test documents are free, but watermarked
type: "pdf",
name: planStatus+"_" +assessmentYear+"_"+employeeId+ ".pdf",
document_content: document.querySelector('#MyDoc').innerHTML, // use this page's HTML
// document_content: "<h1>Hello world!</h1>", // or supply HTML directly
// document_url: "http://example.com/your-page", // or use a URL
// javascript: true, // enable JavaScript processing
// prince_options: {
// media: "screen", // use screen styles instead of print styles
// }
})
copie y pegue el código para generar pdf, y puede darle cualquier nombre al pdf que desee.He dado el nombre tomado de la variable según mi necesidad –
- 1. ¿Es posible generar XML simple usando Haml?
- 2. Si es posible generar un archivo PDF desde un UITableView?
- 3. Cómo generar PDF usando HTML5 y JavaScript
- 4. ¿Alguien puede decirme que es posible generar archivos PDF usando javascript?
- 5. ¿Es posible paginar una tabla usando jquery?
- 6. ¿Es posible convertir HTML en PDF usando Zend_Pdf?
- 7. ¿Es posible guardar un PDF modificado usando MuPDF?
- 8. Generar PDF con firma digital
- 9. ¿Es posible generar clases serializables con CXF?
- 10. Generar tabla en PDF
- 11. ¿Cómo generar un PDF?
- 12. ¿Cómo generar tablas formateadas de pdf o eps usando Python?
- 13. ¿Es posible generar tonos complejos en C#?
- 14. ¿Es posible generar automáticamente proyectos de Xcode?
- 15. ¿Generar números de página usando javascript/jquery?
- 16. ¿Es posible implementar "Recordarme" usando las cookies de jquery?
- 17. ¿Es posible usar un cuadro de confirmación modal usando JQuery?
- 18. Generar un pdf con python
- 19. ¿Es posible el compilador Jquery * *?
- 20. ¿Cómo generar un PDF descargable con pdfbox (PDF dañado)?
- 21. ¿Es posible abrir un PDF con fancybox 2.1 en IE8?
- 22. Generar informe en PDF de php
- 23. Generar y guardar un archivo PDF
- 24. ¿Es posible vincular a un marcador dentro de un PDF usando parámetros de URL?
- 25. ¿es posible verificar si el pdf está protegido con contraseña usando ghostscript?
- 26. ¿Es posible combinar una serie de archivos PDF en uno usando Ruby?
- 27. ¿Es posible obtener elementos estructurales de un archivo PDF usando iTextSharp?
- 28. Metaprogramación de plantillas C++: ¿es posible generar el código generado?
- 29. Generar archivos PDF desde asp.net mvc
- 30. gamba PDF: necesito generar tablas anidadas
sí, es posible generar un pdf con javascript ... http: // stackoverflow.com/questions/742271/generate-pdf-files-with-javascript –
@YuriKolovsky - Eso no funciona en todos los navegadores, está utilizando URI de datos (y puede requerir un complemento), la respuesta anterior sigue siendo cierta: "JavaScript simplemente no tiene un mecanismo para crear/guardar un archivo ** que funcione en todos los navegadores ** " –
No veo la pregunta mencionando ** navegador cruzado ** –