Questão Como converter PDF para imagem?


Eu tenho o requisito de converter páginas PDF em imagens. Existe uma imagem de fundo com algum texto escrito, por isso, quando guardo isto como imagem, apenas a imagem de fundo foi guardada.

Existe algum software disponível para o mesmo, para que a página completa possa ser convertida em imagem?


247
2018-06-23 10:16


origem


Aparentemente, também é possível com o inkscape: stackoverflow.com/a/15484727/32453 - rogerdpack


Respostas:


  1. Instalar imagemagick.

  2. Usando um terminal onde o PDF está localizado:

    • Para o documento completo:

      convert -density 150 input.pdf -quality 90 output.png
      
    • Para uma única página:

      convert -density 150 input.pdf[666] -quality 90 output.png
      

Através do qual:

  • PNG, JPG ou (virtualmente) qualquer outro formato de imagem pode ser escolhido.

  • -density xxx irá definir o DPI para xxx (comum são 150 e 300).

  • -quality xxx irá definir a compressão para xxx para formatos de arquivo PNG, JPG e MIFF (100 significa sem compactação).

  • [666] irá converter apenas a 667ª página para PNG (numeração baseada em zero, [0] é a primeira página).

  • Todas as outras opções (como corte, escala de cinza, etc.) podem ser visualizadas no site da Web. Imagem Mágica.


235
2018-06-23 10:25



A resposta é como funciona, mas a resolução é muito fraca. Portanto, atualmente não é uma resposta útil. Talvez se converter tiver alguns parâmetros que podem ser especificados isso pode mudar. - Elijah Lynn
Esta resposta é muito mais alta qualidade askubuntu.com/a/50180/11929 - Elijah Lynn
Você pode alterar a densidade adicionando o -density 300 parâmetro - OHLÁLÁ
A imagem em sua resposta está quebrada. Talvez você deva atualizá-lo. - Petr R.
Então, alguém pode confirmar que especificar a densidade a torna "tão boa" quanto as outras respostas aqui, ou não? Também como uma nota para os seguidores, o ImageMagick chama para "ghostscript" para realmente converter de pdf para png ex: gs -q NOPROMPT ...-sDEVICE=pngalpha -r150x150 -sOutputFile=/var/tmp/Yf%d -f/var/tmp/L -f/var/tmp/Fic1 e se você conseguir convert: no images defined output.png isso significa que você não tem o ghostscript instalado ... - rogerdpack


Você pode usar pdftoppm para converter um PDF para um PNG:

pdftoppm input.pdf outputname -png

Isso produzirá cada página no PDF usando o formato outputname-01.pngcom 01 sendo o índice da página.

Convertendo uma única página do PDF

pdftoppm input.pdf outputname -png -f {page} -singlefile

mudança {page} para o número da página. É indexado em 1, então -f 1 seria a primeira página.

Especificando a resolução da imagem convertida

A resolução padrão para esse comando é de 150 DPI. O aumento resultará em um tamanho de arquivo maior e em mais detalhes.

Para aumentar a resolução do PDF convertido, adicione as opções -rx {resolution} e -ry {resolution}. Por exemplo:

pdftoppm input.pdf outputname -png -rx 300 -ry 300

273
2018-06-23 11:07



Muito obrigado. Muito melhor qualidade do que com imagemagick ou graphicsmagick! - dAnjou
O pdftoppm é muito mais rápido que o convertido - zuo
Não posso acreditar como foi fácil! E o pacote já está instalado por padrão! Amei. OBRIGADO! - Rosamunda
Isso é muito melhor que o imagemagick. Imagemagick realmente mudou as cores de uma maneira inesperada no meu caso! - NoBackingDown
isso é bom !, mas é um pouco mais fácil de escrever -r 300 em vez de especificar as resoluções x e y de forma independente quando você deseja defini-las para o mesmo valor. - mlc


O IIRC GIMP é capaz de usar PDFs, ou seja, convertê-los em imagens. Então, se você quiser editar as imagens imediatamente - o GIMP é seu amigo.


17
2018-06-23 10:29





A resposta atualmente aceita faz o trabalho, mas resulta em uma saída que é maior em tamanho e sofre de perda de qualidade.

O método na resposta dada Aqui resulta em uma saída que é comparável em tamanho à entrada e não sofre perda de qualidade.

