Então, estou tentando salvar um caderno Jupyter como PDF, mas simplesmente não consigo descobrir como fazer isso. A primeira coisa que tento é no menu de arquivo apenas fazer o download como PDF, mas isso resulta em:
nbconvert failed: PDF creating failed
a próxima coisa que tento é tentar fazer a conversão do prompt de comando assim
$ ipython nbconvert --to latex --post PDF MyNotebook.ipynb
mas, novamente, isso resulta em uma mensagem de erro
ImportError: No module named 'PDF'
e se eu tentar
$ ipython nbconvert --to latex MyNotebook.ipynb
isto resulta em
IPython.nbconvert.utils.pandoc.PandocMissing: Pandoc wasn't found:
Please check that pandoc is installed
se eu tentar instalar o pandoc ( pip install pandoc
), isso me dará
ImportError: No module named 'ConfigParser'
e é aqui que fico preso porque simplesmente não sei mais o que fazer. Alguém tem ideia de como consertar o que está errado?
pandoc
elatex
)Respostas:
Para fazer funcionar, instalei latex, latex extra típico e pandoc.
Com o ubuntu:
leva alguns tempos: vários 100 Mb para fazer o download. Eu li em algum lugar que você pode usar
--no-install-recommends
para texlive e extra para reduzir ao dl.fonte
pandoc
etexlive-xetex
.texlive-generic-extra
resolver esse problema , além dotexlive-xetex
que @douggard sugeriu.Se você estiver em um Mac e tiver o Homebrew instalado, abra um terminal e instale o pandoc digitando o comando:
brew install pandoc
seja paciente, o tempo de instalação e compilação pode demorar um pouco em conexões lentas de internet ou sistemas mais antigos.
fonte
brew install pandoc
ebrew cask install mactex-no-gui
.22/04/2015: Parece que uma atualização do IPython significa que
--to pdf
deve ser usado em vez de--to latex --post PDF
. Há um problema relacionado ao Github .fonte
Para converter blocos de notas em PDF, primeiro você precisa ter o nbconvert instalado.
pip install nbconvert # OR conda install nbconvert
Em seguida, se você não estiver usando o Anaconda ou ainda não o fez, você deve instalar o pandoc seguindo as instruções em seu site ou, no Linux, da seguinte maneira:
Depois disso, você precisa ter o XeTex instalado em sua máquina:
Agora você pode navegar até a pasta que contém seu IPython Notebook e executar o seguinte comando:
para mais referências, confira este link .
fonte
Como dizem os comentários à pergunta, você precisará do pandoc e do latex (por exemplo, TeXShop). Instalei o pandoc com o Homebrew, demorou apenas um segundo. Tendo pandoc e TeXShop, eu poderia gerar latex, mas não pdf (na linha de comando).
Explorando o arquivo latex (.tex) com TeXShop, a falha foi devido à falta de folhas de estilo e defs. Depois de instalar tudo isso (Adjustbox.sty, adjcalc.sty, trimclip.sty, collectbox.sty, tc-pgf.def, ucs.sty, uni-global.def, utf8x.def, ucsencs.def), finalmente trabalhos.
No entanto, o resultado parece um pouco descolado para o meu gosto. É uma pena que imprimir o html do Safari perca a coloração da sintaxe. Caso contrário, não parece tão ruim. (Isso tudo está no OS X).
fonte
jupyter nbconvert --to pdf filename.ipynb
Este script Python tem GUI para selecionar com o explorer um Ipython Notebook que você deseja converter para pdf. A abordagem com wkhtmltopdf é a única que achei que funciona bem e fornece PDFs de alta qualidade. Outras abordagens descritas aqui são problemáticas, o realce de sintaxe não funciona ou os gráficos estão bagunçados.
Você precisará instalar wkhtmltopdf: http://wkhtmltopdf.org/downloads.html
e Nbconvert
pip install nbconvert # OR conda install nbconvert
Script 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()
fonte
nbconvert
para exportar para html e, em seguida, usarwkhtmltopdf
para converter para pdf. mas isso não está claro em sua resposta :-)Estou usando o Notebook Anaconda-Jupyter no sistema operacional: Ubuntu 16.0 para programação em Python.
Instale Nbconvert, Pandoc e Tex:
Abra um terminal e implemente os seguintes comandos nele.
Instale o Nbconvert: embora seja parte do ecossistema Jupyter, instale-o novamente
Ou
Mas vou recomendar o uso de conda em vez de pip se você estiver usando anaconda
Instale o Pandoc: já que o Nbconvert usa o Pandoc para converter o markdown em formatos diferentes de HTML. Digite o seguinte comando
Instale o TeX: Para converter para PDF, nbconvert usa o TeX. Digite o seguinte comando
Após a execução desses comandos, feche os blocos de notas abertos, atualize a página inicial ou reinicie o kernel do bloco de notas aberto. Agora tente fazer o download do notebook em PDF :)
Observação: para obter mais detalhes, consulte a documentação oficial:
https://nbconvert.readthedocs.io/en/latest/install.html
fonte
Para converter qualquer bloco de notas Jupyter em PDF, siga as instruções abaixo:
( Esteja dentro do caderno Jupyter ):
No Mac OS :
command + P -> você obterá uma caixa de diálogo de impressão -> alterar destino como PDF -> Clique em imprimir
No Windows :
Ctrl + P -> você obterá uma caixa de diálogo de impressão -> alterar o destino como PDF -> Clique em imprimir
Se as etapas acima não geram PDF completo do notebook Jupyter (provavelmente porque o Chrome, algumas vezes, não imprime todas as saídas porque o Jupyter faz uma rolagem para grandes saídas),
Tente realizar as etapas abaixo para remover a rolagem automática no menu : -
Créditos: @ ÂngeloPolotto
Em seu Jupyter Notebook, clique em Célula na parte superior do Jupyter Notebook
Em seguida, clique em Todas as saídas -> Alternar rolagem para remover a rolagem automática.
fonte
Este problema ocorreu com Ubuntu e Mac OSX. Depois de uma série de buscas e testes frenéticos, ambos foram resolvidos. Isso requer ambos
tex
epandoc
; ambos os programas externos jumbo não podem ser instalados pelo Pythonpip
.Isso deve levar quase uma hora para ser concluído (no caso usual ). Se o problema persistir, pode ser necessário instalar a distribuição MacTeX. de TeXLive.
Uma instalação completa do TeXLive exigiria até 4,4 GB em disco.
Para evitar todo esse problema, a maneira recomendada de usar o Notebook IPython / Jupyter seria instalar a distribuição Anaconda Python.
fonte
Tive todos os tipos de problemas para descobrir isso também. Não sei se ele fornecerá exatamente o que você precisa, mas baixei meu bloco de notas como um arquivo HTML, abri-o no navegador Chrome e imprimi-o como um arquivo PDF, que salvei. Ele capturou todo o meu código, texto e gráficos. Era bom o suficiente para o que eu precisava.
fonte
Se você estiver usando a versão sagemath cloud, você pode simplesmente ir para o canto esquerdo,
selecionar Arquivo -> Baixar como -> Pdf via LaTeX (.pdf)
Verifique a captura de tela se desejar.
Captura de tela Converter ipynb em pdf
Se não funcionar por algum motivo, você pode tentar outra maneira.
selecione Arquivo -> Visualização de impressão e, na visualização,
clique com o botão direito do mouse -> Imprimir e selecione salvar como pdf.
fonte
Como um membro novo, não pude simplesmente adicionar um comentário sobre a postagem, mas quero ressaltar que a solução oferecida por Phillip Schwartz funcionou para mim. Esperançosamente, pessoas em uma situação semelhante tentarão esse caminho mais cedo com ênfase. Não ter quebras de página foi um problema frustrante por um bom tempo, por isso sou grato pela discussão acima.
Como disse Phillip Schwartz: "Você precisará instalar o wkhtmltopdf: [ http://wkhtmltopdf.org/downloads.html][1]
e Nbconvert "
Em seguida, você adiciona uma célula do tipo "rawNBConvert" e inclui:
<p style="page-break-after:always;"></p>
Isso pareceu funcionar para mim, e o PDF gerado teve a quebra de página nos locais correspondentes. Você não precisa executar o código personalizado, pois parece que o caminho "normal" de baixar o notebook como HTML, abrir no navegador e imprimir em PDF funciona depois que esses utilitários são instalados.
fonte
notebook-as-pdfInstall python -m pip install notebook-as-pdf pyppeteer-install
Use-o Você também pode usá-lo com nbconvert:
jupyter-nbconvert --para PDFviaHTML filename.ipynb
que criará um arquivo chamado filename.pdf.
ou pip instalar notebook-as-pdf
criar pdf do notebook jupyter-nbconvert-toPDFviaHTML
fonte
O que descobri foi que o nbconvert / utils / pandoc.py tinha um bug de código que resultou no erro em minha máquina. O código verifica se pandoc está no caminho das variáveis ambientais. Para minha máquina, a resposta é não. No entanto, o pandoc.exe é!
A solução foi adicionar '.exe' ao código na linha 69
if __version is None: if not which('pandoc.exe'): raise PandocMissing()
O mesmo vale para 'xelatex' não está instalado. Adicione ao arquivo nbconvert / exporters / pdf.py na linha 94
cmd = which(command_list[0]+'.exe')
fonte
Para converter .ipynb em pdf, seu sistema deve conter 2 componentes,
nbconvert : faz parte do jupyter permite converter ipynb para pdf
XeTeX: Converta ipynb para o formato .tex e depois converta para pdf.
Então você pode usar o comando abaixo para converter para pdf,
Caso não funcione, instale o pandoc e tente novamente.
fonte
Para usuários do Ubuntu, uma resposta pode ser encontrada aqui . Eu também cito:
fonte
Tive problemas ao exibir corretamente alguns símbolos com download regular como PDF . Então baixei como tex
jupyter nbconvert --to latex "my notebook.ipynb"
, fiz alguns ajustes no notepad (por exemplo, no meu caso eu precisava dessas linhas para o meu idioma) e depois exportado para pdf com
latex --output-format=pdf "my notebook.tex"
.Mas, finalmente, no entanto, para manter os mesmos caracteres que você vê em um navegador Acabei usando a minha impressão do navegador Chrome:
Ctrl+P
Print to pdf
. Ele adiciona cabeçalho e rodapé desnecessários, mas todo o resto permanece como está. Não há mais erros no processamento da barra de progresso tqdm, não há mais código saindo da página e assim por diante. Simples assim.fonte
Em qualquer sistema, as etapas básicas para configurar corretamente o nbconvert para converter notebooks ipython em pdf / latex são
Instalando nbconvert
pip install nbconvert
ou
conda install nbconvert
Instalando pandoc
sudo apt-get install pandoc
para Ubuntuou
sudo yum install pandoc
para CentOSpara outros, visite pandoc-installation
Instalando o texlive
Você pode instalar pacotes recomendados ou instalação completa. Para Ubuntu
`
Para outros e para a instalação completa do texlive, siga as instruções fornecidas em tug de acordo com seu sistema e escolha.
Eu baixei o arquivo tar.gz de tug-texlive-download e segui as instruções fornecidas no TeX Live - Instalação rápida . Instruções de instalação resumidas:
Limpar
rm -rf /usr/local/texlive/2019
rm -rf ~/.texlive2019
Execute o instalador
descompacte o arquivo zip
cd /your/unpacked/directory
perl install-tl
Digite o comando: i
Caminho de configuração
sudo vi /etc/bash.bashrc
e inserirPATH=/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
Configurando o tamanho do papel padrão
tlmgr paper letter
Os comandos podem ser diferentes de acordo com o seu sistema, mas as etapas básicas permanecem as mesmas.
fonte
Tive este erro no Windows 10. Segui estes três passos e resolveu o meu problema:
Instale o nbconvert
pip install nbconvert
Instalar pandoc
https://pandoc.org/installing.html
https://miktex.org/download
Também é bom atualizar as bibliotecas:
fonte