Uso de marcas d'água no FastReport VCL

2026-04-21

Nas versões recentes do FastReport VCL, foi adicionada a funcionalidade para adicionar marcas d'água. Uma marca d'água é uma marca incorporada em um documento eletrônico, imagem, vídeo, áudio ou outro conteúdo digital. Seu objetivo é confirmar a autoria, proteger contra cópia e rastrear a distribuição do arquivo.

Neste artigo, abordaremos detalhadamente a criação e o uso de marcas d'água em relatórios do FastReport VCL. Um exemplo de uso de marcas d'água está disponível no Demo fornecido com o FastReport VCL.

 


 

Criação e edição

A criação e edição de marcas d'água em um relatório estão disponíveis tanto no Designer de relatórios quanto na visualização prévia do relatório. A edição é feita por meio de um editor apropriado. Para abrir o editor no menu do Designer de relatórios, clique em “Relatório → Watermarks...”. Para editar marcas d'água na visualização prévia do relatório, um botão correspondente está disponível na barra de ferramentas. O editor de marcas d'água tem a seguinte aparência:

Janela do editor de marcas d'água

Na parte superior da janela, há uma barra de ferramentas com a qual você pode criar uma nova marca d'água, excluir uma existente e alterar seu nome. Você também pode mover a marca d'água para baixo ou para cima na lista. O conjunto de marcas d'água pode ser carregado de um arquivo ou salvo em um arquivo para uso posterior em outros relatórios. Os últimos dois botões permitem sair do editor de marcas d'água sem salvar ou com salvamento das alterações.

À direita, está a lista de marcas d'água existentes no relatório. Para facilitar o uso, você pode atribuir nomes personalizados a elas.

A marca d'água pode ser definida tanto por meio de texto quanto por meio de imagem. É permitido usar ambos simultaneamente. Na figura acima, o editor está na aba de configuração de texto. É possível definir o texto exibido na marca d'água, sua cor, fonte, rotação e transparência. Também é possível definir a posição da marca d'água — antes ou depois do relatório principal. O texto usado como marca d'água é automaticamente centralizado na página e alinhado ao centro — isso não pode ser alterado.

Para selecionar a imagem usada como marca d'água, você precisa ir até a aba “Objeto Figura”.

Edição da imagem da marca d'água

 


 

Principais botões e suas funções

Botão “Carregar” — abre um diálogo para carregar imagem de um arquivo (formatos suportados: wmf, emf, gif, tiff, svg, png, ico, bmp, jpg).

Botão “Limpar” — remove a imagem carregada. Com as caixas de seleção, você pode ajustar a posição e o tamanho da imagem selecionada.

Caixa de seleção “Centralizar” — faz com que a imagem seja posicionada no centro da página. Se desmarcada, a imagem será posicionada no canto superior esquerdo.

Caixa de seleção “Esticar” — a imagem da marca d'água será esticada para preencher toda a página. Caso contrário, o tamanho original da imagem será usado.

Caixa de seleção “Manter proporções” — ao esticar a imagem, faz com que ela mantenha suas proporções para evitar distorções.

Menu “Posição” — permite definir a posição da imagem: em segundo plano (no fundo) ou em primeiro plano.

Com o campo “Orientação”, você pode definir o ângulo de rotação da imagem.

Com as caixas de seleção “Espelhamento horizontal” e “Espelhamento vertical”, você pode espelhar a imagem da marca d'água no eixo horizontal ou vertical.

Com o controle deslizante “Transparência”, você pode ajustar a transparência da imagem. À esquerda, 0% de transparência; à direita, 100% de transparência da imagem selecionada.

Janela do editor de marcas d'água com “Regras de renderização”

O grupo de botões de opção “Regras de renderização” permite vincular a marca d'água atualmente editada às páginas do relatório. As seguintes opções podem ser definidas para as regras de renderização:

  • “Todas as páginas” — neste caso, a marca d'água será exibida em todas as páginas do relatório.
  • “Nome das páginas do Designer” — pode ser definido se o relatório no modo Designer contiver várias páginas. A seleção de uma ou outra página é ativada.
  • “Índice das páginas na pré-visualização” — você pode definir números de página no relatório gerado, incluindo intervalos de páginas.
  • “Flags das páginas na pré-visualização” — você pode definir a posição da marca d'água dependendo do tipo de página do relatório final — primeira ou última, par ou ímpar.

No canto superior direito, há uma pré-visualização da marca d'água e, abaixo dela, um conjunto de caixas de seleção com as quais você pode definir a visibilidade da marca d'água na pré-visualização, na exportação e na impressão.

 


 

Trabalhando com marcas d'água via código

