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.
[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!
[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