IPython 노트북을 PDF 및 HTML로 변환하는 방법은 무엇입니까?


89

ipython-notebook을 변환하여 인쇄하거나 단순히 html 형식으로 보내고 싶습니다. 이미 nbconvert 도구가 있다는 것을 알게 되었습니다 . 다운로드했지만 nbconvert가 더 이상 사용되지 않는다고 말했기 때문에 nbconvert2.py로 노트북을 변환하는 방법을 모릅니다. nbconvert2.py에서 노트북을 변환하려면 프로필이 필요하다고 말합니다. 무엇입니까? 이 도구에 대한 문서가 있습니까?


답변:


96

LaTeX가 설치되어있는 경우 파일 -> 다른 이름으로 다운로드 -> LaTeX (.pdf)를 통해 PDF를 사용 하여 Jupyter 노트북에서 직접 PDF로 다운로드 할 수 있습니다 . 그렇지 않으면 다음 두 단계를 따르십시오.

  1. HTML 출력의 경우 이제 IPython 대신 Jupyter를 사용하고 파일 -> 다른 이름으로 다운로드 -> HTML (.html)을 선택 하거나 다음 명령을 실행해야합니다.

    jupyter nbconvert --to html notebook.ipynb  
    

    그러면 Jupyter 문서 파일 notebook.ipynb가 html 출력 형식으로 변환됩니다.

    Google Colaboratory는 설정이 필요없고 완전히 클라우드에서 실행되는 Google의 무료 Jupyter 노트북 환경입니다. Google Colab을 사용하는 경우 명령은 동일하지만 Google Colab에서는 .ipynb 또는 .py 형식 만 다운로드 할 수 있습니다.

  2. html 파일 notebook.html을 notebook.pdf라는 pdf 파일로 변환하십시오. Windows, Mac 또는 Linux에서 wkhtmltopdf를 설치 하십시오 . wkhtmltopdf는 WebKit을 사용하여 html을 pdf로 변환하는 명령 줄 유틸리티입니다. 링크 된 웹 페이지에서 wkhtmltopdf를 다운로드하거나 많은 Linux 배포판에서 해당 저장소에서 찾을 수 있습니다.

    wkhtmltopdf notebook.html notebook.pdf   
    

원본 (현재 거의 사용되지 않음) 개정 : IPython 노트북 파일을 html로 변환합니다.

ipython nbconvert --to html notebook.ipynb


1
모든 것이 한 페이지로 축소되었습니다. -__-
htafoya

2
HTML 출력의 경우 이제 jupyter대신 사용해야합니다 . ipythonjupyter nbconvert --to html notebook.ipynb
AlexG

이 작업을 수행하려면 jupyter_contrib_nbextensions 를 설치해야합니다.
CharlesG

위의 답변에 따르면 wkhtmltopdf가 필요합니다. 우분투 14.04에 설치하려면 gist.github.com/brunogaspar/bd89079245923c04be6b0f92af431c10
Pradeep Singh

3
웹 사이트를 pdf로 인쇄 할 수도 있습니다.
AndiCover

17

로부터 문서 :

