Chcę przekonwertować moje notatniki ipython, aby je wydrukować, lub po prostu wysłać je w formacie html. Zauważyłem, że istnieje już narzędzie do tego, nbconvert . Chociaż go pobrałem, nie mam pojęcia, jak przekonwertować notebook, z nbconvert2.py, ponieważ nbconvert mówi, że jest przestarzały. nbconvert2.py mówi, że potrzebuję profilu do konwersji notebooka, co to jest? Czy istnieje dokumentacja dotycząca tego narzędzia?
python
jupyter-notebook
ipython
nunzio13n
źródło
źródło
Odpowiedzi:
Jeśli masz zainstalowany LaTeX, możesz pobrać jako PDF bezpośrednio z notatnika Jupyter za pomocą Plik -> Pobierz jako -> PDF przez LaTeX (.pdf) . W przeciwnym razie wykonaj te dwa kroki.
W przypadku danych wyjściowych HTML należy teraz użyć Jupyter zamiast IPython i wybrać Plik -> Pobierz jako -> HTML (.html) lub uruchomić następujące polecenie:
Spowoduje to przekonwertowanie pliku dokumentu Jupyter notebook.ipynb na format wyjściowy html.
Google Colaboratory to bezpłatne środowisko notebooków Jupyter firmy Google, które nie wymaga konfiguracji i działa całkowicie w chmurze. Jeśli używasz Google Colab, polecenia są takie same, ale Google Colab umożliwia pobieranie tylko formatów .ipynb lub .py.
Przekonwertuj plik html notebook.html na plik pdf o nazwie notebook.pdf. W systemie Windows, Mac lub Linux zainstaluj wkhtmltopdf . wkhtmltopdf to narzędzie wiersza poleceń służące do konwersji html na pdf za pomocą WebKit. Możesz pobrać wkhtmltopdf z połączonej strony internetowej lub w wielu dystrybucjach Linuksa można go znaleźć w ich repozytoriach.
Oryginalna (obecnie prawie przestarzała) wersja: przekonwertuj plik notatnika IPython do formatu html.
ipython nbconvert --to html notebook.ipynb
źródło
jupyter
zamiastipython
np.jupyter nbconvert --to html notebook.ipynb
Z dokumentów :
źródło
nbconvrt
więc nie mogę Ci w tym pomóc. Mam nadzieję, że ktoś, kto przyjdzie ...CTRL
+P
działa.nbconvert nie został jeszcze w pełni zastąpiony przez nbconvert2, nadal możesz go używać, jeśli chcesz, w przeciwnym razie usunęlibyśmy plik wykonywalny. To tylko ostrzeżenie, że nie naprawiamy już błędów nbconvert1.
Powinno działać:
Jeśli używasz wystarczająco najnowszej wersji IPythona, nie używaj widoku drukowania, po prostu użyj normalnego okna dialogowego drukowania. Wykres wycinany w chrome jest znanym problemem (Chrome nie obsługuje niektórych wydruków CSS) i działa znacznie lepiej z Firefox, nie wszystkie wersje nadal.
Jeśli chodzi o nbconvert2, nadal jest wysoce deweloperskie i dokumentacja wymaga napisania.
Nbviewer używa nbconvert2, więc jest całkiem przyzwoity z HTML.
Lista aktualnie dostępnych profili:
Podaj istniejące profile. (Możesz stworzyć swój własny, patrz przyszły dokument,
./nbconvert2.py --help-all
powinien dać ci jakąś opcję, której możesz użyć w swoim profilu.)następnie
$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>
I powinien zapisywać twoje pliki (tex) tak długo, jak wyodrębnione figury w cwd. Tak, wiem, że to nie jest oczywiste i prawdopodobnie to się zmieni, stąd brak doc ...
Powodem tego jest to, że nbconvert2 będzie głównie biblioteką Pythona, w której w pseudokodzie możesz:
MyConverter = NBConverter(config=config) ipynb = read(ipynb_file) converted_files = MyConverter.convert(ipynb) for file in converted_files : write(file)
Punkt wejścia pojawi się później, po ustabilizowaniu API.
Zaznaczę tylko, że @jdfreder (profil github) pracuje nad eksportem tex / pdf / sphinx i jest ekspertem w generowaniu plików PDF z pliku ipynb w momencie pisania tego tekstu.
źródło
[NbconvertApp] Config file for profile './profile/latex_base.nbcv' not found, giving up
konfiguracyjnego A nbconvert nie daje mi bezpośrednio pliku pdf, ale plik lateksowy i muszę przetworzyć plik * .tex za pomocą pdflatex, ale tak jest dobre rozwiązanie.IPython.nbconvert.exporters.latex
i zastanawiam się, czy istnieje sposób na uzyskanie z tego wyniku PDF bez narzędzia wiersza poleceń. Jakie są również zależności, aby to zadziałało? (pandoc, tetex, inne rzeczy?) I zakładam, że nie jest to platforma wieloplatformowa (nie będzie działać w systemie Windows). TIA!Przekaż również
--execute
flagę, aby uzyskać dane wyjścioweNajlepszą praktyką jest trzymanie danych wyjściowych poza notatnikiem w celu kontroli wersji, zobacz: Używanie notebooków IPython pod kontrolą wersji
Ale jeśli nie przejdziesz
--execute
, dane wyjściowe nie będą obecne w HTML, zobacz także: Jak uruchomić notatnik Jupyter .ipynb z terminala?Dla fragmentu HTML bez nagłówka: Jak wyeksportować notatnik IPython do formatu HTML na potrzeby posta na blogu?
Przetestowano w Jupyter 4.4.0.
źródło
Dla tych, którzy nie mogą zainstalować wkhtmltopdf w swoich systemach, jeszcze jedną metodą, inną niż wiele wspomnianych już w odpowiedziach na to pytanie, jest po prostu pobranie pliku jako plik html z notatnika jupyter, przesłanie go do HTML do PDF i pobranie przekonwertowane pliki pdf z tego miejsca.
Tutaj masz swój notatnik IPython (.ipynb) przekonwertowany do obu formatów PDF (.pdf) i HTML (.html).
źródło
źródło
Sposób GUI
Przejdź do Pliki> Pobierz jako> HTML lub PDF przez LaTeX
Następnie poszukaj pliku w folderze Pobrane. PS: Jeśli LaTeX miał jakieś błędy podczas kompilacji pliku PDF, nie powiedzie się. Jeśli tak się stanie, pobierz plik HTML, a następnie skorzystaj z witryny http://webpagetopdf.com/ lub innej podobnej usługi, aby przekonwertować kod HTML na PDF.
Sposób wiersza poleceń
źródło
Jeśli korzystasz z wersji sagemath w chmurze, możesz po prostu przejść do lewego rogu i
wybrać Plik → Pobierz jako → Pdf przez LaTeX (.pdf).
Jeśli chcesz, sprawdź zrzut ekranu.
Zrzut ekranu Konwertuj ipynb na pdf
Jeśli to nie działa z jakiegokolwiek powodu, możesz spróbować w inny sposób.
wybierz Plik → Podgląd wydruku, a następnie na podglądzie
kliknij prawym przyciskiem myszy → Drukuj, a następnie wybierz zapisz jako pdf.
źródło
Nie mogę jeszcze uruchomić pliku PDF. Dokumentacja sugeruje, że powinienem być w stanie zmusić go do pracy z lateksem, więc może mój lateks nie działa. 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.
Jednak HTML działa świetnie przy użyciu „slajdów” i jest piękny!
$ ipython nbconvert --to slides myfile.ipynb ... [NbConvertApp] Writing 215220 bytes to myfile.slides.html
// Aktualizacja 2014-11-07Fri .: Składnia IPython v3 jest inna, jest prostsza;
$ ipython nbconvert --to PDF myfile.ipynb
We wszystkich przypadkach wydaje się, że brakowało mi biblioteki „pdflatex”. Badam to.źródło
Możesz to zrobić, najpierw konwertując notatnik do formatu HTML, a następnie do formatu PDF:
Kolejne kroki, które wdrożyłem na: OS: Ubuntu, notebook Anaconda-Jupyter, Python 3
1 Zapisz notatnik w formacie HTML:
Uruchom notatnik jupyter, który chcesz zapisać w formacie HTML. Najpierw zapisz notatnik poprawnie, aby plik HTML zawierał najnowszą zapisaną wersję twojego kodu / notatnika.
Uruchom następujące polecenie z samego notatnika:
!jupyter nbconvert --to html your_notebook_name.ipynb
Po wykonaniu utworzy wersję HTML twojego notatnika i zapisze ją w bieżącym katalogu roboczym. Zobaczysz, że jeden plik html zostanie dodany do bieżącego katalogu o
your_notebook_name.html
nazwie(
your_notebook_name.ipynb
->your_notebook_name.html
).2 Zapisz html jako PDF:
your_notebook_name.html
plik (kliknij go). Otworzy się w nowej karcie przeglądarki.Zauważ, że z opcji drukowania mamy również swobodę wyboru fragmentu notatnika do zapisania w formacie pdf.
źródło
Szukałem sposobu na zapisanie notatników w formacie html, ponieważ za każdym razem, gdy próbuję pobrać jako html z moją nową instalacją Jupyter, zawsze pojawia się
500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'
błąd. Co dziwne, odkryłem, że pobieranie w formacie html jest tak proste, jak:Bez podglądu wydruku, bez wydruku, bez nbconvert. Korzystanie z Jupyter
Version: 1.0.0
. To tylko sugestia, aby spróbować (oczywiście nie wszystkie konfiguracje są takie same).źródło
Uważam, że najłatwiejszą metodą konwersji notebooka znajdującego się w sieci do formatu PDF jest najpierw wyświetlenie go w serwisie internetowym nbviewer . Następnie możesz wydrukować go do pliku pdf. Jeśli notatnik znajduje się na dysku lokalnym, najpierw prześlij go do repozytorium github i użyj jego adresu URL dla nbviewer.
źródło
Inne sugerowane podejścia:
Korzystając z opcji „Drukuj, a następnie wybierz Zapisz jako PDF”. z pliku HTML spowoduje utratę krawędzi krawędzi, podświetlanie składni, przycinanie wykresów itp.
Niektóre inne biblioteki okazały się zepsute, jeśli chodzi o używanie przestarzałych wersji.
Rozwiązanie: Lepszą, bezproblemową opcją jest użycie internetowego konwertera https://www.sejda.com/html-to-pdf, który konwertuje wersję * .html twojego * .ipynb na * .pdf.
Kroki:
Prześlij nowo utworzony plik * .html do https://www.sejda.com/html-to-pdf a następnie wybierz opcję HTML to PDF.
Twój plik pdf jest teraz gotowy do pobrania.
Masz teraz pliki .ipynb, .html i .pdf
źródło
Połączyłem kilka odpowiedzi powyżej w wbudowanym Pythonie, który możesz dodać do ~ / .bashrc lub ~ / .zshrc, aby skompilować i przekonwertować wiele notatników do jednego pliku 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 * }
źródło
Zwykła wersja Pythona odpowiedzi Partizanosa .
import os [os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
źródło
--template report
jako dodatkowej opcji kompiluje również ToC do wynikowego pliku PDF, pobierając różne nagłówki przecen w notatniku.notebook-as-pdfInstall
python -m pip install notebook-as-pdf pyppeteer-install
Użyj tego
Możesz go również użyć z nbconvert:
jupyter-nbconvert --to PDF viaHTML nazwa_pliku.ipynb
co spowoduje utworzenie pliku o nazwie nazwa_pliku.pdf.
lub pip install notebook-as-pdf
utwórz plik PDF z notatnika jupyter-nbconvert-toPDFviaHTML
źródło
Myślę, że najprostszy sposób to „Ctrl + P”> zapisz jako „pdf”. Otóż to.
źródło
Możesz skorzystać z tej prostej usługi online. Obsługuje zarówno HTML, jak i PDF.
https://htmtopdf.herokuapp.com/ipynbviewer/
źródło