Extraindo imagens incorporadas de um PDF

165

Antes de começar a usar o Ubuntu, usei o Nitro PDF reader para extrair automaticamente imagens de arquivos PDF. Existe um leitor de PDF para Linux que faça isso?

Eu gostaria de poder extrair imagens mais rápido / mais fácil do que ao tirar um instantâneo.

1kb
fonte
Você consegue se lembrar de como o NitroPDF pode se dar com imagens vetoriais? Pode pdfimagesfazer melhor / pior do que o NitroPDF?
Léo Léopold Hertz,
2
Possível duplicata da ferramenta de linha
funky-future
2
@ funky-future Claramente, as duas perguntas são duplicadas, mas seu alvo duplicado tem apenas duas respostas e uma dessas duas respostas é uma resposta de spam. Portanto, a direção da duplicação deve ser revertida para evitar que essa pergunta seja martelada pelo martelo burro.
karel

Respostas:

197

Usar pdfimages

pdfimages é uma ferramenta de extração de imagem PDF que salva as imagens em um arquivo PDF no formato de arquivo PPM, PBM, JPEG ou JPEG 2000.

É uma parte do poppler-utilspacote, que você precisará instalar.

Uso: pdfimages [options] <PDF-file> <image-root>

Exemplo: O seguinte extrai todas as imagens de um arquivo PDF, salvando-as no formato JPEG.

pdfimages -j in.pdf /tmp/out

Salvará imagens do arquivo PDF in.pdfem arquivos /tmp/out-000.jpg(ou /tmp/out-000.pbm; veja abaixo) /tmp/out-001.jpg, etc.


A página do manual pdfimages explica:

-j:  Normally, all images are written as PBM (for monochrome images) or PPM for
     non-monochrome images) files. With this option,  images in DCT format are
     saved as JPEG files. All non-DCT images are saved in PBM/PPM format as usual.
pl1nk
fonte
8
Seria bom ter uma solução que extraia imagens em seu formato nativo. Recodificar JPEGs não é realmente ideal.
Christian
32
@Christian from man page-all Write JPEG, JPEG2000, JBIG2, and CCITT images in their native format. CMYK files are written as TIFF files. All other images are written as PNG files. This is equivalent to specifying the options -png -tiff -j -jp2 -jbig2 -ccitt.
wil93
2
Observe que o -allswitch é suportado apenas em revisões recentes de poppler-utils. Por exemplo, se você ainda está em 12,04 você não será capaz de aceder a esta opção
Glutanimate
11
Se você não pode usar, -allvá para os formatos PNM. Eles não têm perdas e você pode pós-processar as imagens, por exemplo, para PNG.
Tomasz Gandor
11
@ Christian, use $ pdfimages -list <PDF-file>para verificar o formato original na coluna "enc", para que você não precise recodificar a imagem em outro formato.
Jose Barakat
24

Costumo usar o Inkscape para isso. Carregue a página e exclua todas as outras coisas. A vantagem é que você pode obter imagens vetoriais em SVG e modificá-las conforme desejar.

Gremlin
fonte
Alguns PDFs só podem ser importados adequadamente com a importação interna do Inkscape (a importação de poppler / cairo ou a imagem em pdf não pode analisá-lo adequadamente). Uma vez importado, copiar e colar imagem para um novo arquivo e redimensionar página para seleção graphicdesign.stackexchange.com/a/21638/95041
sdaffa23fdsf
Não há problema para mim, essa foi a melhor solução; observe que você deve escolher uma página de cada vez!
Jimmy Olano
5

Eu tenho um arquivo PDF de coluna dupla com imagens incorporadas criadas com LaTeX, onde as imagens originais foram fornecidas como EPS. Tentei a solução proposta com base em pdfimages, mas infelizmente ela não retornou nenhuma imagem. Tentei usar o Inkscape, mas as imagens SVG geradas estavam distorcidas e também não tive sorte em exportá-las como EPS.

O software que funcionou para nós foi o MasterPdfEditor .

Aqui está o procedimento

  • Abra seu arquivo usando o Master PDF Editor
  • Use a ferramenta de edição (Alt + 1) para selecionar a imagem que você deseja extrair
  • Copie a figura (Ctrl + C)
  • Clique no quadro tracejado ao redor da imagem e confira a barra lateral direita (Object Inspector) e clique em "Geomerty". Lá você pode ver o tamanho da sua seleção
  • Crie um novo arquivo (Ctrl + N). Ele solicitará que você forneça o tamanho da página. Forneça o tamanho exato da sua imagem e crie o novo arquivo
  • Agora é um pouco complicado: cole a imagem (Ctrl + V). A imagem pode não aparecer no novo arquivo. Use as setas para movê-lo até conseguir rastreá-lo.
  • Use as setas para centralizar a imagem na nova página
  • Salvar como PDF