Na prática, as marcas d'água representam uma coleção TfrxWatermarks de objetos do tipo TfrxWatermark. O relatório possui 2 dessas coleções:

  • TfrxReport.Watermarks — esta coleção contém as marcas d'água definidas pelo usuário no modelo do relatório.
  • TfrxReport.PreviewPages.Watermarks — esta coleção contém as marcas d'água do relatório preparado. Está vazia se o relatório ainda não foi executado ou se um relatório já preparado não foi carregado.

Na maioria dos casos, essas coleções coincidirão, mas deve-se considerar o caso em que as marcas d'água são construídas ou removidas no script. Além disso, no caso de construção de um relatório composto, TfrxReport.PreviewPages.Watermarks conterá as marcas d'água de todos os relatórios que compõem o composto.

Portanto, se o relatório ainda não foi executado, use TfrxReport.Watermarks. Se for necessário alterar um relatório já construído, use TfrxReport.PreviewPages.Watermarks. O acesso aos objetos desta coleção pode ser feito no código Delphi usando uma construção como:

frxReport1.Watermarks.Items[1].TextSettings.Text := 'Random text';

No script do relatório, apenas a coleção que está em TfrxReport.PreviewPages.Watermarks está disponível. Esta coleção é copiada para lá no início da execução do método PrepareReport(). Pode ser usada no script do relatório assim:

PreviewPages.Watermarks.Items[1].TextSettings.Text := 'Random text';

Uma nova marca d'água pode ser adicionada com o seguinte código, tanto em Delphi quanto no script:

NewWatermark := Watermarks.Add 

No script do relatório, mesmo que seja composto, apenas as marcas d'água que estão no relatório atual sendo processado estão disponíveis.

As demais propriedades e métodos da classe TfrxWatermarks coincidem com as mesmas propriedades do objeto Delphi TCollection. Além disso, a classe TfrxWatermarks possui os métodos LoadFromFile, SaveToFile, LoadFromStream e SaveToStream, que permitem ler e gravar a si mesma em um arquivo e em um fluxo, respectivamente.

A classe TfrxWatermark armazena os dados para exibição da marca d'água e possui as seguintes propriedades, que podem ser editadas por meio do formulário de edição de marcas d'água:

Propriedade Descrição
PagesSetupMode Define em quais páginas a marca d'água será exibida. Valores possíveis: psmAll, psmDesignPagesName, psmPreviewPagesIndex, psmPreviewPagesFlags
PageName Nome da página (no Designer) na qual a marca d'água será exibida, se PagesSetupMode = psmDesignPagesName
PagesIndex String com os índices das páginas do relatório final nas quais a marca d'água será exibida. Usado se PagesSetupMode = psmPreviewPagesIndex
PagesFlags Tipos de páginas nas quais a marca d'água será exibida, se PagesSetupMode = psmPreviewPagesFlags. Valores possíveis: pfFirstPage, pfLastPage, pfOddPages, pfEvenPages
VisibilityTypes Define a visibilidade da marca d'água, dependendo de onde o relatório é exportado. Pode conter uma combinação dos seguintes valores: vsPreview, vsExport, vsPrint
PictureSettings Propriedades da imagem usada como marca d'água. Descritas abaixo
TextSettings Propriedades do texto usado como marca d'água. Descritas abaixo


Propriedades do texto usado como marca d'água: TextSettings

Propriedade Descrição
Text Contém o texto exibido
Font Fonte usada
Rotation Ângulo de rotação em graus
Position Posição da marca d'água — antes ou depois dos dados impressos
Transparency Define a transparência da marca d'água. O valor pode ser de 0 (opaco) a 100 (transparente)


Propriedades da imagem usada como marca d'água: PictureSettings

Propriedade Descrição
Picture Contém a imagem exibida
Center Se True, a imagem é posicionada no centro da página; caso contrário, no canto superior esquerdo
Stretched Se definido, a imagem é esticada para o tamanho da página; caso contrário, o tamanho original da imagem é usado
KeepAspectRatio Se definido, o esticamento da imagem ocorre mantendo as proporções da imagem
Position Posição da marca d'água — antes ou depois dos dados impressos
Transparency Define a transparência da marca d'água. O valor pode ser de 0 (opaco) a 100 (transparente)

Como podemos ver, programaticamente, via código, estão disponíveis as mesmas propriedades que no diálogo de configuração da marca d'água. Observe que a classe armazena várias propriedades que definem as páginas nas quais a marca d'água será exibida. No entanto, apenas a propriedade apontada por PagesSetupMode será usada.

Ressaltamos novamente que PictureSettings e TextSettings são propriedades diferentes do objeto Watermark! Embora sejam muito semelhantes, alterar qualquer parâmetro na propriedade PictureSettings não afetará a marca d'água de texto, e vice-versa, alterar TextSettings não levará à alteração dos parâmetros da imagem da marca d'água.

 


 

Exemplo de código para construção de marcas d'água em scripts de relatórios

