shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] libreoffice odp para jpg ( solução)


From: Jorge Barros de Abreu
Subject: Re: [shell-script] libreoffice odp para jpg ( solução)
Date: Mon, 20 Feb 2012 21:03:30 -0200
User-agent: KMail/1.13.6 (Linux/2.6.37.6; KDE/4.5.5; x86_64; ; )

On Monday 20 February 2012 13:19:55 you wrote:
> Jorge, não sei se entendi legal, mas pelo que entendi, seu script só
> funcionaria se a apresentação tivesse entre 10 e 99 slides.
> Veja só como eu faria:

Oi Júlio

Obrigado por mais uma preciosa pérola:$Nom-$(printf "%0$Mai"d $Num)

Acrescentei uns comentários e engordei um pouco o script

?As varáveis usadas no script são automaticamente canceladas/limpas e os 
recursos de memória são 
automaticamente liberados ou tenho que liberar os recursos explicitamente com o 
comando unset?




##############################
#!/bin/bash
# $1 nome da apresentacao a ser convertida com a extensão pdf explicitada
#obtida a partir o libreoffice impress
NOME=`echo $1 | cut -d '.' -f 1`     #parte do nome antes do ponto
EXTENSAO=`echo $1 | cut -d '.' -f 2` #extensao do nome
if [[ "$EXTENSAO" != "PDF" ]] && [[ "$EXTENSAO" != "pdf" ]]
    then
    echo -e "\nA extensao tem que ser ou pdf ou PDF"
    exit
fi
unset EXTENSAO
convert "$1" "$NOME".jpg
# cut isola os números e wc -L pega o maior tamanho
Mai=$(ls $NOME-[0-9]*.jpg | cut -f2 -d- | cut -f1 -d. | wc -L)
for Arq in $(ls $NOME-[0-9]*.jpg)
{
    #IFS='-.' define dois separadores de campo
    #read Nom Num Ext <<< "$Arq" lê os valores a partir do valor de Arq
    IFS='-.' read Nom Num Ext <<< "$Arq"
    Num1=`echo $Num | wc -L` #guarda o tamanho do numero contido em Arq
    if [[ "$Num1" < "$Mai" ]]      #ver nota abaixo
        then
            mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
    fi
}
##############################

nota: if [[ "$Num1" < "$Mai" ]] renomeia somente se a quantidade de caracteres 
do número armazenado 
em Arq for menor







> 
> convert "$1" $Nome.jpg
> 
> # cut isola os números e wc -L pega o maior tamanho
> Mai=$(ls *-[0-9]*.jpg | cut -f2 -d- | cut -f1 -d. | wc -L)
> 
> for Arq in $(ls *-[0-9]*.jpg)
> {
>     IFS='-.' read Nom Num Ext <<< "$Arq"
>     mv $Arq $Nom-$(printf "%0$Mai"d $Num).jpg
> }
> 
> Dentro do for eu mudei o IFS temporariamente (repare que não tem ponto e
> vírgula entre a atribuição e o cmd read. Por isso esse IFS só vale para o
> read) para não necessitar de um monte de cut. O último parâmetro ($Ext) é
> desnecessário pois todos serão, obrigatoriamente jpg.
> No mv usei o printf para colocar zeros à esquerda. Supondo que $Mai fosse
> 3, e $Num fosse 7, o printf formado seria:
> printf "%03"d 5
> que produziria 005.
> 
> Abcs,
> Julio
> *Já foi lançado "Bombando o
> Shell<http://www.brasport.com.br/index.php?dispatch=products.view&product_i
> d=666> ". *
> *Show **de interfaces gráficas sob Shell!*
> *
> *
> 
> 
> 
> Em 20 de fevereiro de 2012 10:56, Jorge Barros de Abreu <
> 
> address@hidden> escreveu:
> > **
> > 
> > 
> > Olá.
> > 
> > Durante muito tempo e por questões de compatibilidade tentei exportar
> > apresentações odp para o
> > formato jpg. Nativamente o libreoffice/broffice/openoffice faz uma
> > conversão de slide por vez.
> > 
> > Para fazer a conversão da apresentação toda de uma tacada só você deve
> > primeiramente exportar para
> > pdf e a seguir usar o comando convert
> > 
> > convert apresentacao.pdf apresentacao.jpg
> > 
> > Será gerado um jpg para cada slide.
> > 
> > a numeração dos arquivos gerados precisa ser ajustada caso contrário será
> > mostrada na sequência
> > incorreta. O 10 será mostrado ao lado do 100 por exemplo. a numeração do
> > slide 10 deve ser mudada
> > para 010.
> > 
> > Criei um script(tstado no slackware) para fazer a mudança nos nomes de
> > uma só vez:
> > 
> > #!/bin/bash
> > #nome da apresentacao a ser convertida com a extensão PDF/pdf explicitada
> > NOME=`echo $1 | cut -d '.' -f 1` #parte do nome antes do ponto
> > EXTENSAO=`echo $1 | cut -d '.' -f 2` #extensao do nome
> > if [[ "$EXTENSAO" != "PDF" ]] && [[ "$EXTENSAO" != "pdf" ]]
> > then
> > echo -e "\nA extensao tem que ser ou pdf ou PDF"
> > exit
> > fi
> > unset EXTENSAO
> > convert $1 $NOME.jpg
> > MEIO="0"
> > for (( i=0 ; i<10 ; i++ ))
> > do
> > mv $NOME"-"$i".jpg" $NOME"-"$MEIO$i".jpg"
> > done
> > unset NOME MEIO
> > 
> > Até.
> > 
> > --
> > Data Estelar 2455976,000764
> > http://sites.google.com/site/ficmatinf
> > Desejo-lhe Paz, Vida Longa e Prosperidade.
> > São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> ------------------------------------
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem
> prévio aviso.
> --------------------------------------------------------------------- Sair
> da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
> 
> Links do Yahoo! Grupos
> 
-- 
Data Estelar 2455976,425324
http://sites.google.com/site/ficmatinf
Desejo-lhe Paz, Vida Longa e Prosperidade.
São Bem Vindas Mensagens no Formato texto UTF-8 com Acentos.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]