Как сохранить юпитер ноутбук в пдф

Обновлено: 04.07.2024

1 ответ

Если у вас установлен LaTeX, вы можете загрузить его в формате PDF прямо из записной книжки Jupyter, выбрав Файл -> Загрузить как -> PDF через LaTeX (.pdf). В противном случае выполните эти два шага.

Преобразуйте файл записной книжки Jupyter в HTML. Выберите Файл -> Загрузить как -> HTML (.html) или выполните следующую команду:

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

Google Colaboratory - это бесплатная среда для ноутбуков Jupyter от Google, которая не требует настройки и полностью работает в облаке. Если вы используете Google Colab, команды такие же, но Google Colab позволяет загружать только форматы.ipynb или.py.

Установите утилиту командной строки wkhtmltopdf для преобразования html в pdf, используя sudo apt install wkhtmltopdf и преобразуйте html-файл notebook.html в файл pdf с именем notebook.pdf.

Основные шаги по правильной настройке nbconvert для преобразования ноутбуков ipython в pdf/latex:

  1. Установить nbconvert
  2. Установить pandoc
  3. Установить Texlive

Установка nbconvert

pip install nbconvert

или же conda install nbconvert

Установка pandoc

sudo apt-get install pandoc для Ubuntu

Установка texlive

Вы можете установить рекомендуемые пакеты или полную установку.

Для полной установки texlive следуйте инструкциям, данным на буксире. Я загрузил файл tar.gz с сайта tug -texlive-download и следовал инструкциям, данным в TeX Live - Быстрая установка. Краткие инструкции по установке:

rm -rf /usr/local/texlive/2019

распаковать zip файл

Введите команду: i

sudo vi /etc/bash.bashrc и вставить

PATH=/usr/local/texlive/2019/bin/x86_64-linux:$PATH; export PATH

MANPATH=/usr/local/texlive/2019/texmf-dist/doc/man:$MANPATH; export MANPATH

INFOPATH=/usr/local/texlive/2019/texmf-dist/doc/info:$INFOPATH; export INFOPATH

Установка размера бумаги по умолчанию

tlmgr paper letter

Наиболее вероятной причиной является то, что вы не установили соответствующие зависимости. В вашей системе Ubuntu должны быть установлены некоторые пакеты для преобразования файлов LaTeX и XeTeX, чтобы сохранить ваш ноутбук в формате PDF. Вы можете установить их:

Также, nbconvert это другая зависимость, которая обычно автоматически устанавливается с помощью jupyter. Но вы можете установить его, чтобы быть уверенным, когда ваша виртуальная среда активирована:

Итак, я пытался сохранить записную книжку jupyter в формате PDF, но я просто не могу понять, как это сделать. Первое, что я пробую, это из меню файла просто скачать как PDF, но в результате:

следующее, что я попробую, - это попытаться выполнить преобразование из командной строки следующим образом

и если я попробую

если я попытаюсь установить pandoc ( pip install pandoc ), это даст мне

для создания PDF-файлов требуются непифонические зависимости (т.е. pandoc и latex ) Это означает, что вам необходимо установить их, прежде чем вы сможете использовать эту функцию. И это не пакеты Python, поэтому вы не можете использовать pip.

Чтобы он работал, я установил латекс, типичный дополнительный латекс и pandoc.

несколько раз: несколько 100 Мб на скачивание. Я где-то читал, что вы можете использовать --no-install-recommends для texlive и extra, чтобы уменьшить до dl.

Мне также нужно было texlive-generic-extra решить эту проблему , помимо того, texlive-xetex что предложил @douggard.

Если вы работаете на Mac и у вас установлен Homebrew, откройте оболочку терминала и установите pandoc, набрав команду:

brew install pandoc

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

Это работало на OS X 10.10. Теперь я могу конвертировать в LaTeX и PDF. (Моя установка на pandoc заняла меньше минуты . Должно быть, у меня уже было большинство компонентов в моей системе.) СПАСИБО! @drpetermolnar Это тоже сработало для меня (OSX 10.11.6). Прошло 2 минуты. @Akshay, команда: ipython nbconvert --to PDF <ваш блокнот> .ipynb Для OSX 10.13.06 пришлось сделать: brew install pandoc и brew cask install mactex-no-gui .

