Aliás, uma das razões pelas quais o ImageMagick é muito mais lento é que ele chama Ghostscript duas vezes. Ele não converte PDF => PNG de uma só vez, mas usa 2 etapas diferentes:
- primeiro usa o Ghostscript para
PDF => PostScript
conversão;
- ele usa o Ghostscript para
PostScript => PNG
conversão.
Você pode aprender sobre as configurações detalhadas "delegados" do ImageMagick (os programas externos que o ImageMagick usa, como o Ghostscript), digitando
convert -list delegate
(No meu sistema, há uma lista de 32 comandos diferentes.) Agora, para ver quais comandos são usados para converter em PNG, use o seguinte:
convert -list delegate | grep -i png
Ok, isso foi para Linux. Se você estiver no Windows, tente o seguinte:
convert -list delegate | findstr /i png
Você descobrirá que o MI produz PNG apenas a partir da entrada PS ou EPS. Então, como o IM obtém (E) PS do seu PDF? Fácil:
convert -list delegate | findstr /i PDF
convert -list delegate | grep -i PDF
Ah! Ele usa o Ghostscript para fazer uma conversão em PDF => PS e, em seguida, usa o Ghostscript novamente para fazer uma conversão em PS => PNG. Funciona, mas não é a maneira mais eficiente se você souber que o Ghostscript pode fazer PDF => PNG de uma só vez. E mais rápido. E com qualidade muito melhor.
Sobre o manuseio de mensagens instantâneas pela conversão de PDF em imagens via delegado Ghostscript, você deve saber duas coisas antes de tudo:
- Por padrão, se você não der um parâmetro extra, o Ghostscript produzirá imagens com uma resolução de 72 dpi. É por isso que às vezes as pessoas aqui sugerem adicionar
-density 600
como um convert
parâmetro que diz ao Ghostscript para usar uma resolução de 600 dpi para a saída da imagem.
- O desvio do IM para chamar o Ghostscript duas vezes para converter primeiro
PDF => PS
e depois PS => PNG
é um verdadeiro erro. Porque você nunca ganha e mantém a qualidade no primeiro passo, mas muitas vezes perde alguns. Razões:
- O PDF pode lidar com transparências, o que o PostScript não pode.
- O PDF pode incorporar fontes TrueType, que o PostScript não pode. etc.pp.
(Conversão na direção oposta PS => PDF
, portanto não é tão crítico ....)
É por isso que sugeri que você converta seus PDFs de uma só vez para PNG (ou JPEG) usando o Ghostscript diretamente. E use a versão mais recente 8.71 (a ser lançada em breve: 9.00) do Ghostscript ...