¿Cómo convertir cuadernos de IPython a PDF y HTML?

7 minutos de lectura

avatar de usuario
nunzio13n

Quiero convertir mis ipython-notebooks para imprimirlos, o simplemente enviarlos en formato html. He notado que ya existe una herramienta para hacer eso, nbconvertir. Aunque lo descargué, no tengo idea de cómo convertir el cuaderno, con nbconvert2.py ya que nbconvert dice que está obsoleto. nbconvert2.py dice que necesito un perfil para convertir el cuaderno, ¿cuál es? ¿Existe documentación sobre esta herramienta?

  • ¿Cómo puedo obtener la opción ‘Exportar Notebook a Html_toc’ en el menú ‘Exportar Notebook como…’ en Jupyter Lab? puede ser de interés para las personas también.

    –Trenton McKinney

    14 de agosto de 2020 a las 7:51

  • 411 mil vistas y ninguna solución adecuada para cosas simples como saltos de página: ¡9 años después sigue siendo una pesadilla!

    -Wolfgang Fahl

    12 de junio a las 8:25

avatar de usuario
carel

Si tiene LaTeX instalado, puede descargarlo como PDF directamente desde el cuaderno Jupyter con Expediente -> Descargar como -> PDF a través de LaTeX (.pdf). De lo contrario, siga estos dos pasos.

  1. Para la salida HTML, ahora debe usar Jupyter en lugar de IPython y seleccionar Expediente -> Descargar como -> HTML (.html) o ejecuta el siguiente comando:

     jupyter nbconvert --to html notebook.ipynb  
    

    Esto convertirá el archivo de documento de Jupyter notebook.ipynb al formato de salida html.

    Google Colaboratory es el entorno gratuito de Jupyter Notebook de Google que no requiere configuración y se ejecuta completamente en la nube. Si está utilizando Google Colab, los comandos son los mismos, pero Google Colab solo le permite descargar formatos .ipynb o .py.

  2. Convierta el archivo html notebook.html en un archivo pdf llamado notebook.pdf. En Windows, macOS (brew install wkhtmltodf) o Linux, instalar wkhtmltopdf. wkhtmltopdf es una utilidad de línea de comandos para convertir html a pdf usando WebKit. Puede descargar wkhtmltopdf desde la página web vinculada, o en muchas distribuciones de Linux se puede encontrar en sus repositorios.

     wkhtmltopdf notebook.html notebook.pdf   
    

Revisión original (ahora casi obsoleta): convierta el archivo del cuaderno de IPython a html.

ipython nbconvert --to html notebook.ipynb

  • Todo estaba colapsado en una sola página -__-

    – htafoya

    2 mayo 2018 a las 22:23

  • Para la salida HTML, ahora debe usar jupyter en lugar de ipython p.ej jupyter nbconvert --to html notebook.ipynb

    – Alex

    11/07/2018 a las 19:45

  • Para que esto funcione, jupyter_contrib_nbextensions debe ser instalado.

    – Carlos G

    5 de febrero de 2020 a las 13:06

  • De acuerdo con la respuesta anterior, necesita wkhtmltopdf. Para instalarlo en ubuntu 14.04 esto me funciono gist.github.com/brunogaspar/bd89079245923c04be6b0f92af431c10

    – Pradeep Singh

    23 de febrero de 2020 a las 6:38


  • También puede imprimir el sitio web en un pdf.

    – AndiCover

    12 de marzo de 2020 a las 11:23

avatar de usuario
Ciro Santilli Путлер Капут 六四事

también pasa el --execute bandera para generar las celdas de salida

jupyter nbconvert --execute --to html notebook.ipynb
jupyter nbconvert --execute --to pdf notebook.ipynb

La mejor práctica es mantener la salida fuera del cuaderno para el control de versiones, consulte: Uso de cuadernos de IPython bajo control de versiones

Pero entonces, si no pasas --executela salida no estará presente en el HTML, vea también: ¿Cómo ejecutar un .ipynb Jupyter Notebook desde la terminal?

Para un fragmento HTML sin encabezado: ¿Cómo exportar un cuaderno IPython a HTML para una publicación de blog?

Probado en Jupyter 4.4.0.

  • Lo hace nbconvert ¿Tiene una opción para especificar el kernel a usar?

    – Hamman Samuel

    2 de marzo de 2021 a las 21:17


  • @HammanSamuel Nunca toqué eso, avíseme si averigua/hace una pregunta por separado y vincúlela aquí.

    – Ciro Santilli Путлер Капут 六四事

    2 de marzo de 2021 a las 21:33

  • RuntimeWarning: nunca se esperó la corrutina ‘ZMQSocketChannel.get_msg’

    -Wolfgang Fahl

    20 de mayo a las 5:46

avatar de usuario
raíz

Desde el documentos:

Si desea proporcionar a otros una vista HTML o PDF estática de su cuaderno, utilice el botón Imprimir. Esto abre una vista estática del documento, que puede imprimir en PDF utilizando las funciones de su sistema operativo, o guardar en un archivo con la opción ‘Guardar’ de su navegador web (tenga en cuenta que, por lo general, esto creará un archivo html y un directorio llamado notebook_name_files junto a él que contiene toda la información de estilo necesaria, por lo que si tiene la intención de compartir esto, debe enviar el directorio junto con el archivo html principal).

  • ¡Gracias! La versión HTML es realmente buena y muy fácil de obtener. Sin embargo, el PDF no es bueno, los gráficos se cortan en dos partes si están entre dos páginas y la línea de código larga también se corta.

    – nunzio13n

    14 de abril de 2013 a las 11:39

  • @nunzio13n — Bueno, al menos tienes el html… No lo he usado nbconvrt así que realmente no puedo ayudarte en eso. A ver si viene alguien que lo haya hecho…

    – raíz

    14/04/2013 a las 11:55

  • Usando imprimir en su navegador usando CTRL+P obras.

    –Levi Baguley

    26 de abril de 2020 a las 0:28


  • a) Exportar como HTML desde Jupyter no parece guardar imágenes, b) Archivo -> guardar como formulario Firefox le brinda una página completamente no interactiva que solo muestra lo que está visible. Además, el enlace en su publicación ahora está muerto.

    – jrh

    5 de enero de 2021 a las 16:36


nbconvert aún no se reemplaza completamente por nbconvert2, aún puede usarlo si lo desea, de lo contrario, habríamos eliminado el ejecutable. Es solo una advertencia de que ya no corregimos errores en nbconvert1.

Lo siguiente debería funcionar:

./nbconvert.py --format=pdf yourfile.ipynb 

Si tiene una versión lo suficientemente reciente de IPython, no use la vista de impresión, solo use el cuadro de diálogo de impresión normal. El corte de gráficos en Chrome es un problema conocido (Chrome no respeta algunos CSS de impresión) y funciona mucho mejor con Firefox, no con todas las versiones todavía.

En cuanto a nbconvert2, todavía es muy desarrollado y es necesario escribir documentos.

Nbviewer use nbconvert2 por lo que es bastante decente con HTML.

Lista de perfiles disponibles actualmente:

$ ls -l1 profile|cut -d. -f1

base_html
blogger_html
full_html
latex_base
latex_sphinx_base
latex_sphinx_howto
latex_sphinx_manual
markdown
python
reveal
rst

Darte los perfiles existentes. (Puedes crear el tuyo propio, cf futuro doc, ./nbconvert2.py --help-all debería darle alguna opción que pueda usar en su perfil).

después

$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>

Y debería escribir sus archivos (tex) siempre que extraiga cifras en cwd. Sí, sé que esto no es obvio, y probablemente cambiará, por lo tanto, no hay doc …

La razón de esto es que nbconvert2 será principalmente un python biblioteca donde en pseudocódigo puedes hacer:

 MyConverter = NBConverter(config=config)
 ipynb = read(ipynb_file)
 converted_files = MyConverter.convert(ipynb)
 for file in converted_files :
     write(file)

El punto de entrada vendrá más tarde, una vez que se estabilice la API.

Solo señalaré que @jdfreder (perfil de github) está trabajando en la exportación de tex/pdf/sphinx y es el experto en generar PDF desde un archivo ipynb en el momento de escribir este artículo.

  1. Guardar como HTML ;
  2. Control + PAGS ;
  3. Guardar como PDF.

  • Es recomendable expandir todas las celdas de salida. Entonces el PDF será claro.

    – mukundha reddy

    24 de noviembre de 2020 a las 6:13

avatar de usuario
Shayan Shafiq

Solo esta respuesta le sería útil si tiene fórmulas matemáticas y científicas en su documento. Incluso si no los tienes, funciona bien.

manera GUI

Modo de línea de comandos

  • abre la terminal
  • Navegue a la carpeta que contiene el cuaderno jupyter
  • escriba “jupyter nbconvert –to pdf your_jupyter_notebook.ipynb”

PD: si falla, prueba la respuesta de Yogesh.

  • Es recomendable expandir todas las celdas de salida. Entonces el PDF será claro.

    – mukundha reddy

    24 de noviembre de 2020 a las 6:13

avatar de usuario
Shayan Shafiq

Si estás usando sagemath versión en la nube, simplemente puede ir a la esquina izquierda,
seleccione Archivo → Descargar como → Pdf a través de LaTeX (.pdf)
Revisa la captura de pantalla si quieres.

Captura de pantalla Convertir ipynb a pdf

Si por alguna razón no funciona, puede intentarlo de otra manera.

seleccione Archivo → Vista previa de impresión y luego en la vista previa

clic derecho → Imprimir y luego seleccione guardar como pdf.

¿Ha sido útil esta solución?