Pergunta

Tenho um aplicativo multiplataforma (Python) que precisa gerar uma visualização JPEG da primeira página de um PDF.

No Mac estou gerando goles.Existe algo igualmente simples que eu possa fazer no Windows?

Foi útil?

Solução

De qualquer forma, o ImageMagick delega a conversão PDF->bitmap para o GhostScript, então aqui está um comando que você pode usar (é baseado no comando real listado pelo ps:alpha delegado no ImageMagick, apenas ajustado para usar JPEG como saída):

gs -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT \
-dMaxBitmap=500000000 -dLastPage=1 -dAlignToPixels=0 -dGridFitTT=0 \
-sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72x72 \
-sOutputFile=$OUTPUT -f$INPUT

onde $OUTPUT e $INPUT são os nomes dos arquivos de saída e entrada.Ajusta a 72x72 para qualquer resolução que você precisar.(Obviamente, retire as barras invertidas se estiver escrevendo o comando inteiro em uma linha.)

Isso é bom por dois motivos:

  1. Você não precisa mais ter o ImageMagick instalado.Não que eu tenha algo contra o ImageMagick (adoro demais), mas acredito em soluções simples.
  2. ImageMagick faz uma conversão em duas etapas.Primeiro PDF->PPM, depois PPM->JPEG.Dessa forma, a conversão é feita em uma etapa.

Outras coisas a considerar:com os arquivos que testei, o PNG é compactado melhor que o JPEG.Se você quiser usar PNG, altere o -sDEVICE=jpeg para -sDEVICE=png16m.

Outras dicas

Você pode usar o utilitário de conversão do ImageMagick para isso, veja alguns exemplos em http://studio.imagemagick.org/pipermail/magick-users/2002-May/002636.html :

Convert taxes.pdf taxes.jpg 

Converterá um arquivo PDF de duas páginas em [2] arquivos jpeg:Taxes.jpg.0, taxes.jpg.1

Também posso converter esses JPEGS em miniaturas da seguinte maneira:

convert -size 120x120 taxes.jpg.0 -geometry 120x120 +profile '*' thumbnail.jpg

Posso até converter o PDF diretamente em uma miniatura JPEG da seguinte maneira:

convert -size 120x120 taxes.pdf -geometry 120x120 +profile '*' thumbnail.jpg

Isso resultará em uma miniatura.jpg.0 e miniatura.jpg.1 para as duas páginas.

É provável que o PC tenha o Acrobat instalado?Acho que o Acrobat instala uma extensão de shell para que as visualizações da primeira página de um documento PDF apareçam na visualização de miniaturas do Windows Explorer.Você mesmo pode obter miniaturas por meio da API COM IExtractImage, que precisará agrupar. VBAccelerator tem um exemplo em C# que você poderia portar para Python.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top