cal2svg - brincando com shell script e arquivos vetoriais SVG

hra

Este artigo é na verdade uma apresentação de um programinha que fiz que gera calendários em formato SVG. É um shell script bem simples, mas que faz o que promete. E a idéia fica no ar, possivelmente o SVG seja um bom formato para gerar muitas coisas via shell script, pois é fácil de usar e com resultados surpreendentes. Conheça o formato SVG e comece a usar desde já!

[ Hits: 25.135 ]

Por: Hamilton R. Amorim em 31/05/2005 | Blog: http://www.algorista.tk


A idéia



Já faz um tempo que estou querendo desenvolver um programinha que gere calendários personalizáveis. Tentei com Delphi e PHP, mas definitivamente a melhor solução que consegui foi com a simples combinação Bash + awk + cal, ou seja, shell script puro.


Com Delphi eu gerava uma imagem que depois importava no GIMP e melhorava, mas não tinha como mudar fontes e outras coisas. Tinha que programar tudo, era muito chato ficar criando os efeitos no Delphi.

Com PHP eu gerava HTML, cheio de tabelas, mas depois acabava que os editores de texto não importavam o layout corretamente. Enfim, não ficava modificável.

Foi então que (por acidente) percebi que o padrão de desenhos vetoriais SVG é um XML em texto puro - maravilha. Dei uma estudada nos arquivos salvos pelo Sodipodi (e Inkscape) e montei esse script que gera calendários totalmente personalizáveis.


O arquivo SVG gerado pelo Sodipodi dá um pouco de medo no inicio. Parece uma linguagem alienígena, mas olhando mais atentamente fica claro o que realmente importa naquele amontoado de coisas. Com alguns testes logo montei um arquivo bem enxuto, com apenas 3 linhas e menos de 50 bytes, um arquivinho bem didático, só pra testes mesmo:

<svg>
<text x="10mm" y="20mm"> meu texto de teste </text>
</svg>

Fui montando outros testes com mais recursos como alinhamento e fonte, tudo com uma técnica muito simples: gerar a formatação no Sodipodi e ver num editor de textos como foi que ficou o arquivo. Técnica rápida e eficaz.

Existe na Internet vasta informação sobre como gerar SVG, mas não tenho Internet em casa e no trabalho não sobra tempo pra estudar. Então restou improvisar.

O resultado foi fantástico. Percebi que estava perdendo tempo ao tentar gerar material visual em outros formatos. O SVG é perfeito pra esse tipo de coisa. A vantagem de gerar no formato vetorial é que o resultado é livre para ser modificado. Pode mudar fonte, tamanho, aspecto, cor, tudo. Inclusive pode gerar o arquivo num editor de textos, como se fosse um HTML.


Clique para ampliar

O trabalho do script fica por conta de te poupar do tédio de precisar digitar cada número (cada dia do ano) e por na posição adequada.

Esse calendário do screenshot eu fiz em menos de 5 minutos e ainda precisei acertar a posição dos meses.

    Próxima página

Páginas do artigo
   1. A idéia
   2. O shell script
   3. Concluindo, possibilidades
Outros artigos deste autor

Como fazer: Chroot Dosemu (Clipper no Linux)

Onde estão os programadores da era DOS?

Porque tanta gente não usa o Linux? Será que o Linux é ruim mesmo?

Como fazer: chroot SSH (SSH mais seguro)

Copiando programas dos LiveCDs (Kurumin) para seu Debian sem usar a internet

Leitura recomendada

Enviando mensagens de WhatsApp no Linux usando Shell Script e ADB

flock - Gerenciador de lockfiles

Apresentando o Yad - "zenity melhorado"

Kit de scripts para backup (Full + Diferencial + Samba + Rede)

Gerar músicas aleatórias com YAD (Modo Gráfico)

  
Comentários
[1] Comentário enviado por k2 em 31/05/2005 - 08:06h

Belo artigo: objetivo bem escrito e com ferramentas acessíveis e funções comuns para algo diferente.Parabéns!

[2] Comentário enviado por aurium em 13/06/2005 - 21:29h

Meus parabéns Hamilton!

Bem, como você comentou que tem dificuldade para acessar a internet vou deixar aqui umas dicas pra você não perder tempo procurando. ;-)

A Especificação do formato SVG:
http://www.w3.org/TR/SVG11/

Veja também a página sobre SVG na W3C:
http://www.w3c.org/Graphics/SVG

No Croczilla você vai ver outras viajens legais com SVG:
http://www.croczilla.com/svg/

Gostei do seu artigo e linquei nesses sítios onde colaboro com conteúdo:
http://twiki.softwarelivre.org/bin/view/Arte/SVG
http://twiki.im.ufba.br/bin/view/PSL/SVG

Hasta!
Aurium

[3] Comentário enviado por mailws em 21/11/2005 - 04:52h

Não entendi nada

[4] Comentário enviado por angelojhm em 15/05/2007 - 19:07h

show de bola


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts