Hermes Reports: engine leve de relatórios baseada em templates JRXML.
Project description
Hermes Reports
Hermes Reports é uma engine leve para renderizar relatórios a partir de templates JRXML do Jasper Studio. A proposta do projeto é servir como uma alternativa programável ao JasperServer, mantendo uma API Python simples e saídas em html, pdf, csv e xlsx.
O namespace público oficial é hermes_reports. O namespace report_engine continua disponível como compatibilidade.
O que o projeto suporta hoje
- templates
JRXMLcom raiz<jasperReport> - bands
title,pageHeader,detail,summary,columnFooter,pageFooterelastPageFooter staticText,textField,image,subreport,jr:table,jr:Code128ejr:QRCodeparameter,variableeprintWhenExpression- expressões Jasper simples com
$F{},$P{}e$V{} - exportação
html,pdf,csv,xlsxe aliasxmlx
Limites atuais do suporte JRXML
- o projeto importa um subconjunto pragmático do JRXML, não o dialeto completo do JasperReports Server
jr:tableé o caminho preferido para coleções aninhadas emdict- layout posicionado do Jasper é convertido para a ordem de leitura do motor interno
- o PDF continua com base em
reportlab - barcode e qrcode dependem de
reportlab, inclusive no HTML
Instalação
uv sync
Ou:
pip install -e .
Uso
from hermes_reports import ReportEngine
dados = {
"titulo": "Relatório de Vendas",
"periodo": "01/01/2026 a 31/01/2026",
"itens": [
{"produto": "Notebook", "quantidade": 10, "valor": 3500},
{"produto": "Mouse", "quantidade": 50, "valor": 80},
],
}
engine = ReportEngine("hermes_reports/templates/vendas.jrxml")
html = engine.render(dados)
pdf = engine.render(dados, output="pdf")
csv_text = engine.render(dados, output="csv")
xlsx_bytes = engine.render(dados, output="xlsx")
Para gravar em arquivo:
engine.render_to_file(dados, "relatorio.html")
engine.render_to_file(dados, "relatorio.pdf")
engine.render_to_file(dados, "relatorio.csv")
engine.render_to_file(dados, "relatorio.xlsx")
Parâmetros externos continuam separados dos dados:
engine.render_to_file(
dados,
"relatorio.pdf",
parameters={
"empresa": "Hermes Reports Brasil",
"responsavel_relatorio": "Operações",
},
)
Compatibilidade:
from report_engine import ReportEngine
CLI
hermes-reports hermes_reports/templates/vendas.jrxml hermes_reports/examples/01_basico_vendas.json -o /tmp/vendas.html
python -m hermes_reports hermes_reports/templates/vendas.jrxml hermes_reports/examples/01_basico_vendas.json -o /tmp/vendas.pdf -f pdf
Com parâmetros:
python -m hermes_reports \
hermes_reports/examples/05_subreport_parametros_variaveis.jrxml \
hermes_reports/examples/05_subreport_parametros_variaveis.json \
--params hermes_reports/examples/05_params.json \
-o /tmp/exemplo05.html
Exemplos
Os exemplos oficiais ficam em hermes_reports/examples:
01: cabeçalho, tabela e total02: formatação de data, número e moeda03: estilos e layout04: bands de página05: subreport, parâmetros e variáveis06: expressões eprintWhenExpression07: imagens, barcode, qrcode e cores
O helper abaixo renderiza os exemplos:
python -m hermes_reports.examples.run_examples --example all --format html
Template oficial
O formato oficial do projeto agora é JRXML. Veja:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hermes_reports-0.2.1.tar.gz.
File metadata
- Download URL: hermes_reports-0.2.1.tar.gz
- Upload date:
- Size: 59.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91301393fd9b2cd4fe9ee9394489b9c047988cd02230047445bd06f466a7a7af
|
|
| MD5 |
65c78a07873637a27abc7fca4356fdb7
|
|
| BLAKE2b-256 |
5d9d5768cc54afbeb53f5d0eca9d9ed9b86cbbe25282be2e42b926c2e6759c75
|
File details
Details for the file hermes_reports-0.2.1-py3-none-any.whl.
File metadata
- Download URL: hermes_reports-0.2.1-py3-none-any.whl
- Upload date:
- Size: 73.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31c318f71f4b300c4c9030cc866dffcb646bf0f7e26fd992df3692d849654bb6
|
|
| MD5 |
eea90803ca8d32c3210436072a5aaad9
|
|
| BLAKE2b-256 |
00f90d4c8a3332d3efaa57ecb72009766e165af1e7cf072c25cde33830628db6
|