Personalizando o Cabeçalho de Relatórios Interativos no Oracle APEX com Logo e Texto

Você já tentou personalizar o cabeçalho da exportação de um Relatório Interativo no Oracle APEX e se frustrou por não conseguir colocar um logo na versão PDF?
Pois é. Recentemente passei por essa situação e decidi compartilhar os detalhes aqui. A boa notícia é que sim, é possível incluir um logo e um texto no cabeçalho do relatório — mas há algumas pegadinhas no caminho. Vamos lá!
🚧 Limitações atuais
O Oracle APEX permite que você defina um cabeçalho (e um rodapé) para exportações de Relatórios Interativos através das propriedades Page Header Text
e Page Footer Text
. Essa configuração funciona bem quando o relatório é exportado em HTML. No entanto:
Ao exportar para PDF, somente o texto é exibido.
Imagens (como logos em base64) não aparecem no PDF.
Essa é uma limitação conhecida da funcionalidade atual. Embora seja possível contornar isso exportando primeiro em HTML e depois convertendo para PDF, trata-se de uma etapa adicional que poderia ser evitada se o mecanismo de exportação nativo suportasse imagens diretamente.
Além disso, há uma limitação técnica: o campo p_page_header
, utilizado pela API APEX_DATA_EXPORT.EXPORT
, é do tipo VARCHAR2
, o que significa que todo o conteúdo do cabeçalho — incluindo HTML, imagem em base64 e texto — deve caber em até 4000 caracteres. O mesmo vale para o p_page_footer
.
📌 Está no roadmap!
Essas limitações já foram identificadas pela equipe Oracle APEX e estão relacionadas à ideia FR-2216 no portal oficial:
📄 FR-2216 – Extend PDF printing options for Interactive Reports
Essa ideia prevê, entre outras melhorias:
Suporte a imagens no cabeçalho e rodapé da exportação PDF de Relatórios Interativos;
Aumento da flexibilidade e controle sobre a aparência dos relatórios exportados;
Possível remoção das limitações de tamanho nos parâmetros
p_page_header
ep_page_footer
.
Fica a expectativa de que essas melhorias venham em versões futuras do Oracle APEX.
📦 Estrutura usada
Para personalizar o cabeçalho com o logo e o nome da empresa, criei uma tabela simples chamada COMPANY
com os seguintes campos:
create table company (
id number generated always as identity primary key,
company_name varchar2(255),
logo blob
);
Nessa tabela você pode armazenar o nome da sua empresa e o logo (como BLOB
), que será convertido para base64 no momento da exportação.
🛠️ Passo a passo
Agora vamos aos passos para que o cabeçalho funcione corretamente:
1. Criar application items
Esses itens serão carregados apenas uma vez, quando a aplicação for iniciada.
2. Computation para o nome da empresa
Crie um computation do tipo SQL Query (return single value), com o seguinte código:
select company_name from company
Computation Item:
P0_COMPANY_NAME
🔹 Não esqueça de selecionar o item de aplicação correto em “Computation Item”, senão o valor não será atribuído!
3. Computation para o logo
Crie outro computation com o seguinte código:
select 'data:image/png;base64,' || apex_web_service.blob2clobbase64(logo)
from company
Computation Item:
P0_LOGO
Computation Point: On New Instance
🔹 Assim como no passo anterior, lembre-se de indicar o item de aplicação
P0_LOGO
no campo “Computation Item”.
4. Editar a propriedade do relatório interativo
Acesse a página do seu Relatório Interativo e vá até as propriedades da região. Em:
- Printing > Page Header Text, adicione o seguinte código HTML:
<img src="&P0_LOGO." style="height: 20px;">
<span style="font-weight:bold; font-size:14px;"><center>&P0_COMPANY_NAME.</center></span>
Esse será o cabeçalho exibido quando o relatório for exportado em HTML.
⚠️ Importante sobre o tamanho do cabeçalho
Há uma limitação importante aqui: o campo p_page_header
da API APEX_DATA_EXPORT.EXPORT
é do tipo VARCHAR2
, limitado a 4000 caracteres.
Ou seja, a soma do HTML + a imagem em base64 + o nome da empresa não pode ultrapassar esse limite. Caso contrário, você receberá um erro de exportação.
✨ Resultado
Veja como fica a exportação em HTML com logo e nome da empresa no cabeçalho:
E aqui a exportação em PDF, onde somente o texto aparece:
🔚 Conclusão
Apesar das limitações atuais no mecanismo de exportação nativa para PDF, é possível personalizar bastante a experiência com HTML. A boa notícia é que melhorias estão no radar da equipe Oracle APEX (via FR-2216), o que deve trazer mais flexibilidade para quem precisa gerar relatórios melhores e com identidade visual corporativa.
Subscribe to my newsletter
Read articles from Marcelo Batalha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Marcelo Batalha
Marcelo Batalha
Oracle ACE and Oracle APEX Cloud Developer Certified Professional with over 20 years of experience in Oracle tools and IT governance. Holds a Master's degree in Computer Engineering and has received additional training from the University of California, Irvine, establishing a strong foundation in both theoretical knowledge and practical applications. Also serves as a Postgraduate Professor specialized in Full-Stack Development at University Senac in Brazil. Currently responsible for IT Governance at Brazilian software company Grupo Giap. Active contributor to the Oracle community, and speaker at international conferences such as Kscope24, KScope25, Oracle APEX Tour Latinoamérica and Latin America Oracle Users Groups (LAOUC) Community Tour.