Convertidor de página web a PDF

Estoy buscando un complemento/biblioteca de JavaScript o PHP para convertir un sitio web bellamente diseñado (usando CSS) a un archivo PDF.

Para aclarar más, necesito convertir la salida HTML-CSS en la página web a un archivo PDF. Encontré algunos complementos interesantes relacionados con JavaScript como jsPDF, pero solo convierte HTML a PDF, ignorando CSS. Que no es lo que quiero.

Algunos puntos:

  • El archivo PDF generado debe tener una salida de HTML y CSS.
  • Debería funcionar tanto en Mac como en Windows.
  • Debería funcionar en la última versión de Chrome y Firefox.

PD: Los elementos se agregan dinámicamente usando JavaScript. Supongamos un escenario donde hay muchas secciones de diferentes estilos. El usuario puede agregar o eliminar esas secciones con estilo, y luego puede presionar el botón "crear como PDF".

No es lo que desea, pero es la solución de menor esfuerzo si usa el menú de impresión del navegador para "imprimir en PDF"
@Mawg No puedo decir a los usuarios que realicen esos pasos manualmente. Entonces, buscando una solución a través de JS o Php.
Entonces, ¿por qué no buscar en Google js pdf screenshot? Por ejemplo, esto parece útil... stackoverflow.com/questions/5621907/… por supuesto, solo rocé aquí, y no verifiqué que es PDF y no PNG o JPEG, por lo que este es un comentario, y no una respuesta Pero seguro que no estás inventando una rueda completamente nueva.
Hay un excelente artículo que explica cómo hacerlo en techumber.com/2015/04/…
Creo que no puede hacer este lado del servidor a menos que genere la página completa, js, css y todo el lado del servidor (e, incluso entonces, sería horriblemente complejo). Dado que la página se muestra en el lado del cliente, busque una solución del lado del cliente.
No tenga miedo de considerar soluciones de dos pasos. Hay muchos ejemplos de cómo guardar una página web en JPG o PNG. El segundo paso es generar un documento PDF que contenga esa imagen.

Respuestas (3)

WeasyImprimir

Solución gratuita (bajo una licencia BSD) y de código abierto que ayuda a los desarrolladores web a crear documentos PDF. Convierte páginas HTML simples (con CSS, SVG, etc.) en formato PDF. Su objetivo es apoyar los estándares web para la impresión.

html-pdf(npm)

Puede usar el html-pdfpaquete NodeJS npm (ver GitHub , instalar a través de:) npm install -g html-pdf. Ejemplo de línea de comandos de shell:

html-pdf http://example.com/ example.pdf

FantasmaJS

Use PhantomJS con rasterize.js , línea de comando de muestra:

phantomjs rasterize.js http://example.com/

wkhtmltopdf

Use wkhtmltopdf(ver: página de GitHub ) la herramienta de línea de comandos para convertir el sitio web en la página PDF.

PhantomJS , que es un excelente navegador sin cabeza, ideal para fines de desarrollo, dice

Dado que PhantomJS utiliza WebKit, un motor de renderizado y diseño real, puede capturar una página web como una captura de pantalla.

y

Además del formato PNG, PhantomJS admite JPEG, GIF y PDF.

Es realmente simple de usar. Aquí hay un código de muestra para capturar como .PNG

var page = require('webpage').create();
page.open('http://github.com/', function() {
  page.render('github.png');
  phantom.exit();
});
Intenté convertir softwarerecs.stackexchange.com/questions/35963/… pero destripa el borde izquierdo y las preguntas de la derecha no están presentes. Tiene enlaces en los que se puede hacer clic, ¡así que yay!
Si no funciona, ¿por qué decir "yay"? estoy confundido
porque al menos se puede hacer clic en los enlaces. Muchos otros productos no lo son.
En este punto, no puedo recomendar nada más, pero si publica su código en stackoverflow.com , debería obtener ayuda allí.

Esta pregunta hace Is it possible to capture or print what's displayed in an html canvas as an image or pdf?y la respuesta de @lepe, que parece saber de lo que habla, con 13.6k rep, que tiene 16 votos a favor, dice

Yo usaría " wkhtmltopdf ". Simplemente funciona muy bien. Utiliza el motor webkit (usado en Chrome, Safari, etc.), y es muy fácil de usar:

wkhtmltopdf stackoverflow.com/questions/923885/esta_pregunta.pdf

¡Eso es!

Intentalo

La recomendación está respaldada por el Sr. JavaScript , que parece saber de lo que está hablando.