2015-4-22: Похоже, что обновление IPython означает, что его --to pdf следует использовать вместо --to latex --post PDF . Есть связанная проблема с Github .

Чтобы конвертировать записные книжки в PDF, вам сначала необходимо установить nbconvert.

Затем, если вы не используете Anaconda или еще не использовали, вы должны установить pandoc, следуя инструкциям на их веб-сайте или, в Linux, следующим образом:

После этого на вашем компьютере должен быть установлен XeTex:

Теперь вы можете перейти к папке, в которой находится ваш блокнот IPython, и выполнить следующую команду:

для получения дополнительной информации перейдите по этой ссылке .

Как сказано в комментариях к вопросу, вам понадобятся pandoc и latex (например, TeXShop). Я установил pandoc с Homebrew, это заняло всего секунду. Имея pandoc и TeXShop, я мог генерировать латекс, но не pdf (в командной строке).

При изучении файла latex (.tex) с помощью TeXShop ошибка была связана с отсутствием таблиц стилей и определений. После установки всего этого (adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), наконец, Работа.

Однако, на мой вкус, результат выглядит слишком круто. Очень жаль, что при печати html из Safari теряется синтаксическая окраска. В остальном все выглядит не так уж плохо. (Это все на OS X).

Следующая короткая строка напрямую сгенерировала файл PDF, не оставив никаких промежуточных файлов, созданных путем компиляции. jupyter nbconvert --to pdf filename.ipynb

Этот скрипт Python имеет графический интерфейс для выбора с помощью проводника записной книжки Ipython, которую вы хотите преобразовать в pdf. Подход с wkhtmltopdf - единственный подход, который, как я обнаружил, хорошо работает и обеспечивает высокое качество PDF-файлов. Другие подходы, описанные здесь, проблематичны, подсветка синтаксиса не работает или графики испорчены.

Скрипт Python

script довольно длинный для ответа stackoverflow и просто обертывает wkhtml. Думаю, ответ будет более ясным, если вы просто поместите параметры командной строки для wkhtml и пример. так что в основном вы используете nbconvert для экспорта в html, а затем используете wkhtmltopdf для преобразования в pdf. но это не ясно из вашего ответа :-) Итак, я попробовал это. Фактически это лучше, чем экспорт напрямую в pdf. Как ни странно, часть моего mathjax отображается правильно (в начале документа), а затем по непонятной причине перестает отображать около 12 страниц документа.

Я использую Anaconda-Jupyter Notebook в ОС: Ubuntu 16.0 для программирования на Python.

Установите Nbconvert, Pandoc и Tex:

Откройте терминал и выполните в нем следующие команды.

Установите Nbconvert: хотя это часть экосистемы Jupyter, все же установите его еще раз

Но я рекомендую использовать conda вместо pip, если вы используете anaconda

Установите Pandoc: поскольку Nbconvert использует Pandoc для преобразования уценки в форматы, отличные от HTML. Введите следующую команду

Установите TeX: для преобразования в PDF nbconvert использует TeX. Введите следующую команду

После выполнения этих команд закройте открытые записные книжки, обновите домашнюю страницу или перезапустите ядро ​​открытой записной книжки. А теперь попробуйте скачать записную книжку в формате pdf :)

Чтобы преобразовать любой блокнот Jupyter в PDF, следуйте приведенным ниже инструкциям:

( Будьте внутри записной книжки Jupyter ):

На Mac OS :

command + P -> откроется диалоговое окно печати -> изменить место назначения как PDF -> Нажмите печать

На Windows :

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

Попробуйте выполнить следующие шаги для удаления автоматической прокрутки в меню : -

введите описание изображения здесь

В записной книжке Jupyter щелкните Ячейка в верхней части записной книжки jupyter.

