HTTP API
A impressão por template suporta o disparo direto da renderização e do download do documento via HTTP API. Tanto para Block de detalhe quanto para Block de tabela, o que ocorre por trás é uma chamada ao Action templatePrint sobre o Resource de negócio atual.
Observações:
<resource_name>é o nome do Resource correspondente à tabela atual.- A resposta retorna um stream binário do arquivo, e não JSON.
- O chamador precisa ter permissão de consulta sobre o Resource e permissão de uso do botão de impressão por template correspondente.
- A chamada exige enviar um JWT baseado no login do usuário no cabeçalho Authorization, do contrário será rejeitada.
Parâmetros do corpo da requisição
Block de tabela
O Block de tabela usa a mesma API e indica o modo de impressão de lista por meio de blockName: "table". O servidor executa um find no Resource e injeta o array resultante no template.
Imprimir registros selecionados ou o resultado da página atual
Útil quando se imprime alguns registros selecionados na tabela ou quando se preserva o contexto da paginação atual. Em geral:
- Defina
queryParams.pageequeryParams.pageSizecom a página e o tamanho atuais da tabela. - Combine as chaves primárias dos registros selecionados em uma condição
filter.id.$in.
Significado da requisição:
blockNameigual atableindica renderização do template a partir de dados de lista.filter.id.$indefine o conjunto de registros que serão impressos.pageepageSizepreservam o contexto de paginação atual, alinhando com o comportamento da UI.appendspode ser usado para incluir campos relacionais conforme necessário.
Imprimir todos os dados que atendem às condições
Útil ao clicar em "Imprimir todos os registros" no Block de tabela. Aqui não se aplica o recorte da paginação atual; o servidor traz todos os registros que atendem ao filtro.
O ponto chave é definir explicitamente queryParams.page e queryParams.pageSize como null.
Significado da requisição:
page: nullepageSize: nulldesativam o limite de paginação.filter: {}indica nenhuma condição extra; se a UI já tem condições de filtro, é possível repassá-las aqui.- O servidor consulta todos os dados que atendem às condições e renderiza o template em lote.
Atenção: o Block de tabela imprime no máximo 300 registros por chamada. Acima desse limite, a API retorna erro
400.
Block de detalhe
O Block de detalhe também usa o Action templatePrint, mas tipicamente envia:
blockName: "details"queryParams.filterByTkpara indicar a chave primária do registro atualqueryParams.appendspara incluir campos relacionais adicionais
O servidor executa um findOne no Resource e injeta o objeto resultante no template.
Resposta
Em caso de sucesso, a API retorna um stream do arquivo, com cabeçalhos típicos:
Observações:
- Quando
convertedToPDFétrue, a extensão do arquivo retornado é.pdf. - Caso contrário, o arquivo retornado mantém o tipo original do template, por exemplo
.docx,.xlsxou.pptx. - O front-end normalmente dispara o download do navegador a partir do
Content-Disposition.

