JupyterLabs a PDF
En este apunte describo como he conseguido, desde un MacOS, convertir a PDF correctamente los ejercicios de Jupyter Labs en diferentes entornos. No es fácil convertir los cuadernos de Jupyter Labs a PDF debido a las múltiples variantes (imágenes, enlaces) que puede contener. He probado exportaciones intermedias, pandoc
, apps, sin demasiado éxito.
Convertir cuadernos a PDF
Lo descrito lo probé con un cuaderno con neo4J
y py2neo
cuando realizaba el ejercicio del acertijo de Einstein: ¿quién es el propietario del pez?. En teoría debe funcionar cualquier otro tipo de cuadernos, con imágenes embebidas por ejemplo.
El proceso en resumen:
1 | JupyterLabs > exportar a HTML local en mi Mac |
2 | JupyterLabs > exportar archivos adicionales referenciados desde el HTML |
3 | En el Mac > “Chrome” > Imprimir a PDF con tamaño de papel personalizado |
4 | En el Mac > Vista Previa > Recortar el PDF para eliminar la zona en blanco sobrante |
Paso 1 - Exportar a HTML.
Aunque no es estrictamente necesario te recomiendo usar Chrome para este paso, en ciertos casos vas a tener que descargar varios archivos adicionales (imágenes) desde JupyterLabs y Chrome lo hace bastante cómodo.
Desde Jupyter Labs vamos a exportar el cuaderno a HTML:
- File > “export notebook as HTML >
/Users/luis/Downloads
”
Paso 2 - Exportar archivos adicionales (OPCIONAL)
Esto hazo solo si tu cuaderno referencia archivos adicionales como imágenes u otros HTML que por ejemplo contengan scripts. En mi cuaderno en cuestion uso un submódulo que crea debajo del directorio figures
varios archivos graph*.html
que contienen javascript embebido
para mostrar los grafos.
-
Descargo los
graph*.html
. Entro enfigures
, seleccionar todos, Botón derecho > Download >/Users/luis/Downloads
-
En local, en mi directorio
Downloads
creo un sub directoriofigures
y muevo los ficheros.
Paso 3 - Imprimir HTML local a PDF
Ya tengo el HTML en mi ordenador (junto con ficheros de apoyo).
- Abro con Chrome (ahora sí que es importante usarlo), el archivo
Luis-Acertijo-Einstein.html
. Navego por el documento hasta el final (en mi caso obligatorio para que carge todos los scripts y salgan las imágenes en el PDF)
Nota: Al imprimir a PDF añade saltos de página muy molestos. El truco para quitarlos (algo que hago siempre) consiste en parametrizar un tamaño de papel muy largo, en el ejemplo “portrait” con ancho 370mm por 4000mm de largo. Quizá demasiado, pero queda bastante bien (en este cuaderno), en tu caso ajusta a lo que necesites. |
-
Imprimo a PDF desde Chrome usando el
System’s Dialog
- CMD-ALT-P: (o bien CMD-P > More Settings > Print Using System Dialog)
Show Details -> Pager Size > Manage Custom Sizes > Create new one with: Paper Size: Width 370mm, Height 4000mm Non Printable: User Defined. Top, Left, Right, Bottom > all with 5mm Dejo el todo el resto por defecto: Orientation: Portrait. Copies: 1. Pages: All. Scale: 100%, ... PDF > Save as PDF
- CMD-ALT-P: (o bien CMD-P > More Settings > Print Using System Dialog)
Paso 4 - Recortar el PDF
Como decía, en el ejemplo he usado un tamaño de página “portrait” 370mm ancho x 4000mm largo, por lo que me va a sobrar al final mucho espacio en blanco. Bueno, pues aquí tienes el último truco para quitarlo.
- Abro el PDF con Vista Previa (disponible en el Mac)
- Visualización > Una Página (CMD-2)
- Herramientas > Selección Rectangular
- Selecciono el rectángulo que quiero que quede (excluyo zonas en blanco al final)
- Selecciono Herramientas > Recortar (CMD-K)
- Selecciono Archivo > Guardar (CMD-S)