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

Marcelo BatalhaMarcelo Batalha
4 min read

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 e p_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

Crie dois 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

🔹 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.

1
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.