Como extrair vetores de um arquivo PDF?


51

Eu tenho um arquivo PDF com imagens vetoriais dentro dele. (Fiz o download da Internet, portanto não tenho originais.)

Desejo extrair os vetores para poder sobrepor-los em outras imagens; use-os na mídia impressa ou em um site.

Como extraio os vetores específicos do arquivo PDF?

Existe, talvez, algum software que possa extrair os vetores de um arquivo PDF? (De preferência grátis.)


@slhck: eu quis dizer gráficos vetoriais . Eu usei o Inkscape e funciona como esperado. Você pode colocar seu comentário como resposta, para que eu possa marcá-lo como aceito?
Devdatta Tengshe

Respostas:


49

Você pode usar o Inkscape , que é um aplicativo gratuito de gráficos vetoriais de código aberto e multiplataforma. Isso permitirá que você importe os arquivos PDF e selecione vetores incorporados. Você pode editá-los e processá-los como quiser.

Documentação detalhada está disponível no site do Inkscape.

Note que no Linux ele requer X11. Há também uma versão nativa do Windows.

Como alternativa, você pode experimentar o Adobe Illustrator (software pago).


2
No Linux, isso requer X11 - há também uma versão nativa do Windows (que eu usei muito bem para extrair um desenho vetorial de um PDF).
Mark Leighton Fisher

23

Embora o Inkscape seja uma excelente maneira de fazer isso, para aqueles que não possuem o X11, você também pode extrair páginas individuais de um PDF para o formato SVG usando os poppler-utils na linha de comando. Por exemplo, para extrair apenas a página 30:

$ pdftocairo -f 30 -l 30 -svg  somehugemanual.pdf  myextractedpage.svg

Você pode usar seu editor de vetores favorito (o meu é o Inkscape) para isolar a imagem do texto.

Como alternativa, se você é um usuário de linha de comando hardcore, pode extrair para EPS (postscript encapsulado) e usar sedpara ocultar todo o texto (que acontece entre as linhas BT e ET para pdftocairo). Aqui está como:

$ pdftocairo -f 30 -l 30 -eps  manual.pdf  - | sed '/^BT$/,/^ET$/ d' > myimage.eps

E, se você é realmente louco para evitar o uso do X11, pode até encolher a caixa delimitadora da imagem na linha de comando usando o eps2epscomando do Ghostscript :

$ eps2eps myimage.eps myimage-bb.eps

Eu testei isso e funciona muito bem. No entanto, pessoalmente, acho mais fácil usar o Inkscape.


Marque com +1 sua linha de comando retira todo o texto .. mas você também sabe retirar todas as imagens? I'am procurando uma solução onde apenas o gráfico vetorial é deixado :)
clarkk

Isso funciona para você? cat foo.eps | sed '/^8 dict dup begin$/,/^Q$/ c Q' > nobitmaps.eps
hackerb9

1
mas é possível verificar se o arquivo eps possui um gráfico vetorial? :)
clarkk

1
Suponho que você possa usar o eps2eps do Ghostscript para destilá-lo até a menor caixa delimitadora e ver se está completamente vazio. Mas isso está começando a se tornar uma nova pergunta. Fique à vontade para perguntar e tenho certeza que, se eu não responder, alguém responderá.
hackerb9

1
@ hackerb9 obrigado, agora o eps é legível, mas a imagem está em uma densidade muito baixa e ainda resta algum texto ao seu redor. O pdf está aqui e a imagem está na página 7
rtrtrt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.