
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:
- Diga ao Ghostscript para usar a dimensão de saída de 800px por 600px (pixels).
- Diga ao Ghostscript para usar uma resolução de 300 dpi (pontos por polegada).
- 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 -r
e -g
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 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