¿Cómo convertir una página web a PDF conservando su aspecto (exactamente como en el navegador web) y texto / enlaces?

24

Estoy buscando una manera de convertir una página web a PDF, pero conservando el aspecto de la página web. También preservando el texto de la página web (seleccionable), con capacidad de búsqueda [Generar captura de pantalla de imagen para la página web haría que el texto no sea seleccionable ni se pueda buscar].

Estoy buscando imprimir la página web a PDF tal como está (como en el navegador web) sin ninguna manipulación en el estilo o la alineación, o la pérdida de los componentes estáticos de cualquier página web.

Esto ayudaría a preservar copias fuera de línea de páginas web que sean fáciles de leer, anotar y buscar.


No necesita leer ninguno de los siguientes (la pregunta es solo la sección anterior) para obtener mi pregunta. La siguiente sección es solo una lista de lo que obtuve a través de la investigación u otras respuestas de manera anidada para llegar a una respuesta a la pregunta.

Resultados de la investigación (sugerencias que no resolvieron mi problema)

Resultados hasta ahora en tratar de encontrar una solución (Todos todavía no funcionan como una solución para esta pregunta)

He probado estos motores de impresión web PDF, pero todos manipulan el aspecto de las páginas, incluso más dañino y hacen que algunos sean apenas legibles: (Las capturas de pantalla de páginas de ejemplo se incluyen entre corchetes)

  • Chrome [ Original , Estilos de impresión ( Deshabilitado | no deshabilitado )]
  • Firefox [ Original , Estilos de impresión (Desactivado p1 , p2 | no desactivado p1 , p2 )]
  • Legibilidad
    • Simplifica la página web (lo cual es bueno para la lectura enfocada; sin embargo, esto no es lo que estoy buscando). Estoy buscando mantener todas las propiedades de posiciones / estilos de la página web como se ve en el navegador web en formato PDF sin ninguna manipulación.
  • Foxit Reader
  • NovaPDF
  • CutyCapt [ Original , Factor de zoom: 0.4 : Capturas de pantalla, PDF con salida]
    • Agregaré enlaces después de resolver los problemas de ejecución del programa en Windows "
  • wkhtmltopdf [ Original , Factor de zoom: 0.4 : Capturas de pantalla , PDF de salida ]
    • No es compatible con CSS3.

Todos los complementos de captura de imágenes de captura de pantalla de la página web (por ejemplo , Abduction , Awesome Screenshot , Fireshot , Firefox Screenshot Developer Tool , Full Page Screen Capture , Page2Images , web-capture , ...) no responden mi pregunta, porque no conservan el texto y enlaces .

Scrible es excelente para preservar páginas web, como lo es para más anotaciones e investigaciones, pero desafortunadamente todavía está en línea y sin conversión a formato PDF.

Hay otras dos preguntas en la comunidad similares a las mías, sin embargo, esta es un poco diferente pero con esas distinciones importantes:

  • ¿Cómo obtener WYSIWYP (imprime lo que ves) en un navegador web?
    • Esta pregunta se refiere a una forma de capturar una página web (como se ve en la pantalla) de todos modos, incluso si es una imagen y el texto no se conservará. Mientras que, también estoy buscando capturar texto y enlaces (es importante preservar el texto y los enlaces ).

Más preguntas similares en las que no es obligatorio conservar texto y enlaces (las páginas se capturan principalmente como capturas de pantalla de imágenes ):


Notas

SO: Windows 10

Omar
fuente
Si desea imprimir desde un navegador, primero debe desactivar las hojas de estilo de impresión para mantener la apariencia de la pantalla de la página web.
DavidPostill
Consulte ¿Cómo obtener WYSIWYP (imprima lo que ve) en un navegador web? . Vea mi respuesta a esa pregunta.
DavidPostill
Luego puede imprimir con CutePDF writer .
DavidPostill
@DavidPostill Parece que deshabilitar los estilos de impresión no funciona o no afecta al navegador para mostrar PDF correctamente. Se agregaron capturas de pantalla de ejemplo a la versión editada de la pregunta.
Omar
Tuve la misma pregunta hoy y esta página me ayudó (aunque el resultado era una versión móvil de la página): stackoverflow.com/questions/9540990/…
MicroMachine

Respuestas:

7

Enfrentamos el mismo problema en un proyecto universitario y pudimos resolverlo usando

wkhtmltopdf

Disfrutamos bastante de las capacidades de esta herramienta en la línea de comando. También lo llamamos usando código python para representar el estado actual de las páginas web. Tiene la opción de entregar la página web como pdf, generalmente no es perfecta para preservar la vista del sitio web debido al formato de la página (A4, por ejemplo), o como png (conserva la vista de la página pero no los enlaces)

También existe el proyecto de legibilidad (para Python: pypi.python.org/pypi/readability-lxml) que utilizamos que hace bastante bien la eliminación de anuncios y la detección de contenido (por ejemplo, para artículos de periódicos y similares). Si solo desea un complemento o extensión para su navegador, la siguiente implementación de legibilidad podría satisfacer su necesidad:

https://www.readability.com/addons/

sebisnow
fuente
Desafortunadamente, wkhtmltopdf no conservó las posiciones de los elementos de la página. Página de ejemplo : Factor de zoom: 0.4: Capturas de pantalla , PDF con salida
Omar
La legibilidad simplifica la página (lo cual es algo bueno; sin embargo, esto no es lo que estoy buscando). Necesito mantener todas las propiedades de posición / estilo de la página como se ve en el navegador web en formato PDF sin ninguna manipulación.
Omar
¿Usó la opción wkhtmltopng de la herramienta, ya que png las posiciones deberían estar bien (al menos mucho mejor que en la versión pdf donde la página está ajustada a formato A4)
sebisnow
3

