Как конвертировать записные книжки IPython в PDF и HTML?
Я хочу конвертировать свои ipython-блокноты, чтобы распечатать их, или просто отправить их другим в формате html. Я заметил, что уже существует инструмент для этого, nbconvert. Я скачал его, но я не знаю, как конвертировать ноутбук, с nbconvert2.py, так как nbconvert говорит, что это устарело. nbconvert2.py говорит, что мне нужен профиль для конвертации ноутбука, что это? Есть документация об этом инструменте?
Ответы
Ответ 1
-
Преобразуйте файл записной книжки IPython в html.
ipython nbconvert --to html notebook.ipynb
Это преобразует файл документа IPython notebook.ipynb в формат вывода html.
Обновление: для вывода HTML, теперь вы должны использовать jupyter вместо ipython:
jupyter nbconvert --to html notebook.ipynb
-
Преобразуйте 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
- Сохранить как HTML;
- Ctrl + P;
- Сохранить как 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:
- Запустите блокнот Jupyter, который вы хотите сохранить в формате HTML. Сначала сохраните записную книжку правильно, чтобы в файле HTML была последняя сохраненная версия вашего кода/записной книжки.
-
Запустите следующую команду из самой записной книжки:
!jupyter nbconvert --to html your_notebook_name.ipynb
После выполнения создаст HTML-версию вашей записной книжки и сохранит ее в текущем рабочем каталоге. Вы увидите, что один HTML файл будет добавлен в текущий каталог с именем your_notebook_name.html
(your_notebook_name.ipynb
→ your_notebook_name.html
).
2 Сохраните HTML как PDF:
- Теперь откройте этот файл
your_notebook_name.html
(щелкните по нему). Он будет открыт в новой вкладке вашего браузера. - Теперь перейдите к варианту печати. Отсюда вы можете сохранить этот файл в формате 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
Другие предлагаемые подходы:
-
Используя "Печать", а затем выберите "Сохранить как PDF". из вашего HTML файла приведет к потере границ границ, выделению синтаксиса, обрезке графиков и т.д.
-
Некоторые другие библиотеки оказались сломанными, когда дело доходит до использования устаревших версий.
Решение: Лучше, без проблем, вариант - использовать онлайн-конвертер https://www.sejda.com/html-to-pdf, который преобразует *.html версию вашего *.ipynb в *.pdf.
шаги:
- Во-первых, из интерфейса вашего ноутбука Jupyter конвертируйте *.ipynb в *.html, используя
Файл> Скачать как> HTML (.html)
-
Загрузите только что созданный файл *.html на https://www.sejda.com/html-to-pdf, а затем выберите параметр HTML в PDF.
-
Ваш файл PDF теперь готов к загрузке.
-
Теперь у вас есть файлы .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"
- Дело сделано