O resultado é de alta qualidade, mas o software não é gratuito. Existe uma versão demo que "permite que você experimente todos os recursos", mas vem com "a adição de uma marca d'água no arquivo de saída". Para ser franco, não notei nenhuma marca d'água no PDF produzido.

Pantelis Sopasakis
fonte
Este é o Ask Ubuntu ... Gostamos de código aberto aqui e sua solução é uma solução comercial de código fechado ... Como isso é melhor do que as respostas já aprovadas? (-1 no meio tempo)
Fabby 14/04
3
@ Fabby Obrigado pelo feedback. Eu não sabia disso. Existe uma regra no askubuntu.com? No entanto, assim que você abre o centro de software Ubuntu , você obtém sugestões para aplicativos não gratuitos.
Pantelis Sopasakis
Não, não existe uma "regra" e foi por isso que não votei para excluir esta resposta, mas existem ferramentas melhores que são gratuitas (como cerveja e discurso grátis), então isso é apenas uma opinião.
Fabby
11
+1. Eu usei a linha de comando do ImageMagick, mas esta é uma solução interessante para quem procura uma GUI.
Rpmcruz
2
Funciona para algumas pessoas, isso é bom o suficiente. Não seja nazista ... Não sei quem somos. Você pode falar apenas por si mesmo. +1 para a resposta
sdaffa23fdsf
4

Você também pode tentar pdfmod. É uma interface gráfica (GUI) que pode extrair imagens e fazer outra manipulação básica de pdf.

Façam
fonte
Hmm, parece um pouco buggy para mim. Inserido um PDF com imagens principalmente violetas e obtendo imagens esverdeadas.
DBX12
2

Se você precisar de uma imagem cortada no formato pdf / eps, extraia uma página com a imagem usando pdfmod(conforme sugerido por Tarefa).

Em seguida, pdfcropvocê pode cortá-lo adequadamente, definindo as margens por tentativa e erro:

pdfcrop --margins "-15 -50 0 -140" extracted_page.pdf
macieksk
fonte
1

Eu uso o pdfimages, que é uma ferramenta de linha de comando e funciona muito bem para mim. É muito fácil de usar e você pode usar a opção --help para aprender mais sobre seu uso. Eu uso o Ubuntu e ele vem pré-instalado. Se seus arquivos PDF são criptografados ou protegidos por senha, existem opções para isso, então essa ferramenta funciona muito bem. Você pode ler mais sobre pdfimages aqui

jetbird13
fonte
4
Leia outras respostas antes de postar as suas. Observe que há outro que cobre isso.
23413 Edwin
Ok, desculpe :) Eu pensei em publicar o meu porque ele tem algumas informações sobre arquivos PDF protegidos por senha e explico que essa ferramenta possui essas opções, além de ter postado um link que é um tutorial sobre esta ferramenta.
jetbird13
Se você obtiver reputação suficiente, poderá comentar sobre as respostas de outras pessoas ou aprová-las.
Edwin
1

Com as imagens pdf, a imagem extraída pode estar em duas ou mais partes. Uma maneira simples de reuni-los novamente sem se preocupar com os formatos extraídos é importar as peças para o LibreOffice Draw, cortar com o diálogo de corte de imagem, posicionar as peças, ajustar o tamanho da página e exportar para o formato que você preferir.

DafyddG
fonte
1

Se você deseja cortar uma imagem de um pdf com um visualizador de pdf, tente o okular. Pode cortar qualquer coisa (textos ou imagens) no formato png ou jpeg. Se você deseja extrair imagens em formato png de um pdf, pode fazê-lo com o mínimo de comando com pdftohtml. Ele converte pdf em html e imagens. Aqui você pode encontrar um exemplo - https://www.youtube.com/watch?v=CG1rf7k3xo8 . Se você deseja extrair muitas imagens de um pdf, sugiro que tente isso.

user203413
fonte
0

Software usado: Xreader OS: Antergos

Passos:

  1. Abrir PDF
  2. Clique com o botão direito na imagem
  3. Selecione Salvar imagem como ..
  4. Nome e extensão do arquivo de entrada.
  5. Salve .
Yash Krishan
fonte