pdf - wasn - pandoc unix




IPython/Jupyter Problèmes lors de la sauvegarde d’un cahier au format PDF (11)

2015-4-22: Il semble qu'une mise à jour IPython signifie que --to pdf devrait être utilisé à la place de --to latex --post PDF . Il y a un problème lié à Github .

J'ai donc essayé de sauvegarder un cahier Jupyter au format PDF, mais je n'arrive pas à comprendre comment faire cela. La première chose que j'essaye est de télécharger le fichier PDF dans le menu Fichier, mais cela se traduit par:

nbconvert failed: PDF creating failed

la prochaine chose que j'essaie est d'essayer de faire la conversion à partir de l'invite de commande comme ceci

$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb 

mais encore une fois, cela entraîne un message d'erreur

ImportError: No module named 'PDF'

et si j'essaye

$ ipython nbconvert --to latex MyNotebook.ipynb 

cela se traduit par

IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed

si j'essaie d'installer pandoc ( pip install pandoc ), cela me donne

ImportError: No module named 'ConfigParser'

et c’est là que je reste coincé parce que je ne sais tout simplement pas quoi faire. Quelqu'un a une idée de comment réparer ce qui ne va pas?


Ce problème a été rencontré avec Ubuntu et Mac OSX. Après une série effrénée de recherches et d’essais, les deux ont été résolus. Cela nécessite à la fois tex et pandoc ; les deux programmes externes jumbo ne peuvent pas être installés par le pip de Python.

Mac OSX: utilisation de MacPorts pour l'installation de pandoc

port install pandoc

Cela devrait prendre presque une heure (dans le cas habituel ). Si le problème persiste, vous devrez peut-être installer MacTeX distro. de TeXLive.

Pour Ubuntu: installez TeXLive à partir du programme d’installation du réseau - et non d’apt-get . Puis installez pandoc en utilisant apt-get.

sudo apt-get install pandoc

Une installation complète de TeXLive nécessiterait jusqu'à 4,4 Go sur disque.

Pour éviter tous ces problèmes, la méthode recommandée pour utiliser IPython / Jupyter Notebook consiste à installer la distribution Anaconda Python.


Ce script Python a une interface graphique permettant de sélectionner avec l’explorateur un bloc-notes Ipython que vous souhaitez convertir en PDF. L'approche avec wkhtmltopdf est la seule approche que j'ai trouvée qui fonctionne bien et fournit des fichiers PDF de haute qualité. Les autres approches décrites ici sont problématiques, la surbrillance syntaxique ne fonctionne pas ou les graphiques sont gâchés.

Vous devrez installer wkhtmltopdf: http://wkhtmltopdf.org/downloads.html

et Nbconvert

$conda install nbconvert

Script python

$pip install nbconvert

Comme le disent les commentaires à la question, vous aurez besoin de pandoc et de latex (par exemple, TeXShop). J'ai installé pandoc avec Homebrew, cela ne m'a pris qu'une seconde. Avec pandoc et TeXShop, je pouvais générer du latex mais pas du pdf (en ligne de commande).

ipython nbconvert --to latex mynotebook.ipynb

En explorant le fichier latex (.tex) avec TeXShop, l'échec était dû à l'absence de feuilles de style et de définitions. Après avoir installé tous ces éléments (adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), il a finalement travail.

Cependant, le résultat est un peu trop funky à mon goût. Il est dommage que l'impression du code HTML à partir de Safari perde la coloration syntaxique. Sinon, ça n'a pas l'air si mal. (Ceci est tout sur OS X).


J'ai eu toutes sortes de problèmes pour comprendre cela aussi. Je ne sais pas s'il vous fournira exactement ce dont vous avez besoin, mais j'ai téléchargé mon ordinateur portable sous forme de fichier HTML, puis je l'ai téléchargé dans mon navigateur Chrome, puis je l'ai imprimé sous forme de fichier PDF que j'ai enregistré. Il a capturé tout mon code, texte et graphiques. C'était assez bien pour ce dont j'avais besoin.


J'utilise Anaconda-Jupyter Notebook sur système d'exploitation: Ubuntu 16.0 pour la programmation Python.

Installez Nbconvert, Pandoc et Tex:

Ouvrez un terminal et implémentez les commandes suivantes.

Installez Nbconvert: bien que cela fasse partie de l'écosystème de Jupyter, installez-le encore une fois

$sudo apt-get install pandoc

Ou

$sudo apt-get install texlive-xetex

Mais je recommanderai d'utiliser conda à la place pip si vous utilisez anaconda

