Как конвертировать записные книжки IPython в PDF и HTML?

Я хочу конвертировать свои ipython-блокноты, чтобы распечатать их, или просто отправить их другим в формате html. Я заметил, что уже существует инструмент для этого, nbconvert. Я скачал его, но я не знаю, как конвертировать ноутбук, с nbconvert2.py, так как nbconvert говорит, что это устарело. nbconvert2.py говорит, что мне нужен профиль для конвертации ноутбука, что это? Есть документация об этом инструменте?

Ответы

Ответ 1

  1. Преобразуйте файл записной книжки IPython в html.

    ipython nbconvert --to html notebook.ipynb  
    

    Это преобразует файл документа IPython notebook.ipynb в формат вывода html.

    Обновление: для вывода HTML, теперь вы должны использовать jupyter вместо ipython:

    jupyter nbconvert --to html notebook.ipynb
    
  2. Преобразуйте html файл notebook.html в pdf файл с именем notebook.pdf. В Windows, Mac или Linux установите wkhtmltopdf. wkhtmltopdf - это утилита командной строки для преобразования html в pdf с использованием WebKit. Вы можете скачать wkhtmltopdf со связанной веб-страницы, или во многих дистрибутивах Linux его можно найти в их репозиториях.

    wkhtmltopdf notebook.html notebook.pdf   
    

Ответ 2

nbconvert еще не полностью заменен на nbconvert2, вы все равно можете использовать его, если хотите, иначе мы удалили бы исполняемый файл. Это просто предупреждение о том, что мы больше не исправляем nbconvert1.

Следующее должно работать:

./nbconvert.py --format=pdf yourfile.ipynb 

Если вы используете достаточно новую версию IPython, не используйте режим печати, просто используйте обычный диалог печати. График, нарезанный хром, является известной проблемой (Chrome не уважает некоторые CSS-страницы), и работает гораздо лучше с firefox, а не все версии.

Как и для nbconvert2, он все еще должен быть написан dev и docs.

Nbviewer использует nbconvert2, поэтому он довольно приличный с HTML.

Список текущих доступных профилей:

$ ls -l1 profile|cut -d. -f1

base_html
blogger_html
full_html
latex_base
latex_sphinx_base
latex_sphinx_howto
latex_sphinx_manual
markdown
python
reveal
rst

Дайте вам существующие профили. (Вы можете создать свой собственный, cf будущий документ, ./nbconvert2.py --help-all должен предоставить вам какой-то вариант, который вы можете использовать в своем профиле.)

то

$ ./nbconvert2.py [profilename] --no-stdout --write=True <yourfile.ipynb>

И он должен написать ваши (текс) файлы, пока извлеченные цифры в cwd. Да, я знаю, что это не очевидно, и это, вероятно, изменится, следовательно, не будет doc...

Причиной этого является то, что nbconvert2 будет в основном быть python library, где в псевдокоде вы можете сделать:

 MyConverter = NBConverter(config=config)
 ipynb = read(ipynb_file)
 converted_files = MyConverter.convert(ipynb)
 for file in converted_files :
     write(file)

Точка входа появится позже, как только API стабилизируется.

Я просто укажу, что @jdfreder (профиль github) работает над экспортом tex/pdf/sphinx и является экспертом для создания PDF из файла ipynb на время написания.

Ответ 3

В docs:

Если вы хотите предоставить другим пользователям статичное представление HTML или PDF вашего ноутбука, используйте кнопку "Печать". Это открывает статический вид документа, который вы можете распечатать в формате PDF с помощью средств вашей операционной системы, или сохранить в файл с параметром "Сохранить" в веб-браузере (обратите внимание, что обычно это создаст как html файл, так и каталог с именем notebook_name_files рядом с ним, который содержит всю необходимую информацию о стиле, поэтому, если вы собираетесь поделиться этим, вы должны отправить каталог вместе с основным файлом html).

Ответ 4

Также передайте флаг --execute, чтобы получить вывод

jupyter nbconvert --execute --to html notebook.ipynb
jupyter nbconvert --execute --to pdf notebook.ipynb

Лучшей практикой является выход вывода из ноутбука для контроля версий, см. Использование ноутбуков IPython под управлением версий

Но тогда, если вы не пройдете --execute, вывод не будет присутствовать в HTML, см. также: Как запустить .ipynb Jupyter Notebook с терминала?

Для фрагмента HTML без заголовка: Как экспортировать записную книжку IPython в HTML для публикации в блоге?

Протестировано в Jupyter 4.4.0.

Ответ 5

  1. Сохранить как HTML;
  2. Ctrl + P;
  3. Сохранить как PDF.

Ответ 6

Я не могу заставить pdf работать. Документы подразумевают, что я должен быть способен заставить его работать с латексом, поэтому, возможно, мой латекс не работает. 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.

Однако, HTML отлично работает с использованием слайдов, и это красиво! $ ipython nbconvert --to slides myfile.ipynb ... [NbConvertApp] Writing 215220 bytes to myfile.slides.html

//Обновление 2014-11-07Fri: Синтаксис IPython v3 отличается, он проще; $ ipython nbconvert --to PDF myfile.ipynb Во всех случаях кажется, что мне не хватает библиотеки pdflatex. Я изучаю это.

Ответ 7

Если вы используете облачную версию sagemath, вы можете просто перейти в левый angular,
выбрать File & rarr; Загрузить как & rarr; Pdf через LaTeX (.pdf)
Проверьте скриншот, если хотите.
Скриншот конвертировать ipynb в PDF

Еслипо какой-то причине это не сработает, попробуйте другой способ.
выберите файл & rarr; Предварительный просмотр и затем предварительный просмотр
щелкните правой кнопкой мыши & rarr; Распечатайте и выберите "Сохранить как PDF".

Ответ 8

Я искал способ сохранить записные книжки как html, так как всякий раз, когда я пытаюсь загрузить как html с моей новой установкой Jupyter, я всегда получаю ошибку 500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'. Как ни странно, я обнаружил, что загрузка как html проста:

  • Левый клик в записной книжке
  • Нажмите "Сохранить как..." в раскрывающемся меню
  • Сохранить соответственно

Нет предварительного просмотра, нет печати, нет nbconvert. Использование Jupyter Version: 1.0.0. Просто предложение попробовать (очевидно, не все настройки одинаковы).

Ответ 9

Я считаю, что самый простой способ конвертировать записную книжку, которая находится в Интернете, в pdf - это сначала просмотреть ее в веб-службе nbviewer. Затем вы можете распечатать его в PDF файл. Если записная книжка находится на вашем локальном диске, сначала загрузите ее в репозиторий github и используйте ее URL для nbviewer.

Ответ 10

Вы можете сделать это, сначала преобразовав блокнот в HTML, а затем в формат PDF:

Следующие шаги, которые я реализовал: ОС: Ubuntu, ноутбук Anaconda-Jupyter, Python 3

1 Сохраните записную книжку в формате HTML:

  1. Запустите блокнот Jupyter, который вы хотите сохранить в формате HTML. Сначала сохраните записную книжку правильно, чтобы в файле HTML была последняя сохраненная версия вашего кода/записной книжки.
  2. Запустите следующую команду из самой записной книжки:

    !jupyter nbconvert --to html your_notebook_name.ipynb

После выполнения создаст HTML-версию вашей записной книжки и сохранит ее в текущем рабочем каталоге. Вы увидите, что один HTML файл будет добавлен в текущий каталог с именем your_notebook_name.html

(your_notebook_name.ipynbyour_notebook_name.html).

2 Сохраните HTML как PDF:

  1. Теперь откройте этот файл your_notebook_name.html (щелкните по нему). Он будет открыт в новой вкладке вашего браузера.
  2. Теперь перейдите к варианту печати. Отсюда вы можете сохранить этот файл в формате PDF.

Обратите внимание, что из опции печати у нас также есть возможность выбора части записной книжки для сохранения в формате PDF.

Ответ 11

Я объединил некоторые ответы выше во встроенном Python, которые вы можете добавить в ~/.bashrc или ~/.zshrc, чтобы скомпилировать и преобразовать множество записных книжек в один файл 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 * 
}

Ответ 12

  Только этот ответ будет полезен для вас, если у вас есть математические, научные формулы в вашем документе. Даже если у вас их нет, все работает нормально.

GUI способ

  • открыть блокнот jupyter open the jupyter notebook
  • Перейдите в Файлы> Загрузить как> HTML или PDF через LaTeX Go to Files > Download as > HTML or PDF via LaTeX

  • Затем проверьте папку "Загрузки" на наличие файла. PS: Если у LaTeX были какие-либо ошибки при компиляции PDF, он потерпит неудачу. В этом случае загрузите файл HTML, а затем используйте http://webpagetopdf.com/ или любой другой подобный сервис для преобразования HTML в PDF.

Способ командной строки

  • Откройте терминал
  • Перейдите в папку, содержащую блокнот Jupyter
  • введите "jupyter nbconvert --to pdf your_jupyter_notebook.ipynb " PS: Если это не удастся, попробуйте Йогеш ответ

Ответ 13

Другие предлагаемые подходы:

  1. Используя "Печать", а затем выберите "Сохранить как PDF". из вашего HTML файла приведет к потере границ границ, выделению синтаксиса, обрезке графиков и т.д.

  2. Некоторые другие библиотеки оказались сломанными, когда дело доходит до использования устаревших версий.

Решение: Лучше, без проблем, вариант - использовать онлайн-конвертер https://www.sejda.com/html-to-pdf, который преобразует *.html версию вашего *.ipynb в *.pdf.

шаги:

  1. Во-первых, из интерфейса вашего ноутбука Jupyter конвертируйте *.ipynb в *.html, используя

Файл> Скачать как> HTML (.html)

  1. Загрузите только что созданный файл *.html на https://www.sejda.com/html-to-pdf, а затем выберите параметр HTML в PDF.

  2. Ваш файл PDF теперь готов к загрузке.

  3. Теперь у вас есть файлы .ipynb,.html и .pdf.

Ответ 14

Лучший и простой способ

Просто нажмите

Command + P в Mac

Control + P в Windows

Откроется меню "Печать", затем выберите "Сохранить как PDF" и нажмите "Сохранить".

Ответ 15

Простая версия partizanos ответа на python.

  • откройте терминал (Linux, MacOS) или перейдите к точке, где вы можете запускать файлы python в Windows
  • Введите следующий код в файл .py (скажем, tejas.py)

    импорт ОС

    [os.system("jupyter nbconvert --to pdf" + f)  для f в os.listdir("."), если f.endswith("ipynb")]

  • Перейдите в папку, содержащую записные книжки Jupyter

  • Убедитесь, что tejas.py находится в текущей папке. Скопируйте его в текущую папку, если это необходимо.
  • введите "python tejas.py"
  • Дело сделано