Obtendo imagens N jpeg do N-Pages PDF

5

Eu tenho um PDF composto por N páginas. Eu quero converter este PDF em N imagens jpeg (por linha de comando, sem Php, Java ou outras linguagens de programação).

Estou tentando fazer isso com o GHOSTSCRIPT, mas a saída que o GS obtém para mim nunca é como a saída que estou procurando.

Exemplo:

gs \
  -sDEVICE=jpeg \
  -dNOCACHE \
  -dDEVICEHEIGHTPOINTS=72 -dDEVICEWIDTHPOINTS=72 \
  -r300 \
  -g800x600 \
  -dFIXEDMEDIA \
  -dPDFFitPage \
  -sOutputFile=output/%d.jpg \
   mypdf.pdf 

produza imagens N jpeg com resolução de 800x600, mas parece que a página do PDF está recortada e não é adequada.

Como posso obter imagens N jpeg de um PDF N-Pages (a partir da linha de comando)?

    
por alesdario 27.04.2012 / 17:57

2 respostas

3

O alesdario de linha de comando usado faz o seguinte:

  1. Diga ao Ghostscript para usar a dimensão de saída de 800 x 600 pixels (pixels).
  2. Diga ao Ghostscript para usar uma resolução de 300 dpi (pontos por polegada).
  3. Diga ao Ghostscript para usar uma dimensão de saída de 72 pontos de dispositivo.

Todos os três não podem trabalhar ao mesmo tempo, porque se dois forem juntos, eles irão contradizer o terceiro.

A 300 dpi, uma tela de 800x600 resultará em uma dimensão física de 2,33 pol x 2 pol (polegadas) - muito menos do que o tamanho original da página do PDF (provável).

Para 'simplesmente obter imagens N jpeg de um PDF N-Pages (da linha de comando)' use este comando:

 gs \
   -sDEVICE=jpeg \
   -o output/%d.jpg \
    mypdf.pdf

Esta é a chamada mais simples, não cortará nada e usará as configurações padrão do Ghostscript para:

  • resolução da imagem: isto é 72 dpi para saída JPEG
  • dimensão das imagens de saída: isso segue o respectivo tamanho de página do PDF (no entanto, o Ghostscript pressupõe PDF para usar 720 dpi).

Para obter imagens N JPEG a partir de um PDF de N páginas em uma resolução predefinida e uma dimensão de imagem predefinida , você mesmo precisa fazer um pouco de computação e definir a -r e -g valores de acordo. Por exemplo, você pode querer 200 dpi para seu JPEG (de tamanhos de página PDF que eram ISO A4 [595x842 pt]): isso significa que você precisa adicionar -r200 -g1652x2338 à linha de comando se quiser evitar o recorte .... faça o Ghostscript reimplantar todas as páginas e os objetos contidos ali para a nova resolução.

    
por 27.04.2012 / 18:57
0

Experimente ImageMagick . O comando que você quer eu acredito é:

$ convert -density 400 my.pdf my.jpeg
    
por 27.04.2012 / 18:05