다른 사람에게 노트북의 정적 HTML 또는 PDF보기를 제공하려면 인쇄 단추를 사용하십시오. 그러면 운영 체제의 기능을 사용하여 PDF로 인쇄하거나 웹 브라우저의 '저장'옵션을 사용하여 파일에 저장할 수있는 문서의 정적보기가 열립니다 (일반적으로 이렇게하면 html 파일과이라는 디렉토리가 모두 생성됩니다. 필요한 모든 스타일 정보를 포함하는 notebook_name_files 옆에 있으므로이를 공유하려면 기본 html 파일과 함께 디렉토리를 보내야합니다.


1
감사합니다! HTML 버전은 정말 훌륭하고 쉽게 구할 수 있습니다. 그러나 PDF가 좋지 않고 두 페이지 사이에 있고 긴 코드 라인도 잘 리면 그래프가 두 조각으로 잘립니다.
nunzio13n 2013

@ nunzio13n-글쎄요, 적어도 당신은 html을 가지고 있습니다 ... 나는 사용 nbconvrt하지 않았으므로 정말로 당신을 도울 수 없습니다. 따라 올 것이다 가지고 희망의 사람이 ...
루트

3
죽은 링크. 또한 노트북에 인쇄 버튼이 없습니다.
Pat

CTRL+ P작품 을 사용하여 브라우저에서 인쇄를 사용 합니다.
Levi Baguley

13

nbconvert는 아직 nbconvert2로 완전히 대체되지 않았습니다. 원하는 경우 계속 사용할 수 있습니다. 그렇지 않으면 실행 파일을 제거했을 것입니다. 더 이상 nbconvert1을 버그 수정하지 않는다는 경고 일뿐입니다.

다음이 작동합니다.

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

IPython 최신 버전을 사용하는 경우 인쇄보기를 사용하지 말고 일반 인쇄 대화 상자를 사용하십시오. 크롬에서 그래프 비잉 컷은 알려진 문제이며 (크롬은 일부 인쇄 CSS를 존중하지 않음), 모든 버전이 아직은 아니지만 파이어 폭스에서 훨씬 더 잘 작동합니다.

nbconvert2의 경우 여전히 고도의 개발 및 문서 작성이 필요합니다.

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

기존 프로필을 제공합니다. (당신은 당신의 ./nbconvert2.py --help-all프로필에서 사용할 수있는 몇 가지 옵션을 제공 할 미래 문서 를 참조하십시오.)

그때

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

그리고 cwd에서 추출 된 숫자만큼 (tex) 파일을 작성해야합니다. 예, 이것이 분명하지 않다는 것을 알고 있으며 아마도 변경 될 것이므로 문서가 없습니다 ...

그 이유는 nbconvert2가 주로 의사 코드에서 할 수 있는 파이썬 라이브러리 이기 때문입니다.

 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 / 스핑크스 수출에 노력하고이 글을 쓰는 시점에서 ipynb 파일에서 PDF를 생성하는 전문가입니다.


감사합니다. 제 의심을 더 명확히 해주셨습니다. 하지만 여전히 nbconvert2.py는 Config 파일이 필요하기 때문에 작동하지 않습니다. [NbconvertApp] Config file for profile './profile/latex_base.nbcv' not found, giving up그리고 nbconvert는 나에게 직접 pdf 파일이 아니라 라텍스 파일을 제공하지 않으며 pdflatex로 * .tex 파일을 처리해야하지만 좋은 솔루션입니다.
nunzio13n 2013

github에서 문제를 열 ​​수 있습니까? 그러면이 문제를 해결하겠습니다.
Matt

아마도 nbconvert의 문제는 아니지만 지식이 부족하기 때문입니다. 아마도 문서가 나오면 모든 것이 명확해질 것입니다.
nunzio13n

이것은 ipython 번호 매기기를 잃거나 제공하지 않는 것 같습니다 (ipython 지시문을 사용하여 변환되기를 바랬습니다).
Andy Hayden 2014 년

이를위한 API 버전이 있습니까? 나는이 있음을보고 IPython.nbconvert.exporters.latex하고 명령 줄 도구없이이에서 PDF 출력을 얻을 수있는 방법이 있는지 궁금하다. 또한 작동하도록하는 종속성은 무엇입니까? (pandoc, tetex, 기타?) 그리고 크로스 플랫폼이 아니라고 가정합니다 (Windows에서는 작동하지 않습니다). TIA!
IanSR 2014-06-30

11

또한 --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에서 테스트되었습니다.


9

시스템에 wkhtmltopdf 를 설치할 수없는 사용자 를 위해이 질문에 대한 답변에서 이미 언급 한 다른 방법 중 하나는 jupyter 노트북에서 파일을 html 파일로 간단히 다운로드하여 HTML로 PDF로 업로드 한 다음 다운로드하는 것입니다. 거기에서 변환 된 pdf 파일.

여기에 IPython 노트북 (.ipynb)이 PDF (.pdf) 및 HTML (.html) 형식으로 변환되었습니다.



4

문서에 수학, 과학적 공식이있는 경우이 답변 만 유용합니다. 당신이 그들을 가지고 있지 않더라도 그것은 잘 작동합니다.

GUI 방식

  • jupyter 노트북을 엽니 다 jupyter 노트북을 엽니 다
  • 파일> 다른 이름으로 다운로드> LaTeX를 통해 HTML 또는 PDF로 이동합니다. 파일> 다른 이름으로 다운로드> LaTeX를 통해 HTML 또는 PDF로 이동합니다.

  • 그런 다음 다운로드 폴더에서 파일을 확인하십시오. 추신 : PDF를 컴파일하는 동안 LaTeX에 오류가 있으면 실패합니다. 이 경우 HTML 파일을 다운로드 한 다음 http://webpagetopdf.com/ 또는 기타 유사한 서비스를 사용하여 HTML을 PDF로 변환하십시오.

명령 줄 방식

  • 터미널 열기
  • jupyter 노트북이 포함 된 폴더로 이동합니다.
  • "jupyter nbconvert --to pdf your_jupyter_notebook.ipynb"를 입력하십시오. 추신 : 실패하면 Yogesh의 답변을 시도하십시오.

4

sagemath 클라우드 버전을 사용 하는 경우 왼쪽 모서리로 이동하여
파일 → 다른 이름으로 다운로드 → LaTeX를 통한 PDF (.pdf)
를 선택하여 스크린 샷을 확인하면됩니다.
스크린 샷 ipynb를 pdf로 변환

어떤 이유로 든 작동하지 않으면 다른 방법을 시도 할 수 있습니다.
파일 → 인쇄 미리보기를 선택한 다음 미리보기에서
오른쪽 클릭 → 인쇄를 선택한 다음 pdf로 저장을 선택합니다.


3

아직 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

// Update 2014-11-07Fri .: IPython v3 구문이 다르며 더 간단합니다. $ ipython nbconvert --to PDF myfile.ipynb 모든 경우에 'pdflatex'라이브러리가 누락 된 것으로 보입니다. 조사 중입니다.


시도 : $ ipython nbconvert your_file.ipynb --to 라텍스 --post PDF
moldovean

ty @moldovean이 나를 다시 한 번 살펴 보라고 핑했습니다. 더 많은 인터넷 검색에서 문제가 드러났습니다. 인수 순서는 중요하지 않습니다. 여전히 "No such file or directory"가 표시됩니다.
AnneTheAgile 2014 년

흥미로운 문제입니다. 어쩌면 ... ipython을 다시 설치하는 것이 도움이 될 수도 있습니다 .. 정말 모르겠습니다 :(
moldovean

@moldovean, 특정 라이브러리가 필요하지만 ipynb가 설치하지 않은 것으로 나타났습니다. 이 경우 내 경로에 최소한 pdflatex가 필요합니다. 오류 검사를 개선하려면 내 PR을 참조하십시오. github.com/ipython/ipython/pull/6884
AnneTheAgile 2014

3

먼저 노트북을 HTML로 변환 한 다음 PDF 형식으로 변환하면됩니다.

내가 구현 한 다음 단계 : OS : Ubuntu, Anaconda-Jupyter notebook, Python 3

1 HTML 형식으로 노트북 저장 :

  1. HTML 형식으로 저장하려는 jupyter 노트북을 시작합니다. 먼저 HTML 파일에 코드 / 노트북의 최신 버전이 저장되도록 노트북을 올바르게 저장하십시오.

  2. 노트북 자체에서 다음 명령을 실행합니다.

    !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로 저장 :

  1. 이제 해당 your_notebook_name.html파일을 엽니 다 (클릭). 브라우저의 새 탭에서 열립니다.
  2. 이제 인쇄 옵션으로 이동하십시오. 여기에서이 파일을 pdf 파일 형식으로 저장할 수 있습니다.

인쇄 옵션에서 pdf 형식으로 저장할 노트북의 일부를 유연하게 선택할 수도 있습니다.


2

새 Jupyter 설치에서 html로 다운로드하려고 할 때마다 항상 500 : Internal Server Error The error was: nbconvert failed: validate() got an unexpected keyword argument 'relax_add_props'오류가 발생 하기 때문에 노트북을 html로 저장하는 방법을 찾고 있습니다. 이상하게도 html로 다운로드하는 것이 다음과 같이 간단하다는 것을 알았습니다.

  1. 노트북에서 왼쪽 클릭
  2. 드롭 다운 메뉴에서 '다른 이름으로 저장 ...'을 클릭합니다.
  3. 그에 따라 저장

인쇄 미리보기, 인쇄 없음, nbconvert 없음. Jupyter 사용 Version: 1.0.0. 시도해 볼 수있는 제안입니다 (분명히 모든 설정이 동일한 것은 아닙니다).


2

웹에있는 노트북을 pdf로 변환하는 가장 쉬운 방법은 웹 서비스 nbviewer 에서 먼저 보는 것입니다 . 그런 다음 pdf 파일로 인쇄 할 수 있습니다. 노트북이 로컬 드라이브에있는 경우 먼저 github 저장소에 업로드하고 nbviewer에 해당 URL을 사용합니다.


2

기타 제안 된 접근 방식 :

  1. '인쇄 후 pdf로 저장'을 사용합니다. HTML 파일에서 테두리 가장자리 손실 , 구문 강조 표시, 플롯 트리밍 등이 발생합니다.

  2. 오래된 버전을 사용할 때 일부 다른 라이브러리가 손상되는 것으로 나타났습니다.

솔루션 : 더 좋고 번거롭지 않은 옵션은 * .ipynb의 * .html 버전을 * .pdf로 변환 하는 온라인 변환기 https://www.sejda.com/html-to-pdf 를 사용하는 것입니다.

단계 :

  1. 먼저 Jupyter 노트북 인터페이스에서 다음을 사용하여 * .ipynb를 * .html로 변환합니다.

파일> 다른 이름으로 다운로드> HTML (.html)

  1. 새로 생성 된 * .html 파일을 https://www.sejda.com/html-to-pdf에 업로드 한 다음 HTML에서 PDF로 옵션을 선택합니다.

  2. 이제 pdf 파일을 다운로드 할 수 있습니다.

  3. 이제 .ipynb, .html 및 .pdf 파일이 있습니다.


2

위의 몇 가지 답변을 인라인 파이썬에서 결합하여 ~ / .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 * 
}

2

partizanos의 대답 의 일반 파이썬 버전 .

  • 터미널 (Linux, MacOS)을 열거 나 Windows에서 파이썬 파일을 실행할 수있는 지점으로 이동합니다.
  • .py 파일에 다음 코드를 입력하십시오 (예 : tejas.py).
import os

[os.system("jupyter nbconvert --to pdf " + f) for f in os.listdir(".") if f.endswith("ipynb")]
  • jupyter 노트북이 포함 된 폴더로 이동합니다.
  • tejas.py가 현재 폴더에 있는지 확인하십시오. 필요한 경우 현재 폴더에 복사하십시오.
  • "python tejas.py"를 입력합니다.
  • 작업 완료

--template report추가 옵션으로 사용 하면 노트북의 다른 마크 다운 제목을 사용하여 결과 pdf로 ToC도 컴파일됩니다.
Stefan

2

notebook-as-pdfInstall

python -m pip install notebook-as-pdf pyppeteer-install

그걸 써

nbconvert와 함께 사용할 수도 있습니다.

jupyter-nbconvert --to PDFviaHTML filename.ipynb

그러면 filename.pdf라는 파일이 생성됩니다.

또는 pip install notebook-as-pdf

노트북 jupyter-nbconvert-toPDFviaHTML에서 PDF 생성


감사합니다. 이것은 저에게 잘 맞았습니다. 먼저 Python 3.6.8 환경에서 이것을 시도했지만 몇 가지 문제가 발생했습니다. 그런 다음 Conda를 기반으로하는 Python 3.7.8 환경으로 업그레이드했고 Charm처럼 작동했습니다.
mastDrinkNimbuPani

그 이유는 asyncio가 패키지에 대한 종속성이고 코드 어딘가에 3.7 유일한 메서드 인 asyncio.run이 있기 때문입니다.
mastDrinkNimbuPani

0

내가 생각하는 가장 간단한 방법은 'Ctrl + P'> 'pdf'로 저장하는 것입니다. 그게 다야.


이것은 코드 블록을 보여줄 것입니다
Dani LA

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.