Jadi, saya sudah mencoba untuk menyimpan notebook jupyter sebagai PDF tetapi saya tidak tahu bagaimana melakukan ini. Hal pertama yang saya coba adalah dari menu file hanya unduh sebagai PDF, tetapi melakukan itu menghasilkan:
nbconvert failed: PDF creating failed
hal berikutnya yang saya coba adalah mencoba melakukan konversi dari Command Prompt seperti ini
$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb
tetapi sekali lagi, ini menghasilkan pesan kesalahan
ImportError: No module named 'PDF'
dan jika saya mencoba
$ ipython nbconvert --to latex MyNotebook.ipynb
ini menghasilkan
IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed
jika saya mencoba menginstal pandoc ( pip install pandoc
), ini memberi saya
ImportError: No module named 'ConfigParser'
dan di sinilah saya terjebak karena saya tidak tahu harus berbuat apa lagi. Adakah yang tahu bagaimana memperbaiki apa yang salah?
pandoc
danlatex
)Jawaban:
Untuk membuatnya bekerja, saya memasang lateks, ekstra lateks khas, dan pandoc.
Dengan ubuntu:
dibutuhkan beberapa waktu: beberapa 100 Mb untuk mengunduh. Saya membaca di suatu tempat yang dapat Anda gunakan
--no-install-recommends
untuk texlive dan ekstra untuk mengurangi dl tersebut.sumber
pandoc
dantexlive-xetex
.texlive-generic-extra
menyelesaikan masalah ini , selain daritexlive-xetex
saran @douggard itu.Jika Anda menggunakan Mac dan menginstal Homebrew, buka shell terminal dan instal pandoc dengan mengetik perintah:
brew install pandoc
Bersabarlah, waktu untuk menginstal dan mengkompilasi dapat memakan waktu cukup lama pada koneksi internet yang lambat atau sistem yang lebih lama.
sumber
brew install pandoc
danbrew cask install mactex-no-gui
.2015-4-22: Sepertinya pembaruan IPython berarti yang
--to pdf
harus digunakan sebagai pengganti--to latex --post PDF
. Ada masalah Github terkait .sumber
Untuk mengonversi buku catatan ke PDF, Anda harus menginstal nbconvert terlebih dahulu.
pip install nbconvert # OR conda install nbconvert
Selanjutnya, jika Anda belum menggunakan Anaconda atau belum, Anda harus menginstal pandoc dengan mengikuti petunjuk di situs web mereka atau, di Linux, sebagai berikut:
Setelah itu Anda perlu menginstal XeTex di komputer Anda:
Anda sekarang dapat menavigasi ke folder yang menyimpan Notebook IPython Anda dan menjalankan perintah berikut:
untuk referensi lebih lanjut, silakan lihat tautan ini .
sumber
Seperti komentar untuk pertanyaan tersebut, Anda akan membutuhkan pandoc dan lateks (misalnya TeXShop). Saya menginstal pandoc dengan Homebrew, hanya butuh satu detik. Memiliki pandoc dan TeXShop, saya dapat menghasilkan lateks tetapi bukan pdf (pada baris perintah).
Menjelajahi file lateks (.tex) dengan TeXShop, kegagalan itu karena tidak adanya stylesheet dan def. Setelah menginstal semua ini (adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), akhirnya berhasil kerja.
Namun, hasilnya terlihat agak terlalu funky untuk selera saya. Sayang sekali bahwa mencetak html dari Safari kehilangan pewarnaan sintaks. Kalau tidak, tidak terlihat terlalu buruk. (Ini semua ada di OS X).
sumber
jupyter nbconvert --to pdf filename.ipynb
Skrip Python ini memiliki GUI untuk dipilih dengan penjelajah Notebook Ipython yang ingin Anda ubah ke pdf. Pendekatan dengan wkhtmltopdf adalah satu-satunya pendekatan yang saya temukan berfungsi dengan baik dan menyediakan pdf berkualitas tinggi. Pendekatan lain yang dijelaskan di sini bermasalah, penyorotan sintaksis tidak berfungsi atau grafik kacau.
Anda harus memasang wkhtmltopdf: http://wkhtmltopdf.org/downloads.html
dan Nbconvert
pip install nbconvert # OR conda install nbconvert
Skrip Python
# Script adapted from CloudCray # Original Source: https://gist.github.com/CloudCray/994dd361dece0463f64a # 2016--06-29 # This will create both an HTML and a PDF file import subprocess import os from Tkinter import Tk from tkFileDialog import askopenfilename WKHTMLTOPDF_PATH = "C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf" # or wherever you keep it def export_to_html(filename): cmd = 'ipython nbconvert --to html "{0}"' subprocess.call(cmd.format(filename), shell=True) return filename.replace(".ipynb", ".html") def convert_to_pdf(filename): cmd = '"{0}" "{1}" "{2}"'.format(WKHTMLTOPDF_PATH, filename, filename.replace(".html", ".pdf")) subprocess.call(cmd, shell=True) return filename.replace(".html", ".pdf") def export_to_pdf(filename): fn = export_to_html(filename) return convert_to_pdf(fn) def main(): print("Export IPython notebook to PDF") print(" Please select a notebook:") Tk().withdraw() # Starts in folder from which it is started, keep the root window from appearing x = askopenfilename() # show an "Open" dialog box and return the path to the selected file x = str(x.split("/")[-1]) print(x) if not x: print("No notebook selected.") return 0 else: fn = export_to_pdf(x) print("File exported as:\n\t{0}".format(fn)) return 1 main()
sumber
nbconvert
untuk mengekspor ke html, lalu menggunakanwkhtmltopdf
untuk mengonversi ke pdf. tetapi ini tidak jelas dari jawaban Anda :-)Saya menggunakan Anaconda-Jupyter Notebook di OS: Ubuntu 16.0 untuk pemrograman Python.
Instal Nbconvert, Pandoc, dan Tex:
Buka terminal dan terapkan perintah berikut di dalamnya.
Instal Nbconvert: meskipun itu bagian dari ekosistem Jupyter, tetap instal sekali lagi
Atau
Tetapi saya akan merekomendasikan menggunakan conda daripada pip jika Anda menggunakan anaconda
Instal Pandoc: karena Nbconvert menggunakan Pandoc untuk mengonversi penurunan harga ke format selain HTML. Ketik perintah berikut
Instal TeX: Untuk mengonversi ke PDF, nbconvert menggunakan TeX. Ketik perintah berikut
Setelah menjalankan perintah ini, tutup buku catatan yang dibuka, segarkan halaman beranda Atau mulai ulang kernel dari buku catatan yang dibuka. Sekarang coba unduh notebook sebagai pdf :)
Catatan: Untuk lebih jelasnya, silakan lihat dokumentasi resmi:
https://nbconvert.readthedocs.io/en/latest/install.html
sumber
Untuk mengonversi notebook Jupyter apa pun ke PDF, ikuti petunjuk di bawah ini:
( Berada di dalam notebook Jupyter ):
Di Mac OS :
perintah + P -> Anda akan mendapatkan kotak dialog cetak -> ubah tujuan sebagai PDF -> Klik cetak
Di Windows :
Ctrl + P -> Anda akan mendapatkan kotak dialog cetak -> ubah tujuan sebagai PDF -> Klik cetak
Jika langkah-langkah di atas tidak menghasilkan PDF penuh dari notebook Jupyter (mungkin karena Chrome, terkadang, tidak mencetak semua output karena Jupyter membuat scroll untuk output besar),
Coba lakukan langkah-langkah di bawah ini untuk menghapus gulir otomatis di menu : -
Penghargaan: @ ÂngeloPolotto
Di Notebook Jupyter Anda, klik Sel di atas notebook jupyter
Selanjutnya klik All output -> Toggle scrolling untuk menghapus auto scroll.
sumber
Masalah ini dialami dengan Ubuntu dan Mac OSX. Setelah serangkaian pencarian dan cobaan yang panik, keduanya terpecahkan. Ini membutuhkan keduanya
tex
danpandoc
; kedua program eksternal jumbo tidak dapat diinstal oleh Pythonpip
.Ini akan memakan waktu hampir satu jam untuk menyelesaikannya (dalam kasus biasa ). Jika masalah terus berlanjut, Anda mungkin harus menginstal distro MacTeX. dari TeXLive.
Penginstalan TeXLive secara lengkap membutuhkan hingga 4,4 GB pada disk.
Untuk menyelamatkan semua masalah ini, cara yang disarankan untuk menggunakan Notebook IPython / Jupyter adalah dengan menginstal distribusi Anaconda Python.
sumber
Saya memiliki banyak masalah untuk memikirkan hal ini juga. Saya tidak tahu apakah itu akan memberikan apa yang Anda butuhkan, tetapi saya mengunduh buku catatan saya sebagai file HTML, lalu menariknya ke browser Chrome saya, dan kemudian mencetaknya sebagai file PDF, yang saya simpan. Itu menangkap semua kode, teks, dan grafik saya. Itu cukup baik untuk apa yang saya butuhkan.
sumber
Jika Anda menggunakan versi cloud sagemath , Anda cukup pergi ke sudut kiri,
pilih File -> Download as -> Pdf via LaTeX (.pdf)
Periksa tangkapan layar jika Anda mau.
Screenshot Mengonversi ipynb ke pdf
Jika tidak berhasil karena alasan apa pun, Anda dapat mencoba cara lain.
pilih File -> Print Preview lalu pada preview
klik kanan -> Print kemudian pilih save as pdf.
sumber
Sebagai anggota baru, saya tidak dapat hanya menambahkan komentar di kiriman tetapi saya ingin menyatakan bahwa solusi yang ditawarkan oleh Phillip Schwartz berhasil untuk saya. Mudah-mudahan orang-orang dalam situasi serupa akan mencoba jalan itu lebih cepat dengan penekanan. Tidak adanya jeda halaman adalah masalah yang membuat frustrasi untuk beberapa saat jadi saya berterima kasih atas diskusi di atas.
Seperti yang dikatakan Phillip Schwartz: "Anda harus memasang wkhtmltopdf: [ http://wkhtmltopdf.org/downloads.html][1]
dan Nbconvert "
Anda kemudian menambahkan sel dengan jenis "rawNBConvert" dan menyertakan:
<p style="page-break-after:always;"></p>
Itu sepertinya berhasil bagi saya, dan PDF yang dihasilkan memiliki jeda halaman di lokasi yang sesuai. Anda tidak perlu menjalankan kode khusus, karena tampaknya jalur "normal" untuk mengunduh buku catatan sebagai HTML, membuka di browser, dan mencetak ke PDF berfungsi setelah utilitas tersebut dipasang.
sumber
Untuk mengubah .ipynb menjadi pdf, sistem Anda harus berisi 2 komponen,
nbconvert : Merupakan bagian dari jupyter yang memungkinkan untuk mengkonversi ipynb ke pdf
XeTeX: Konversikan ipynb ke format .tex dan kemudian konversikan ke pdf.
Kemudian Anda dapat menggunakan perintah di bawah ini untuk mengonversi ke pdf,
Jika tidak berhasil, instal pandoc dan coba lagi.
sumber
notebook-as-pdfInstal python -m pip instal notebook-as-pdf pyppeteer-install
Gunakan Anda juga dapat menggunakannya dengan nbconvert:
jupyter-nbconvert --ke PDF melalui namafileHTML.ipynb
yang akan membuat file bernama filename.pdf.
atau pip install notebook-as-pdf
buat pdf dari notebook jupyter-nbconvert-toPDFviaHTML
sumber
Apa yang saya temukan adalah bahwa nbconvert / utils / pandoc.py memiliki bug kode yang mengakibatkan kesalahan pada mesin saya. Kode tersebut memeriksa apakah pandoc ada di jalur variabel lingkungan Anda. Untuk mesin saya, jawabannya tidak. Bagaimanapun pandoc.exe adalah!
Solusinya adalah menambahkan '.exe' ke kode di baris 69
if __version is None: if not which('pandoc.exe'): raise PandocMissing()
Hal yang sama berlaku untuk 'xelatex' tidak diinstal. Tambahkan ke file nbconvert / exporters / pdf.py pada baris 94
cmd = which(command_list[0]+'.exe')
sumber
Untuk pengguna Ubuntu, jawabannya dapat ditemukan di sini . Saya juga mengutipnya:
sumber
Saya mengalami masalah dalam menampilkan beberapa simbol dengan benar dengan unduhan biasa sebagai pdf . Jadi diunduh sebagai tex
jupyter nbconvert --to latex "my notebook.ipynb"
, buat beberapa tweak dengan notepad (sebagai contoh, dalam kasus saya, saya membutuhkan baris ini untuk bahasa saya) lalu diekspor ke pdf dengan
latex --output-format=pdf "my notebook.tex"
.Namun akhirnya, namun, untuk mempertahankan karakter yang sama seperti yang Anda lihat di browser saya akhirnya menggunakan saya cetak browser Chrome:
Ctrl+P
Print to pdf
. Itu menambahkan header dan footer yang tidak perlu tetapi yang lainnya tetap apa adanya. Tidak ada lagi kesalahan saat memproses bilah kemajuan tqdm, tidak ada lagi kode yang keluar dari halaman dan seterusnya. Sederhana seperti itu.sumber
Di sistem apa pun, langkah-langkah dasar untuk mengatur nbconvert dengan benar untuk mengonversi notebook ipython ke pdf / lateks adalah
Menginstal nbconvert
pip install nbconvert
atau
conda install nbconvert
Menginstal pandoc
sudo apt-get install pandoc
untuk Ubuntuatau
sudo yum install pandoc
untuk CentOSuntuk yang lain kunjungi pandoc-installation
Menginstal texlive
Anda dapat menginstal paket yang direkomendasikan atau instalasi penuh. Untuk Ubuntu
`
Untuk orang lain dan untuk menginstal penuh texlive ikuti instruksi yang diberikan di tug sesuai sistem dan pilihan Anda.
Saya mengunduh file tar.gz dari tug-texlive-download dan mengikuti instruksi yang diberikan di TeX Live - Instalasi cepat . Instruksi instalasi dalam ringkasan:
Membersihkan
rm -rf /usr/local/texlive/2019
rm -rf ~/.texlive2019
Jalankan penginstal
buka file zip
cd /your/unpacked/directory
perl install-tl
Masukkan perintah: i
Jalur pengaturan
sudo vi /etc/bash.bashrc
dan masukkanPATH=/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
Mengatur ukuran kertas default
tlmgr paper letter
Perintahnya mungkin berbeda sesuai sistem Anda tetapi langkah dasarnya tetap sama.
sumber
Saya mengalami kesalahan ini di Windows 10. Saya mengikuti tiga langkah ini dan itu menyelesaikan masalah saya:
Pasang nbconvert
pip instal nbconvert
Instal pandoc
https://pandoc.org/installing.html
https://miktex.org/download
Juga bagus untuk memperbarui perpustakaan:
sumber