No código python, como salvar com eficiência uma determinada página em um pdf como um arquivo jpeg? (Caso de uso: tenho um servidor da web python flask onde os pdf-s serão carregados e os jpeg-s correspondentes a cada página são lojas.)
Essa solução está perto, mas o problema é que ela não converte a página inteira para jpeg.
Respostas:
A biblioteca pdf2image pode ser usada.
Você pode instalá-lo simplesmente usando,
Depois de instalado, você pode usar o seguinte código para obter imagens.
Salvando páginas em formato jpeg
Edit: o repositório Github pdf2image também menciona que usa
pdftoppm
e que requer outras instalações:Você pode instalar a versão mais recente no Windows usando o anaconda, fazendo:
observação: versões do Windows até 0,67 estão disponíveis em http://blog.alivate.com.au/poppler-windows/, mas observe que 0,68 foi lançado em agosto de 2018, portanto, você não receberá os recursos ou correções de bugs mais recentes.
fonte
Eu encontrei esta solução simples, PyMuPDF , saída para arquivo png. Observe que a biblioteca é importada como "fitz", um nome histórico para o mecanismo de renderização que ela usa.
fonte
A biblioteca Python
pdf2image
(usada na outra resposta) na verdade não faz muito mais do que apenas iniciarpdttoppm
comsubprocess.Popen
, então aqui está uma versão curta fazendo isso diretamente:Aqui está o link de instalação do Windows para
pdftoppm
(contido em um pacote chamado poppler): http://blog.alivate.com.au/poppler-windows/fonte
Não há necessidade de instalar o Poppler em seu sistema operacional. Isso vai funcionar:
pip instalar varinha
fonte
@gaurwraith, instale o poppler para Windows e use o pdftoppm.exe da seguinte maneira:
Baixe o arquivo zip com os binários / dlls mais recentes do Poppler em http://blog.alivate.com.au/poppler-windows/ e descompacte em uma nova pasta em sua pasta de arquivos de programa. Por exemplo: "C: \ Arquivos de programas (x86) \ Poppler".
Adicione "C: \ Arquivos de programas (x86) \ Poppler \ poppler-0.68.0 \ bin" à sua variável de ambiente SYSTEM PATH.
Da linha cmd instale o módulo pdf2image -> "pip install pdf2image".
@vishvAs vAsuki, este código deve gerar os jpgs que você deseja através do módulo de subprocesso para todas as páginas de um ou mais pdfs em uma determinada pasta:
Ou usando o módulo pdf2image:
fonte
É um utilitário chamado pdftojpg que pode ser usado para converter o pdf em img
Você pode encontrar o código aqui https://github.com/pankajr141/pdf2jpg
fonte
GhostScript executa muito mais rápido do que Poppler para um sistema baseado em Linux.
A seguir está o código para conversão de pdf em imagem.
GhostScript pode ser instalado no macOS usando
brew install ghostscript
As informações de instalação para outras plataformas podem ser encontradas aqui . Se ainda não estiver instalado em seu sistema.
fonte
Eu uso uma opção (talvez) muito mais simples de pdf2image:
Esta é uma pequena parte de um script bash em um loop para o uso de um dispositivo de casting estreito. Verifica a cada 5 segundos os arquivos PDF adicionados (todos) e os processa. Isso é para um dispositivo de demonstração, no final a conversão será feita em um servidor remoto. Converter para .PNG agora, mas .JPG também é possível.
Essa conversão, junto com as transições no formato A4, exibindo um vídeo, dois textos de rolagem suave e um logotipo (com transição em três versões), define o Pi3 para quase 4x 100% cpu-load ;-)
fonte
fonte
Aqui está uma solução que não requer bibliotecas adicionais e é muito rápida. Isso foi encontrado em: https://nedbatchelder.com/blog/200712/extracting_jpgs_from_pdfs.html# Eu adicionei o código em uma função para torná-lo mais conveniente.
Chame convert com o caminho do pdf como argumento e a função criará um arquivo .jpg no mesmo diretório
fonte