Script para gerar relatório

Se você costuma escrever relatórios frequentemente, mas que são muito parecidos entre si, os scripts desse repositório podem te ajudar. O “auto report“, disponível no link do GitHub, possui um script em bash que cria um arquivo HTML (cujo estilo é definido em um arquivo CSS), que pode ser convertido para PDF. É uma ideia para quem quer trabalhar com marcação e estilo usando HTML e CSS (em vez de ter que aprender LaTeX).

É comum as pessoas usarem programas de interface gráfica para edição de texto, conhecida como WYSIWYG (“what you see is what you get”). Uma das desvantagens desse método é a necessidade de executar mecanicamente uma mesma ação várias vezes. Por exemplo: pegar um arquivo DOC usado anteriormente, apagar os gráficos, tabelas e textos que não serão mais usados e colocar as novas imagens, uma a uma, editando legendas, etc. Além do tempo gasto, é alta a chance de errar alguma parte.

A ideia por trás desse script está baseada em situações que somente são geradas novas figuras e tabelas, com a eventual atualização de um texto. Deve ser executado um script em bash (relatorio.sh) para montar o corpo de um arquivo HTML (relatorio.html), cujo arquivo de estilo deve estar na mesma pasta (style.css). Como argumento, o script deve receber o nome da empresa, por exemplo:

Dentre as tags HTML impressas, estão as específicas para incluir as tabelas e as figuras. É feito um loop para buscar os arquivos com os valores e os de imagens. A estrutura contém a pasta “output”, cujas subpastas estão relacionadas aos produtos da empresa – no exemplo, só tem 1 produto. Para cada produto, existem os arquivos de imagens (PNG) e os de valores para as tabelas (TXT).

Todo o texto explicativo do relatório deve ser incluído diretamente no código bash. Um melhoramento para o script seria o de deixar um script só para texto corrido, a ser consultado pelo script para distribuir o conteúdo conforme algumas marcas no arquivo de edição com texto puro. Desse modo, evita-se trabalhar diretamente no shell script.

Caso queira usar a conversão para PDF automática, é preciso instalar o pacote wkhtmltopdf, o que pode ser feito através do repositório.