Obtendo imagens N jpeg de PDF de N-Pages

Obtendo imagens N jpeg de PDF de N-Pages

Tenho um PDF composto por N páginas. Quero converter este PDF em imagens N 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 nunca é a que estou procurando.

Exemplo:

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

produz imagens N jpeg com resolução de 800x600, mas parece que a página PDF está cortada e não cabe.

Como posso simplesmente obter imagens N jpeg de um PDF de N páginas (na linha de comando)?

Responder1

A linha de comando alesdario usada faz o seguinte:

  1. Diga ao Ghostscript para usar a dimensão de saída de 800px por 600px (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 funcionar ao mesmo tempo, porque se dois andarem juntos contradirão o terceiro.

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

Para'basta obter imagens N jpeg de um PDF de N páginas (na 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: é 72 dpi para saída JPEG
  • dimensão das imagens de saída: segue o respectivo tamanho da página do PDF (no entanto, o Ghostscript assume que o PDF usa 720dpi).

Para obter N imagens JPEG de um PDF de N páginascom uma resolução predefinida e uma dimensão de imagem predefinida, você mesmo precisará fazer alguns cálculos e definir os valores -re -gde 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 cortes.... Isso tornará o Ghostscriptredimensionamentotodas as páginas e os objetos nelas contidos para a nova resolução.

Responder2

TentarImagemMagick. O comando que você quer, eu acredito, é:

$ convert -density 400 my.pdf my.jpeg

informação relacionada