Installez Pandoc: puisque Nbconvert utilise Pandoc pour convertir les balises vers des formats autres que HTML. Tapez la commande suivante

pip install nbconvert
# OR
conda install nbconvert

Installez TeX: pour convertir en PDF, nbconvert utilise TeX. Tapez la commande suivante

# Script adapted from CloudCray
# Original Source: https://gist.github.com/CloudCray/994dd361dece0463f64a
# 2016--06-29
# This will create both an HTML and a PDF file

import subprocess
import os
from Tkinter import Tk
from tkFileDialog import askopenfilename

WKHTMLTOPDF_PATH = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf"  # or wherever you keep it

def export_to_html(filename):
    cmd = 'ipython nbconvert --to html "{0}"'
    subprocess.call(cmd.format(filename), shell=True)
    return filename.replace(".ipynb", ".html")


def convert_to_pdf(filename):
    cmd = '"{0}" "{1}" "{2}"'.format(WKHTMLTOPDF_PATH, filename, filename.replace(".html", ".pdf"))
    subprocess.call(cmd, shell=True)
    return filename.replace(".html", ".pdf")


def export_to_pdf(filename):
    fn = export_to_html(filename)
    return convert_to_pdf(fn)

def main():
    print("Export IPython notebook to PDF")
    print("    Please select a notebook:")

    Tk().withdraw() # Starts in folder from which it is started, keep the root window from appearing 
    x = askopenfilename() # show an "Open" dialog box and return the path to the selected file
    x = str(x.split("/")[-1])

    print(x)

    if not x:
        print("No notebook selected.")
        return 0
    else:
        fn = export_to_pdf(x)
        print("File exported as:\n\t{0}".format(fn))
        return 1

main()

Après l'exécution de ces commandes, fermez les cahiers ouverts, actualisez la page d'accueil ou redémarrez le noyau du cahier ouvert. Maintenant, essayez de télécharger le cahier au format pdf :)

Remarque: pour plus de détails, veuillez vous reporter à la documentation officielle:
https://nbconvert.readthedocs.io/en/latest/install.html


Pour convertir des cahiers en PDF, vous devez d’abord installer nbconvert.

pip install nbconvert
# OR
conda install nbconvert

Ensuite, si vous n’utilisez pas Anaconda ou ne l’avez pas déjà fait, vous devez installer pandoc en suivant les instructions fournies sur son site Web ou, sous Linux, comme suit:

sudo apt-get install pandoc

Après cela, vous devez installer XeTex sur votre ordinateur:

Vous pouvez maintenant accéder au dossier qui contient votre ordinateur portable IPython et exécuter la commande suivante:

jupyter nbconvert --to pdf MyNotebook.ipynb

pour plus de référence, s'il vous plaît consulter ce lien .


Pour convertir un ordinateur portable Jupyter au format PDF, veuillez suivre les instructions ci-dessous:

( Soyez dans le cahier de Jupyter ):

Sur Mac OS :

commande + P -> vous obtiendrez une boîte de dialogue d'impression -> changer la destination au format PDF -> cliquer sur imprimer

Sous Windows :

Ctrl + P -> vous obtiendrez une boîte de dialogue d'impression -> changer la destination au format PDF -> cliquer sur imprimer

Si les étapes ci-dessus ne génèrent pas le PDF complet du bloc-notes Jupyter (probablement parce que, dans certains cas, Chrome, n'imprimez pas toutes les sorties, car Jupyter fait défiler les grandes sorties),

Essayez de suivre les étapes ci-dessous pour supprimer le défilement automatique dans le menu : -

Crédits: @ ÂngeloPolotto

  1. Dans votre bloc-notes Jupyter, cliquez sur Cellule en haut du bloc-notes Jupyter.

  2. Cliquez ensuite sur Toutes les sorties -> Basculer le défilement pour supprimer le défilement automatique.


Pour que cela fonctionne, j'ai installé du latex, du latex typique et du pandoc.

Avec Ubuntu:

sudo apt-get install texlive texlive-latex-extra pandoc

cela prend du temps: plusieurs 100 Mo à télécharger. J'ai lu quelque part que vous pouvez utiliser --no-install-recommends pour texlive et extra pour réduire au dl.


Si vous êtes sur un Mac et que Homebrew est installé, ouvrez un terminal shell et installez pandoc en tapant la commande suivante:

brasser installer pandoc

soyez patient, le temps d'installation et de compilation peut prendre un certain temps avec des connexions Internet lentes ou des systèmes plus anciens.






jupyter