TLDR - Usar pdfimages : pdfimages -j input.pdf output 

Citando a resposta vinculada:

Não está claro o que você quer dizer com "perda de qualidade". Isso pode significar muito   de coisas diferentes. Você poderia postar algumas amostras para ilustrar?   Talvez corte a mesma seção fora da má qualidade e boa qualidade   versões (como um PNG para evitar mais perda de qualidade).

Talvez você precise usar -density para fazer a conversão em um maior   dpi:

convert -density 300 file.pdf page_%04d.jpg

(Você pode preceder -units PixelsPerInch ou -units PixelsPerCentimeter se necessário. Minha cópia padrão para ppi.)

Atualizar:  Como você apontou, gscan2pdf (o jeito que você está usando) é apenas um invólucro para pdfimages (por poppler). pdfimages   não faz a mesma coisa que convert faz quando dado um PDF como   entrada.

convert pega o PDF, renderiza em alguma resolução e usa o   bitmap resultante como a imagem de origem.

pdfimages olha através do PDF para imagens bitmap incorporadas e   exporta cada um para um arquivo. Ele simplesmente ignora qualquer texto ou vetor   comandos de desenho no PDF.

Como resultado, se o que você tem é um PDF que é apenas um invólucro em torno de um   série de bitmaps, pdfimages fará um trabalho muito melhor de extrair   eles, porque você recebe os dados brutos em seu tamanho original. Você   provavelmente também quer usar o -j opção para pdfimagesporque um   PDF pode conter dados JPEG em bruto. Por padrão, pdfimages converte   tudo para o formato PNM, e converter JPEG> PPM> JPEG é uma perda   processo.

Então tente

pdfimages -j file.pdf page

Você pode ou não precisar seguir isso com um convert para .jpg degrau   (dependendo de qual formato de bitmap o PDF estava usando).

Eu tentei este comando em um PDF que eu fiz de uma seqüência   de imagens JPEG. Os JPEGs extraídos eram byte-by-byte idênticos aos   as imagens de origem. Você não pode obter uma qualidade superior a isso.


9
2018-03-12 13:14





Se os seus pdfs forem digitalizados, as imagens já estão armazenadas como parte do pdf. você simplesmente precisará extraí-los com pdfimages:

pdfimages my-file.pdf prefix 

6
2017-09-18 10:14



Esta é a solução perfeita para pdfs digitalizados, pois com isso você pode, com um comando, extrair os jpgs originais e sem outras recompressões. - Jose Gómez


Para obter uma única página do gm convert, adicione [N] (com N o número da página a partir de 0) ao nome do PDF, ou seja, gm convert foo.pdf[11] out.png para obter a 12ª página do PDF.

Para pdftoppm usar -f N -singlefile, onde N é o número da página começando em 1, ou seja, pdftoppm -f 12 -singlefile foo.pdf out para o mesmo resultado. Parece sempre adicionar ".png" ao nome do arquivo de saída e não há como parar isso.


3
2018-04-02 21:44





Você pode usar converter e especificar uma densidade mais alta usando -density opção.

por exemplo. convert -d 300 foo.pdf bar.png


2
2017-07-24 02:23



Você pode explicar mais sobre o que é densidade e o que ela pode fazer? - Ten-Coin
@AgentCool Especifica a densidade horizontal e vertical da imagem (em ppi). - Arjun


Se você quiser converter apenas uma página específica de um PDF em um PNG, poderá pdftk para convert (descrito acima) como isso:

pdftk document.pdf cat 12 output - | convert - document-page-12.png

1
2017-11-06 05:11





Master PDF Editor (ver 2.2) tem esta opção em construção. Abra o arquivo PDF e vá em File> Export to> Images. Ele apresenta um diálogo onde você pode definir diferentes opções para a saída. Extremamente útil. Espero que esta informação ajude.


1
2017-12-28 22:42



Isso é na versão gratuita ou paga? Na minha versão, a opção está desabilitada? Isso significa que eu preciso pagar? Existe uma versão paga? - Joshua Robison


O PDF Mod também permite exportar imagens de todas ou de páginas individuais de arquivos PDF.

  • Abrir arquivo PDF em PDF Mod
  • Selecione a (s) página (s) -
  • Editar> Exportar imagem (s)

0
2017-12-15 11:56