Para ilustrar, vamos pegar o relatório 3.fr3 do Demo Center do FastReport — ele tem muitas páginas, e em cada página colocaremos uma marca d'água de texto contendo o número da página. Para a band Band1 (TfrxPageFooter), criaremos um manipulador OnBeforePrint e colocaremos o seguinte código:

procedure Band1OnBeforePrint(Sender: TfrxComponent);
var W: TfrxWatermark;
 P:string; 
begin
 P := IntToStr(<Page>);
 W:= PreviewPages.Watermarks.Add;
 W.Name := 'W' + P;
 W.PagesIndex := P;
 W.PagesSetupMode := psmPreviewPagesIndex;
 W.TextSettings.Text := 'Page_' + P; 
 W.VisibilityTypes := vsPreview + vsPrint + vsExport;
 W.TextSettings.Rotation := 45;
 W.TextSettings.Font.Size := 72;
 W.TextSettings.Font.Style := fsBold; 
 W.TextSettings.Position := wpFront;
 W.TextSettings.Font.Name := 'Times New Roman'; 
 W.TextSettings.Transparency := 70; 
end;
begin 
end.

Neste código, ao imprimir o rodapé de cada página, uma marca d'água é criada. Usando a propriedade PagesSetupMode, a marca d'água é definida para ser exibida em uma página específica do relatório final; o número da página é definido usando a propriedade PagesIndex e, em seguida, usando a propriedade TextSettings, as demais propriedades da marca d'água são configuradas no código.

O resultado deve ser um relatório assim:

Relatório final gerado por código com marcas d'água de números de página

Este script pode ser usado em outros relatórios. O manipulador Band1OnBeforePrint deve ser atribuído a um elemento que seja impresso uma única vez em cada página, por exemplo, TfrxPageHeader ou TfrxPageFooter.

Métodos semelhantes podem ser usados para construir marcas d'água gráficas. Por exemplo, como uma imagem SVG é essencialmente texto, você pode gerar uma imagem para cada página no script do relatório ou carregar imagens para a marca d'água dependendo do conteúdo da página.

Ao usar marcas d'água, lembre-se de que elas podem não ser visíveis devido à coincidência com a cor de fundo. Por exemplo, uma marca d'água cinza sobre fundo cinza.

 


 

Considerações adicionais

Ao usar marcas d'água na exportação, lembre-se de que nem todos os formatos de exportação suportam marcas d'água. Algumas exportações têm suporte parcial a marcas d'água. Suporte completo está disponível apenas para exportações em formatos gráficos: PDF e HTML5. A exportação para documento Microsoft Word tem apenas suporte parcial a marcas d'água — isso é uma característica do próprio Microsoft Word.

Ao exportar para PDF, para obter marcas d'água semitransparentes, não se esqueça de marcar a caixa de seleção “Transparência” no diálogo de exportação.

 


 

Conclusão

O artigo abordou detalhadamente a funcionalidade de adição de marcas d'água no FastReport VCL — tanto por meio da interface visual quanto programaticamente, com código Delphi e em scripts de relatórios. Foram descritas as capacidades do editor de marcas d'água: configuração de marcas textuais e gráficas, ajuste de transparência, rotação, posicionamento e visibilidade, bem como regras de renderização — incluindo vinculação a páginas específicas (primeira/última, par/ímpar, por intervalo de números etc.). Um exemplo prático de código foi fornecido para a criação automática de marcas d'água textuais com números de página — que pode ser adaptado para outros relatórios.

Essas ferramentas permitem proteger flexivelmente o conteúdo e marcar relatórios de acordo com os requisitos de negócio. É importante considerar as limitações: nem todos os formatos de exportação suportam marcas d'água completamente. Suporte completo está disponível para PDF e HTML5, enquanto a exportação para Microsoft Word oferece apenas compatibilidade parcial.

VCL FastReport PDF Designer Preview Delphi Word HTML
13 de outubro de 2025

Novas funcionalidades de exportação de imagens para o Microsoft Word no FastReport .NET

Na versão mais recente do FastReport .NET, adicionamos novos recursos de exportação de imagens. Agora você pode ajustar de forma independente o equilíbrio entre a qualidade e o tamanho do documento final.
30 de maio de 2025

Abrimos arquivos com a extensão FP3 usando o FastReport Viewer

O FastReport Viewer é a solução ideal para trabalhar com arquivos FP3, é permite abrir, visualizar, imprimir e exportar relatórios com facilidade.
24 de abril de 2025

Como Abrir e Converter um Arquivo FP3 Usando o FastConverter .FP3

Estamos falando sobre o formato .FP3, que é usado para relatórios prontos em aplicações empresariais, e a capacidade de converter esses arquivos para vários formatos usando o FastConverter.

© 1998-2026 Fast Reports Inc.