Le devoir est terminé dans Jupyter, et la plateforme de dépôt exige un PDF. Vous choisissez « Télécharger en PDF » ou lancez jupyter nbconvert --to pdf, et vous obtenez une erreur : xelatex introuvable, ou pandoc absent. nbconvert passe par LaTeX pour produire ses PDF, il lui faut donc une distribution TeX complète avant de sortir quoi que ce soit.

Look Scanned ouvre désormais directement les fichiers .ipynb. Choisissez votre notebook sur la page Jupyter Notebook en PDF numérisé et il est mis en page directement dans votre navigateur : les cellules Markdown, le code et les sorties enregistrées avec lui. Vérifiez les pages dans l’aperçu, puis téléchargez un PDF. Rien à installer, et le notebook n’est pas envoyé en ligne.

Précisons-le d’emblée : Look Scanned donne aux documents l’air d’avoir été numérisés, et c’est à cela que ressemble le PDF. C’est idéal pour un notebook à rendre sous forme de copie imprimée puis numérisée, ou qui doit simplement avoir l’air d’un document papier. Vous pouvez ramener la rotation, le flou et le bruit à zéro pour une page plus nette, mais chaque page reste une image : le texte du PDF ne peut donc être ni sélectionné ni recherché.

Comment convertir un fichier .ipynb en PDF numérisé

  1. Exécutez le notebook et enregistrez-le dans Jupyter, JupyterLab, VS Code ou Google Colab, pour que les sorties soient stockées dans le fichier. Dans Colab, passez par Fichier → Télécharger → Télécharger le fichier .ipynb.
  2. Ouvrez Jupyter Notebook en PDF numérisé et choisissez le fichier .ipynb.
  3. Parcourez l’aperçu page par page. Vérifiez le code, les tableaux et les graphiques, puis réglez le format du papier et les marges.
  4. Ajustez l’effet de numérisation. Gardez le flou et le bruit bas pour que le code en petits caractères reste lisible. Les pages sortent en niveaux de gris par défaut ; choisissez « Couleur » pour conserver les couleurs de vos graphiques.
  5. Générez le PDF numérisé et téléchargez-le.

Vous préférez des images ? Vous pouvez exporter chaque page en JPG ou en PNG. Notre guide PDF, JPG et PNG explique quand choisir l’un ou l’autre. Avec Pro, la numérisation par lots traite plusieurs fichiers .ipynb à la fois.

Ce qui apparaît sur la page

  • Les cellules Markdown : titres, listes, tableaux, liens et images, y compris les images collées directement dans une cellule.
  • Les cellules de code, avec la coloration syntaxique du langage du notebook et leurs invites In [1]:. Les lignes longues reviennent à la ligne au lieu de déborder de la page.
  • Les sorties enregistrées, sous leurs invites Out[1]: : texte affiché, valeurs renvoyées, tableaux HTML comme les DataFrame pandas, et images, si bien que les graphiques matplotlib ou seaborn sont bien là.
  • Les erreurs, avec leur traceback complet.
  • La sortie du terminal telle qu’un terminal l’affiche. Les codes de couleur sont retirés, et une barre de progression comme tqdm ne garde que son état final au lieu de chaque mise à jour.

À savoir avant de commencer

  • Les cellules ne sont pas exécutées. Look Scanned lit ce qui est enregistré dans le fichier ; il n’y a pas de noyau. Une cellule jamais exécutée, ou un notebook enregistré après effacement des sorties, affiche le code sans rien en dessous. Exécutez toutes les cellules et enregistrez avant de choisir le fichier.
  • Les formules restent en source TeX. Les formules écrites $…$ ou $$…$$ dans les cellules Markdown apparaissent telles quelles, par exemple $\alpha + \beta$, et non composées comme des mathématiques.
  • Les sorties interactives ne s’affichent pas. Plotly, Bokeh et ipywidgets dessinent en JavaScript, qui n’est pas exécuté. Vous obtenez la version statique que le notebook a enregistrée à côté, souvent une simple ligne de texte, voire rien du tout. Les graphiques enregistrés comme images, ceux de matplotlib par exemple, ne posent aucun problème.
  • Le notebook doit être au format nbformat 4. C’est ce qu’écrivent les versions actuelles de Jupyter, JupyterLab, VS Code et Colab. Un très ancien notebook nbformat 3 est refusé ; ouvrez-le dans un Jupyter récent et enregistrez-le de nouveau pour le mettre à jour.
  • Les tableaux larges sont tassés. Les tableaux sont ajustés à la largeur de la page : un DataFrame avec beaucoup de colonnes aura des colonnes étroites, avec retours à la ligne.
  • Gardez votre notebook. Comme une vraie numérisation, le PDF est fait d’images de pages. Gardez le fichier .ipynb pour exécuter et modifier le code.

Le notebook est lu et mis en page sur votre propre appareil, sans être envoyé à un serveur. Seule exception : une cellule Markdown qui affiche une image par son adresse web. Votre navigateur va chercher cette image sur le site qui l’héberge, exactement comme le ferait Jupyter.

Quand nbconvert reste le meilleur choix

S’il vous faut du texte sélectionnable, des formules composées ou un PDF identique à l’export de Jupyter, nbconvert reste l’outil adapté. Installez une distribution TeX et lancez jupyter nbconvert --to pdf, ou utilisez --to webpdf, qui imprime via un navigateur Chromium sans interface et se passe entièrement de LaTeX. Dans les deux cas, vous pourrez ensuite ajouter l’effet de numérisation à ce PDF dans Look Scanned.

Votre compte rendu est un fichier Markdown ou LaTeX plutôt qu’un notebook ? Ils s’ouvrent aussi : voyez Markdown et HTML en PDF numérisé et LaTeX en PDF numérisé.

Vous avez un notebook à rendre en PDF ? Essayez maintenant.