Pregunta

Estoy escribiendo una aplicación que permitiría a los usuarios editar un calendario, su descripción y algunas otras cosas. Estoy usando jquery, php y mysql. Cada vez que el usuario realiza un cambio, actualiza de forma asíncrona la base de datos.

Me gustaría darles la opción de convertir lo que hacen en un pdf. ¿Hay alguna forma de publicar en mi servidor el html en bruto de la página después de que el usuario realice cambios?

Podría regenerar la página usando solo php en el servidor, pero de esta forma sería más fácil si es posible.

¿Fue útil?

Solución

Puede usar esto para obtener la mayor parte del HTML de la página:

var htmlSource = document.getElementsByTagName('html')[0].innerHTML;

Sin embargo, carecerá de la apertura y el cierre de las etiquetas HTML y doctype, lo que probablemente no le importará, ya que podría recrearlo fácilmente en el servidor.

Supondré que puedes usar el mismo AJAX que ya usas para enviar htmlSource al servidor una vez que lo hayas agarrado.

Otros consejos

Ciertamente, puede devolver el innerHTML desde jQuery a cualquier objeto que pueda seleccionar, aunque no parece ser la mejor forma de hacerlo (consulte otras respuestas para obtener alternativas).

Tenga cuidado con los ataques XSS . Si solo ejecuta el HTML de un lado a otro sin verificarlo primero, se está dejando abierto a riesgos importantes.

Regenerar la página desde el servidor será la mejor opción. Para tener una buena experiencia de descarga, querrá poder enviar encabezados para Contenido-Tipo y tamaño.

Para responder a su pregunta, usaría búfer de salida para capture la salida de sus scripts y luego use una de las muchas herramientas disponibles para convertir HTML a PDF.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top