Aportando otra respuesta para posibles usuarios. En Firefox, solía haber un complemento "Imprimir páginas a PDF". Puede buscar su última versión 0.1.9.3 (funciona solo en versiones anteriores a Quantum).

Actualmente existe este complemento para Chrome y Firefox que funciona bastante bien: PDFMage

  • Guardar todas las imágenes en la página
  • Genere texto como texto, no como imagen, puede buscar texto en PDF generado.
  • Hipervínculos de conservador
  • Tiene la opción de guardar una página web larga como un PDF de una página (para que las imágenes no se dividan entre páginas)
nmhung1985
fuente
2

Realmente luché con esto y probé la mayoría de las herramientas que se mencionan hasta ahora. Los mejores resultados que obtuve fue usar el modo sin cabeza de Chrome. El comando en MacOS se vería así:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --headless --print-to-pdf=test.pdf http://127.0.0.1:8080

La mejor lista de opciones de línea de comando que encontré estaba aquí .

Sin embargo, hubo problemas con eso. Específicamente, mis páginas son muy pesadas en JavaScript y no pude hacer que la función de impresión espere a que finalicen la ejecución. Entonces mi salida no tenía las imágenes.

La solución que encontré fue un paquete nodejs: chrome-headless-render-pdf. Su escasa documentación está aquí . Funciona y es fácilmente programable.

AlanObject
fuente
2

Tuve el mismo problema y lo descubrí a través de Chrome y con un controlador de impresora gratuito llamado PDF995. Esto es parte de un conjunto de utilidades PDF; El sitio web del editor es http://www.pdf995.com/ .

Sin embargo, creo que cualquier navegador web y cualquier convertidor de PDF serán suficientes. De todos modos, esto es lo que hice:

  1. seleccionar todo o resaltar todo.
  2. Haga clic con el botón derecho en la selección resaltada o presione Ctrl + P (ambas opciones le dan resultados ligeramente diferentes, pero termina con el mismo resultado después de la finalización).

  3. Si hizo clic derecho en 2., la selección (el atajo), haga clic en "imprimir" y solo todo lo que haya seleccionado estará en la vista previa de impresión. Asegúrese de cambiar el destino de su impresora a cualquier convertidor de pdf que decida usar (PDF995 u otro).

  4. Haga clic en "imprimir" y se guardará como documento pdf.

  5. Si presionó Ctrl + P en 2. (la forma un poco más larga), haga clic en "Más configuraciones" y desplácese hacia abajo hasta "Opciones".

  6. Haga clic en el cuadro que dice "Solo selección" y todo lo que aparece en el atajo que describí seguirá.

  7. No olvide cambiar el destino de su impresora al convertidor de pdf que elija (PDF995 u otro).

  8. Haga clic en "imprimir".

usuario726167
fuente
1

Si está en Linux, pruebe esta pequeña herramienta de línea de comando CutyCapt , que depende solo de Qt y QtWebkit, y exporta a PDF.

Ziggy Crueltyfree Zeitgeister
fuente
0

Aunque no es exactamente su solicitud, ya que no está en PDF, si el objetivo es simplemente mantener una copia fuera de línea de las páginas web para su posterior revisión, guardarla como página web haría exactamente eso.

La gran advertencia es que creará un archivo .html y una carpeta con todo el contenido multimedia en la página en lugar de un solo documento.

En Chrome y Firefox, puede guardar una página haciendo clic derecho sobre ella y eligiendo Guardar como ... En Internet Explorer, puede guardarla en Archivo -> Guardar como (presionando la tecla Alt para que aparezcan los menús).

Pyheme
fuente
Guardar la página web en formato .html haría que no se pueda anotar. Entonces, lo necesito en formato PDF.
Omar
¡Ese es un buen punto! Acabo de recordar una extensión que le permite desactivar fácilmente las hojas de estilo relacionadas con la impresión. Una búsqueda rápida en Google me llevó a la discusión cuando lo escuché por primera vez, en Superusuario: ¿Cómo obtener WYSIWYP (imprimir lo que ves) en un navegador web?
Pyheme
Intenté hacer "Guardar como" usando Chrome. Crea un archivo .HTML y una carpeta. Al archivo .HTLM le faltaban muchas cosas de la página.
SherlockSpreadsheets
0

Prueba este servicio. Crea un PDF desde un sitio web como lo ve en el navegador. https://lomotoh.com/ (estoy afiliado a este sitio)

David Herse
fuente
Esto conserva los enlaces, pero no el texto seleccionable, que es un requisito en la pregunta.
fijador1234
Parece ser seleccionable para algunos sitios. Creo que depende de qué tipo de fuente personalizada use el sitio.
David Herse
0

Al menos todo el texto de algunas páginas se puede buscar, seleccionar, cortar y pegar. Intenté en una página pegada robóticamente por una computadora sin texto y pix y se sintonizó todo en una imagen.

He usado estas cosas por años. Obtengo los mejores resultados en Linux al reconstruir la página en una XX palabra de su elección y exportar el resultado como PDF. Puedo obtener lo que quiero a un costo considerable. Desde mi uso limitado arch ivin El sitio que David Herse puso https://lomotoh.com/ ( NO estoy afiliado a este sitio) funciona tan bien como cualquier otro que haya usado. Voy a ir a mi recurso para cubrir páginas web en PDF hasta que encuentre mejor o me cueste demasiado pagar de mi propio bolso delgado.

Gordon Couger
fuente