Je veux convertir mes cahiers ipython pour les imprimer, ou simplement les envoyer au format html. J'ai remarqué qu'il existe déjà un outil pour le faire, nbconvert . Bien que je l'ai téléchargé, je n'ai aucune idée de comment convertir le notebook, avec nbconvert2.py puisque nbconvert dit qu'il est obsolète. nbconvert2.py dit que j'ai besoin d'un profil pour convertir le notebook, qu'est-ce que c'est? Existe-t-il une documentation sur cet outil?
python
jupyter-notebook
ipython
nunzio13n
la source
la source
Réponses:
Si LaTeX est installé, vous pouvez télécharger au format PDF directement à partir du notebook Jupyter avec File -> Download as -> PDF via LaTeX (.pdf) . Sinon, suivez ces deux étapes.
Pour la sortie HTML, vous devez maintenant utiliser Jupyter à la place d'IPython et sélectionner Fichier -> Télécharger en tant que -> HTML (.html) ou exécuter la commande suivante:
Cela convertira le fichier de document Jupyter notebook.ipynb au format de sortie html.
Google Colaboratory est l'environnement de bloc-notes Jupyter gratuit de Google qui ne nécessite aucune configuration et fonctionne entièrement dans le cloud. Si vous utilisez Google Colab, les commandes sont les mêmes, mais Google Colab vous permet uniquement de télécharger les formats .ipynb ou .py.
Convertissez le fichier html notebook.html en un fichier pdf appelé notebook.pdf. Sous Windows, Mac ou Linux, installez wkhtmltopdf . wkhtmltopdf est un utilitaire de ligne de commande pour convertir du HTML en pdf à l'aide de WebKit. Vous pouvez télécharger wkhtmltopdf à partir de la page Web liée, ou dans de nombreuses distributions Linux, il peut être trouvé dans leurs référentiels.
Révision d'origine (maintenant presque obsolète): convertissez le fichier de bloc-notes IPython en html.
ipython nbconvert --to html notebook.ipynb
la source
jupyter
à la place deipython
par exemplejupyter nbconvert --to html notebook.ipynb
À partir de la documentation :
la source
nbconvrt
donc je ne peux pas vraiment vous aider là-dessus. J'espère que quelqu'un qui sera venu ...CTRL
+P
fonctionne.nbconvert n'est pas encore entièrement remplacé par nbconvert2, vous pouvez toujours l'utiliser si vous le souhaitez, sinon nous aurions supprimé l'exécutable. C'est juste un avertissement que nous ne corrigeons plus nbconvert1.
Les éléments suivants devraient fonctionner:
Si vous utilisez une version IPython assez récente, n'utilisez pas la vue d'impression, utilisez simplement la boîte de dialogue d'impression normale. Le graph beeing coupé en chrome est un problème connu (Chrome ne respecte pas certains css d'impression), et fonctionne beaucoup mieux avec Firefox, pas toutes les versions encore.
Quant à nbconvert2, il reste fortement à écrire et les documents doivent être écrits.
Nbviewer utilise nbconvert2 donc c'est assez décent avec HTML.
Liste des profils actuellement disponibles:
Donnez-vous les profils existants. (Vous pouvez créer le vôtre, cf future doc,
./nbconvert2.py --help-all
devrait vous donner une option que vous pouvez utiliser dans votre profil.)puis
$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>
Et il devrait écrire vos fichiers (tex) aussi longtemps que les chiffres extraits dans cwd. Oui je sais que ce n'est pas évident, et ça va probablement changer donc pas de doc ...
La raison en est que nbconvert2 sera principalement une bibliothèque python où, en pseudo-code, vous pouvez faire:
MyConverter = NBConverter(config=config) ipynb = read(ipynb_file) converted_files = MyConverter.convert(ipynb) for file in converted_files : write(file)
Le point d'entrée viendra plus tard, une fois l'API stabilisée.
Je vais juste souligner que @jdfreder (profil github) travaille sur l'exportation tex / pdf / sphinx et est l'expert pour générer des PDF à partir d'un fichier ipynb au moment de la rédaction de cet article.
la source
[NbconvertApp] Config file for profile './profile/latex_base.nbcv' not found, giving up
Et nbconvert ne me donne pas directement un fichier pdf, mais un fichier latex, et je dois traiter le fichier * .tex avec pdflatex, mais c'est une bonne solution.IPython.nbconvert.exporters.latex
et je me demande s'il existe un moyen d'obtenir une sortie PDF à partir de cela sans l'outil de ligne de commande. De plus, quelles sont les dépendances pour le faire fonctionner? (pandoc, tetex, autres choses?) Et je suppose que ce n'est pas multiplateforme (ne fonctionnera pas sous Windows). TIA!Passez également le
--execute
drapeau pour obtenir la sortieLa meilleure pratique consiste à conserver la sortie hors du bloc-notes pour le contrôle de version, voir: Utilisation de blocs-notes IPython sous contrôle de version
Mais alors, si vous ne passez pas
--execute
, la sortie ne sera pas présente dans le HTML, voir aussi: Comment exécuter un .ipynb Jupyter Notebook à partir du terminal?Pour un fragment HTML sans en-tête: comment exporter un notebook IPython en HTML pour un article de blog?
Testé dans Jupyter 4.4.0.
la source
Pour ceux qui ne peuvent pas installer wkhtmltopdf dans leurs systèmes, une autre méthode que celles déjà mentionnées dans les réponses à cette question consiste simplement à télécharger le fichier en tant que fichier html à partir du bloc-notes jupyter, à le télécharger au format HTML en PDF et à télécharger les fichiers pdf convertis à partir de là.
Ici, vous avez votre bloc-notes IPython (.ipynb) converti aux formats PDF (.pdf) et HTML (.html).
la source
la source
Manière GUI
Allez dans Fichiers> Télécharger au format> HTML ou PDF via LaTeX
Recherchez ensuite le fichier dans votre dossier Téléchargements. PS: Si LaTeX a eu des erreurs lors de la compilation du PDF, il échouera. Si cela se produit, téléchargez le fichier HTML, puis utilisez http://webpagetopdf.com/ ou tout autre service similaire pour convertir le HTML en PDF.
Manière de ligne de commande
la source
Si vous utilisez la version cloud de sagemath , vous pouvez simplement aller dans le coin gauche,
sélectionnez Fichier → Télécharger en tant que → Pdf via LaTeX (.pdf)
Vérifiez la capture d'écran si vous le souhaitez.
Capture d'écran Convertir ipynb en pdf
Si cela ne fonctionne pas pour une raison quelconque, vous pouvez essayer une autre méthode.
sélectionnez Fichier → Aperçu avant impression puis sur l'aperçu,
cliquez avec le bouton droit de la souris → Imprimer puis sélectionnez Enregistrer au format pdf.
la source
Je ne peux pas encore faire fonctionner le pdf. La documentation implique que je devrais être capable de le faire fonctionner avec du latex, alors peut-être que mon latex ne fonctionne pas. http://ipython.org/ipython-doc/rel-1.0.0/interactive/nbconvert.html
$ ipython --version 1.1.0 $ ipython nbconvert --to latex --post PDF myfile.ipynb [NbConvertApp] ... raise child_exception OSError: [Errno 2] No such file or directory $ ipython nbconvert --to pdf myfile.ipynb [NbConvertApp] CRITICAL | Bad config encountered during initialization: [NbConvertApp] CRITICAL | The 'export_format' trait of a NbConvertApp instance must be any of ['custom', 'html', 'latex', 'markdown', 'python', 'rst', 'slides'] or None, but a value of u'pdf' was specified.
Cependant, HTML fonctionne très bien en utilisant des «diapositives», et c'est magnifique!
$ ipython nbconvert --to slides myfile.ipynb ... [NbConvertApp] Writing 215220 bytes to myfile.slides.html
// Mise à jour 07/11/2014Fri .: La syntaxe IPython v3 diffère, elle est plus simple;
$ ipython nbconvert --to PDF myfile.ipynb
Dans tous les cas, il semble que je manquais la bibliothèque 'pdflatex'. J'enquête là-dessus.la source
Vous pouvez le faire en convertissant d'abord le bloc-notes au format HTML puis au format PDF:
Étapes suivantes que j'ai implémentées sur: OS: Ubuntu, notebook Anaconda-Jupyter, Python 3
1 Enregistrez le notebook au format HTML:
Démarrez le notebook jupyter que vous souhaitez enregistrer au format HTML. Enregistrez d'abord correctement le bloc-notes afin que le fichier HTML ait une dernière version enregistrée de votre code / bloc-notes.
Exécutez la commande suivante à partir du notebook lui-même:
!jupyter nbconvert --to html your_notebook_name.ipynb
Après l'exécution créera la version HTML de votre notebook et l'enregistrera dans le répertoire de travail actuel. Vous verrez qu'un fichier html sera ajouté dans le répertoire actuel avec le
your_notebook_name.html
nom(
your_notebook_name.ipynb
->your_notebook_name.html
).2 Enregistrez le HTML au format PDF:
your_notebook_name.html
fichier (cliquez dessus). Il sera ouvert dans un nouvel onglet de votre navigateur.Notez qu'à partir de l'option d'impression, nous avons également la possibilité de sélectionner une partie d'un cahier à enregistrer au format pdf.
la source
J'ai cherché un moyen d'enregistrer des blocs-notes au format html, car chaque fois que j'essaye de télécharger au format html avec ma nouvelle installation Jupyter, j'obtiens toujours une
500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'
erreur. Curieusement, j'ai trouvé que le téléchargement au format HTML est aussi simple que:Pas d'aperçu avant impression, pas d'impression, pas de nbconvert. Utilisation de Jupyter
Version: 1.0.0
. Juste une suggestion à essayer (évidemment, toutes les configurations ne sont pas identiques).la source
Je trouve que la méthode la plus simple pour convertir un ordinateur portable qui se trouve sur le Web en pdf consiste d'abord à l'afficher sur le service Web nbviewer . Vous pouvez ensuite l'imprimer dans un fichier pdf. Si le notebook se trouve sur votre lecteur local, téléchargez-le d'abord dans un référentiel github et utilisez son URL pour nbviewer.
la source
Autres approches suggérées:
En utilisant le 'Imprimer, puis sélectionnez Enregistrer au format PDF.' à partir de votre fichier HTML entraînera la perte des bords de bordure, la mise en évidence de la syntaxe, le rognage des tracés, etc.
Certaines autres bibliothèques se sont avérées défectueuses lorsqu'il s'agit d'utiliser des versions obsolètes.
Solution: Une meilleure option, sans tracas, consiste à utiliser un convertisseur en ligne https://www.sejda.com/html-to-pdf qui convertira la version * .html de votre * .ipynb en * .pdf.
Pas:
Téléchargez le fichier * .html nouvellement créé sur https://www.sejda.com/html-to-pdf , puis sélectionnez l'option HTML to PDF.
Votre fichier pdf est maintenant prêt à être téléchargé.
Vous avez maintenant des fichiers .ipynb, .html et .pdf
la source
J'ai combiné quelques réponses ci-dessus en python en ligne que vous pouvez ajouter à ~ / .bashrc ou ~ / .zshrc pour compiler et convertir de nombreux blocs-notes en un seul fichier pdf
function convert_notebooks(){ # read anything on this folder that ends on ipynb and run pdf formatting for it python -c 'import os; [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir (".") if f.endswith("ipynb")]' # to convert to pdf u must have installed latex and that means u have pdfjam installed pdfjam * }
la source
La version python simple de la réponse de partizanos .
import os [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
la source
--template report
comme option supplémentaire compile également une ToC dans le pdf résultant en prenant les différents en-têtes de démarque dans le cahier.notebook-as-pdfInstaller
python -m pip install notebook-as-pdf pyppeteer-install
Utilise le
Vous pouvez également l'utiliser avec nbconvert:
jupyter-nbconvert --en PDF via le nom de fichier HTML.ipynb
qui créera un fichier appelé filename.pdf.
ou pip installer notebook-as-pdf
créer un pdf à partir d'un notebook jupyter-nbconvert-toPDFviaHTML
la source
Le moyen le plus simple à mon avis est «Ctrl + P»> enregistrer sous «pdf». C'est ça.
la source
Vous pouvez utiliser ce service en ligne simple. Il prend en charge à la fois HTML et PDF.
https://htmtopdf.herokuapp.com/ipynbviewer/
la source