Затем нажмите Весь вывод -> Переключить прокрутку для удаления автоматической прокрутки.

введите описание изображения здесь

Можете ли вы добавить эту информацию в свой ответ? Это может быть очень полезно для большего числа пользователей. Да @ ÂngeloPolotto, я добавил вашу информацию в свой ответ.

Эта проблема наблюдалась как в Ubuntu, так и в Mac OSX. После неистовых поисков и испытаний они оба были раскрыты. Для этого требуются оба tex и pandoc ; обе большие внешние программы не могут быть установлены Python pip .

Mac OSX: установка pandoc с помощью MacPorts

port install pandoc

Это должно занять почти час (в обычном случае). Если проблема не исчезнет, ​​возможно, вам придется установить дистрибутив MacTeX. из TeXLive.

Для Ubuntu: установка ванильного TeXLive из сетевого инсталлятора - не через APT-GET . Затем установите pandoc с помощью apt-get.

sudo apt-get install pandoc

Для полной установки TeXLive потребуется до 4,4 ГБ на диске.

Чтобы избавиться от всех этих проблем, рекомендуемым способом использования IPython / Jupyter Notebook будет установка дистрибутива Anaconda Python.

У меня тоже были всевозможные проблемы с этим. Я не знаю, предоставит ли он именно то, что вам нужно, но я загрузил свой блокнот в виде HTML-файла, затем вытащил его в своем браузере Chrome, а затем распечатал как файл PDF, который я сохранил. Он захватил весь мой код, текст и графики. Это было достаточно для того, что мне было нужно.

В моем случае html помещает одну ячейку на страницу, даже если она слишком длинная. Так что не решение

Если вы используете облачную версию sagemath , вы можете просто перейти в левый угол,
выбрать Файл -> Загрузить как -> Pdf через LaTeX (.pdf)
Проверьте снимок экрана, если хотите.

Если по какой-либо причине это не сработает, вы можете попробовать другой способ.
выберите Файл -> Предварительный просмотр, а затем
щелкните правой кнопкой мыши в окне предварительного просмотра -> Печать, а затем выберите Сохранить как pdf.

И если это не сработает, вы можете напрямую использовать nbconvert в командной строке и точно узнать, что вызывает проблемы с латексом.

Как новый участник, я не мог просто добавить комментарий к посту, но хочу подтвердить, что решение, предложенное Филлипом Шварцем, сработало для меня. Надеюсь, люди в подобной ситуации попробуют этот путь раньше с упором. Долгое время отсутствие разрывов страниц было неприятной проблемой, поэтому я благодарен за обсуждение выше.

Затем вы добавляете ячейку типа rawNBConvert и включаете:

Похоже, это помогло мне, и сгенерированный PDF-файл имел разрыв страницы в соответствующих местах. Однако вам не нужно запускать собственный код, поскольку кажется, что «нормальный» путь загрузки записной книжки в формате HTML, открытия в браузере и печати в PDF работает после установки этих утилит.

notebook-as-pdf Установить python -m pip install notebook-as-pdf pyppeteer-install

Использование Вы также можете использовать его с nbconvert:

jupyter-nbconvert --to PDFviaHTML filename.ipynb

который создаст файл с именем filename.pdf.

или pip install notebook-as-pdf

создать PDF-файл из записной книжки jupyter-nbconvert-toPDFviaHTML

Я обнаружил, что в nbconvert / utils / pandoc.py была ошибка кода, которая привела к ошибке для моей машины. Код проверяет, находится ли pandoc в вашем пути переменных среды. Для моей машины ответ - нет. Однако pandoc.exe есть!

Решением было добавить '.exe' в код в строке 69.

То же самое касается "xelatex" не установлен. Добавьте в файл nbconvert / exporters / pdf.py в строке 94

Чтобы преобразовать .ipynb в pdf, ваша система должна содержать 2 компонента:

nbconvert : является частью jupyter и позволяет конвертировать ipynb в pdf

XeTeX: конвертировать ipynb в формат .tex, а затем конвертировать в pdf.

Затем вы можете использовать команду ниже для преобразования в PDF,

