Converter pdf para jpg mantendo o mesmo nome; redimensionar e criar miniaturas e renomear?

2

Eu tenho muitos arquivos pdf (3308) nos quais devo aplicar quatro etapas:

1) Eu tenho que converter tudo para jpg

Encontrei este pequeno script na Web com o ImageMagick: lote convertendo pdf para jpg

Eu quero fazer isso, mas mantenho meus arquivos com o mesmo nome de antes: foo.pdf = > %código% Também gostaria que todas as imagens fossem salvas em uma pasta em "cenas"

2) Então eu tenho que redimensionar para 612x792

3) Então eu tenho que criar miniaturas em 255x330

4) Finalmente eu tenho que renomeá-los. De fato, eu tenho um arquivo foo.jpg no qual estão seus nomes e novos nomes

Aqui está um exemplo de algumas linhas.
Cada linha corresponde ao arquivo "nome atual" "vírgula" "o novo nome". Existem 3308 linhas, uma por arquivo

current_name,new_name
foo,bar
PS130_1060,55-large

Como você pode ver, as extensões não são exibidas porque os dois arquivos estão em csv format.

Estou completamente perdido, não sei se devo usar 4 scripts ou se é possível em um script. Eu costumo trabalhar em PHP, mas eu queria fazer um pouco de bash para mudar, mas é um pouco quente para mim.

Você pode me ajudar?

    
por Raphaël 07.10.2011 / 11:11

1 resposta

5

Você pode começar assim:

for i in "$@"; do
  dst="${i%pdf}jpg"
  convert "$i" -resize 612x792 "$dst"
  convert "$i" -resize 255x330 "${i%.pdf}_thump.jpg"
done

E chame como

$ bash my_script.sh *.pdf

Para renomear, você pode usar outro script. Não entendo o seu exemplo .csv-file. O que contém 3 linhas para 3 arquivos? Ok, este é o caso.

Você pode renomear o arquivo com a seguinte linha de comando:

$ awk -F, '{ system("echo mv \"" $1 "\" \"" $2 "\"")  }' myrename.csv

O awk executa o comando echo ... para cada linha, $1 é o valor do primeiro campo de uma linha e $2 é o valor do segundo campo. A cota \" é necessária no caso de um nome de arquivo contiver espaços. -F, diz a awk para usar uma vírgula como separador de campos.

Se você testou esse comando, pode remover o echo para renomear os arquivos. Você pode adicionar -n a mv para evitar sobregravações acidentais de arquivos existentes.

    
por 07.10.2011 / 11:22