В случае, если это не сработает, установите pandoc и попробуйте еще раз.

Для пользователей Ubuntu ответ можно найти здесь . Я тоже это цитирую:

Наиболее вероятная причина заключается в том, что вы не установили соответствующие зависимости. В вашей системе Ubuntu должны быть установлены некоторые пакеты для преобразования файлов LaTeX и XeTeX, чтобы сохранить записную книжку в формате PDF. Вы можете установить их:

Кроме того, nbconvert это еще одна зависимость, которая обычно автоматически устанавливается вместе с jupyter. Но вы можете установить его на всякий случай, активировав виртуальную среду:

У меня возникли проблемы с правильным отображением некоторых символов при обычной загрузке в формате pdf . Итак, скачал как tex jupyter nbconvert --to latex "my notebook.ipynb" , сделал некоторые настройки с помощью блокнота (например, в моем случае мне понадобились эти строки для моего языка

), а затем экспортировал в pdf с расширением latex --output-format=pdf "my notebook.tex" .

Но в конце концов, однако, сохранить те же символы, которые Вы видите в браузере , я в конечном итоге с помощью моей печати браузера Chrome: Ctrl+P Print to pdf . Он добавляет ненужный верхний и нижний колонтитулы, но все остальное остается как есть. Больше никаких ошибок при обработке индикатора выполнения tqdm, больше не будет кода, выходящего со страницы, и так далее. Просто как тот.

В любой системе основные шаги для правильной настройки nbconvert для преобразования ноутбуков ipython в pdf / latex:

  1. Установить nbconvert
  2. Установить pandoc
  3. Установить Texlive

Установка nbconvert

pip install nbconvert

или conda install nbconvert

Установка pandoc

sudo apt-get install pandoc для Ubuntu

или sudo yum install pandoc для CentOS

Установка texlive

Вы можете установить рекомендуемые пакеты или полную установку. Для Ubuntu

Для других и для полной установки texlive следуйте инструкциям, данным на буксире в соответствии с вашей системой и выбором.

Я загрузил файл tar.gz с сайта tug -texlive-download и следовал инструкциям, данным в TeX Live - Быстрая установка . Краткие инструкции по установке:

rm -rf /usr/local/texlive/2019

распаковать zip файл

Введите команду: i

sudo vi /etc/bash.bashrc и вставить

PATH=/usr/local/texlive/2019/bin/x86_64-linux:$PATH; export PATH

MANPATH=/usr/local/texlive/2019/texmf-dist/doc/man:$MANPATH; export MANPATH

INFOPATH=/usr/local/texlive/2019/texmf-dist/doc/info:$INFOPATH; export INFOPATH

Установка размера бумаги по умолчанию

tlmgr paper letter

Команды могут отличаться в зависимости от вашей системы, но основные шаги остаются прежними.

Итак, я пытался сохранить блокнот jupyter как PDF, но я просто не могу понять, как это сделать. Первое, что я пробую, это из меню "Файл" просто скачать в формате PDF, но в результате получается:

следующее, что я пытаюсь сделать, это попытаться сделать преобразование из командной строки, как это

и если я попробую

если я пытаюсь установить Pandoc ( pip install pandoc ), это дает мне

Если вы работаете на Mac и у вас установлен Homebrew, откройте терминальную оболочку и установите pandoc, введя команду:

brew install pandoc

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

Чтобы это работало, я установил латекс, типичный латекс и пандок.

требуется несколько раз: несколько 100 Мб для скачивания. Я где-то читал, что вы можете использовать --no-install-recommends для texlive и extra для сокращения до dl.

2015-4-22: похоже, что обновление IPython означает, что вместо --to pdf следует использовать --to latex --post PDF . Есть связанная проблема Github .

Для преобразования записных книжек в PDF сначала необходимо установить nbconvert.

Далее, если вы не используете Anaconda или еще не сделали этого, вы должны установить pandoc, следуя инструкциям на их веб-сайт или в Linux, следующим образом:

После этого вам необходимо установить XeTex на вашем компьютере:

Теперь вы можете перейти к папке, содержащей ваш IPython Notebook, и выполнить следующую команду:

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

Как говорится в комментариях к вопросу, вам понадобятся пандок и латекс (например, TeXShop). Я установил pandoc с Homebrew, это заняло всего секунду. Имея pandoc и TeXShop, я мог генерировать латекс, но не pdf (в командной строке).

Изучая файл латекса (.tex) с TeXShop, ошибка произошла из-за отсутствия таблиц стилей и определений. После установки всего этого (Adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), он наконец сделал Работа.

Тем не менее, результат на мой вкус выглядит немного странно. Очень жаль, что печать HTML-кода из Safari теряет синтаксическую окраску. В противном случае, это не выглядит так плохо. (Это все на OS X).

Я использую Anaconda-Jupyter Notebook в ОС: Ubuntu 16.0 для Python программирования.

Установите Nbconvert, Pandoc и Tex:

Откройте терминал и выполните в нем следующие команды.

Установите Nbconvert: хотя он является частью экосистемы Jupyter, установите его еще раз

Но я рекомендую использовать conda вместо pip, если вы используете anaconda

Установите Pandoc: поскольку Nbconvert использует Pandoc для преобразования уценки в форматы, отличные от HTML. Введите следующую команду

Установите TeX: для преобразования в PDF nbconvert использует TeX. Введите следующую команду

После выполнения этих команд закройте открытые записные книжки, обновите домашнюю страницу или перезапустите ядро ​​открытой записной книжки. Теперь попробуйте скачать блокнот в формате PDF :)

Если вы используете sagemath облачную версию, вы можете просто перейти в левый угол,
выберите Файл -> Загрузить как -> Pdf через LaTeX (.pdf)
Проверьте скриншот, если хотите.

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

Этот сценарий Python имеет графический интерфейс для выбора с помощью Проводника Ipython Notebook, который требуется преобразовать в pdf. Подход с wkhtmltopdf является единственным подходом, который я нашел, работает хорошо и обеспечивает высокое качество PDF-файлов. Другие подходы, описанные здесь, проблематичны, подсветка синтаксиса не работает или графики испорчены.

Python-скрипт

Эта проблема возникла как в Ubuntu, так и в Mac OSX. После неистового набора поисков и испытаний оба они были решены. Это требует как tex , так и pandoc ; обе огромные внешние программы не могут быть установлены Python pip .

Mac OSX: использование MacPorts для установки pandoc

port install pandoc

Это должно занять около часа (в обычном случае. Если проблема не устранена, возможно, вам придется установить дистрибутив MacTeX. TeXLive.

Для Ubuntu: установите Vanilla TeXLive из сетевой установщик - , а не через apt-get . Затем установите pandoc, используя apt-get.

Sudo apt-get install pandoc

Полная установка TeXLive потребует до 4,4 ГБ на диске.

Чтобы избежать всех этих проблем, рекомендуемый способ использования IPython/Jupyter Notebook заключается в установке Anaconda Python дистрибутива.

Я обнаружил, что в nbconvert/utils/pandoc.py была ошибка кода, которая привела к ошибке для моей машины. Код проверяет, находится ли pandoc в вашем пути переменных среды. Для моей машины ответ - нет. Однако pandoc.exe есть!

Решением было добавить ".exe" в код в строке 69

То же самое касается 'xelatex' не установлен. Добавьте в файл nbconvert/exporters/pdf.py в строке 94

Затем вы добавляете ячейку типа "rawNBConvert" и включаете:

Это, похоже, помогло мне, и у сгенерированного PDF был разрыв страницы в соответствующих местах. Вам не нужно запускать пользовательский код, так как кажется, что "нормальный" путь загрузки записной книжки в виде HTML, открытия в браузере и печати в PDF работает после установки этих утилит.

У меня были разные проблемы, чтобы понять это. Я не знаю, предоставит ли он именно то, что вам нужно, но я загрузил свой блокнот в виде файла HTML, затем загрузил его в своем браузере Chrome и ​​распечатал в виде PDF файл, который я сохранил. Он захватил весь мой код, текст и графики. Это было достаточно хорошо для того, что мне было нужно.

Для преобразования любого ноутбука Jupyter в PDF, пожалуйста, следуйте приведенным ниже инструкциям:

( Будьте внутри блокнота Jupyter ):

На Mac OS :

команда + P -> вы получите диалоговое окно печати -> изменить назначение как PDF -> нажмите печать

На Windows :

Ctrl + P -> вы получите диалоговое окно печати -> измените назначение как PDF -> нажмите печать

Как экспортировать Jupyter Notebook (файл .ipynb) в PDF с поддержкой отображения на китайском языке

В последнее время я привык писать документы в Jupyter Notebook, но не могу экспортировать их в формат PDF после написания. После экспорта как .html в качестве альтернативы, но его нелегко открыть на телефоне, главное, что изображение, экспортированное как .html, не будет отображаться должным образом. Сегодня было разработано более мошенническое решение:Сохранить как PDF прямо в браузере(И лучше всего работает тест __ Google Chrome__).
Моя системная среда: Window10, Anancoda (на основе Python3)

Давайте сначала резюмируем первую схему «Jupyter Notebook экспортирует pdf и поддерживает отображение на китайском языке», распространяющуюся в Интернете:

Если это возможно, в текущей папке будет сгенерирована серия файлов, скомпилированных LaTex, и нужный нам PDF-файл.

Но у меня в процессе есть проблемы:

  • Во-первых, второй шаг не удался, ошибка следующая:
  • Файл .tex, скомпилированный на шаге 3, вообще невозможно открыть с помощью WinEdt, и появится следующая ошибка:
  • Таким образом, его можно открыть и изменить только с помощью Notepad ++:

 tex

warning

  • Я также пытался скопировать весь исходный код из Notepad ++ в новый файл .tex в WinEdt, но он все равно не компилируется нормально :!



Короче говоря, это было неудачно.

  1. Установить pandoc
  2. Установить MiKTex
  3. Измените непосредственно файл шаблона tex:
    Сначала найдите файл article.tplx, путь в моей Anaconda:C:\Users\admin\Anaconda3\pkgs\nbconvert-5.4.0-py37_1\Lib\site-packages\nbconvert\templates\latex
    открыть и \documentclass[11pt] превратиться в \documentclass

Если возможно, вы можете напрямую «Файл → Загрузить как → PDF через латекс (.pdf)».

Конечно, у меня все еще не получилось.

Позже я решил использовать мошеннический метод: если он не сработает, я распечатаю его как PDF прямо в браузере!


Вначале в моем Jupyter Notebook по умолчанию открывался браузер Microsoft Edge, но я обнаружил, что распечатанный PDF-файл был полностью нечитаемым!

Ни в коем случае, мне пришлось изменить браузер по умолчанию, открытый Jupyter Notebook, на Google Chrome:


  1. Сначала откройте Anaconda Prompt, запустите jupyter notebook --generate-config :
  2. Согласно возвращенному пути (вот C: \ Users \ admin.jupyter \ jupyter_notebook_config.py) найдите jupyter_notebook_config.py
  3. Откройте файл и добавьте в любом месте следующий код:

Здесь вам нужно найти путь, по которому находится ваш Google Chrome.exe, и заполнить соответствующее место выше. Обратите внимание, что буква r добавляется перед путем.

Наконец, снова откройте Jupyter Notebook и убедитесь, что это Google Chrome! (Не знаю почему, я повторил третий шаг два или три раза, чтобы добиться успеха.)

Откройте мой файл .ipynb и используйте функцию «печать» в Google Chrome, чтобы распечатать веб-страницу в PDF. Я случайно обнаружил, что эффект неплохой, формат в порядке, код в порядке, вывод кода в порядке и изображение в порядке , Формула не проблема. Счастливый!

Интеллектуальная рекомендация

совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)

1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.


[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов


IP, сеанс и cookie

Читайте также: