Como Aplicar Marcas d'água Personalizadas a PDFs em Java
IronPDF permite que desenvolvedores Java apliquem marcas d'água personalizadas a documentos PDF usando strings HTML com suporte total a CSS, permitindo controle completo sobre texto, imagens, opacidade, rotação e posicionamento para fins de marca ou segurança.
Início rápido: Aplicar marcas d'água a PDFs em Java
- Adicione IronPDF ao seu projeto Maven ou Gradle e defina sua chave de licença
- Carregue seu documento PDF usando
PdfDocument.fromFile() - Crie uma string HTML para sua marca d'água (texto, imagem ou ambos)
- Aplique a marca-d'água usando
pdf.applyWatermark(watermarkHtml) - Salve o PDF com marca-d'água usando
pdf.saveAs()
:title=QuickStartWatermark.java
//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/quickstart.java
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
pdf.applyWatermark("<h1 style='color:red;'>Confidential</h1>");
pdf.saveAs("watermarked.pdf");
:title=QuickStartWatermark.java
//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/quickstart.java
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
pdf.applyWatermark("<h1 style='color:red;'>Confidential</h1>");
pdf.saveAs("watermarked.pdf");
A marca d'água protege documentos PDF e comunica propriedade ou status do documento. Casos de uso comuns incluem marcar rascunhos como "Confidencial", incorporar um logotipo da empresa em cada página, ou indicar que um documento está pendente de aprovação. IronPDF adota uma abordagem HTML e CSS, o que significa que qualquer estilo que você pode expressar em um navegador (fontes personalizadas, opacidade, rotação, posicionamento absoluto) funciona idêntico em uma marca d'água.
Este guia cobre marcas-d'água text, marcas-d'água image, controles de opacidade e posição, e carimbos avançados com TextStamper e ImageStamper. Para técnicas relacionadas de manipulação de PDF, veja o guia sobre criando PDFs de HTML em Java ou a visão geral de adicionando fundos e frentes.
Como aplicar marcas d'água em Java
- Baixe a biblioteca Java para aplicar marcas d'água a PDFs.
- Gere um novo PDF ou carregue um existente.
- Configure a string HTML ou a imagem a ser usada como marca d'água.
- Aplique a marca d'água utilizando o método apropriado.
- Ajuste os parâmetros de opacidade, rotação e localização conforme necessário.
Como faço para adicionar uma marca d'água de texto a um PDF?
Use o método applyWatermark para carimbar texto em cada página de um documento PDF. O método aceita uma string HTML, assim você pode estilizar a marca d'água com qualquer propriedade CSS: família de fontes, tamanho, cor, espaçamento entre letras ou sombra de texto. O exemplo abaixo marca um documento como "Confidencial" em vermelho, que cobre o cenário de trilha de auditoria e controle de acesso mais comum.
//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/text-watermark.java
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF document from file
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// HTML string defines the watermark appearance via CSS
String watermarkHtml = "<h1 style='color:red;'>Confidential</h1>";
// Apply the watermark to every page
pdf.applyWatermark(watermarkHtml);
// Save the watermarked PDF to a new file
pdf.saveAs("text_watermark.pdf");
}
}
//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/text-watermark.java
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF document from file
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// HTML string defines the watermark appearance via CSS
String watermarkHtml = "<h1 style='color:red;'>Confidential</h1>";
// Apply the watermark to every page
pdf.applyWatermark(watermarkHtml);
// Save the watermarked PDF to a new file
pdf.saveAs("text_watermark.pdf");
}
}
A chamada O arquivo de saída Para técnicas mais profundas de renderização de HTML aplicáveis a marcas d'água, veja o tutorial de conversão de HTML para PDF. As marcas-d'água de imagem funcionam através do mesmo método As propriedades CSS na tag O caminho da imagem deve ser acessível a partir do diretório de trabalho da JVM em tempo de execução. Para implantações de servidor, use caminhos absolutos ou incorpore a imagem como um URI de dados Base64 dentro do atributo IronPDF suporta formatos de imagem PNG, JPEG, GIF, SVG e BMP em marcas d'água. PNG com fundo transparente produz os resultados mais limpos para marcas d'água de logotipo. O arquivo de saída O IronSuite desempenha um papel crucial nas nossas operações. Estas são ferramentas que aumentam a eficiência no negócio, incluindo a criação de plantas baixas e melhoria na gestão de inventário. O método Combinando os três parâmetros opcionais, obtém-se nove opções distintas de posicionamento, uma para cada interseção de alinhamento vertical e horizontal. Para casos de uso que exigem marcas d'água em múltiplas posições na mesma página, ou marcas d'água aplicadas apenas a um intervalo específico de páginas, as classes stamper oferecem controle mais fino. Veja o guia de fundos e frentes para técnicas de composição em camadas. O método Alinhamento vertical ( Alinhamento horizontal ( Combine qualquer valor vertical com qualquer valor horizontal para controle preciso. Para documentos que exigem múltiplos carimbos sobrepostos, como um logotipo no canto superior direito e um aviso de rascunho centralizado diagonalmente, aplique cada carimbo como uma chamada O método A principal vantagem das classes de carimbador sobre O método Para processamento em lote, como estampar centenas de PDFs com marcas d'água exclusivas específicas do cliente, carregue e estampe cada O método Desenvolvedores que trabalham com a biblioteca Apache PDFBox para marca d'água encontrarão a abordagem do IronPDF significativamente mais simples. PDFBox requer a construção manual de fluxos de conteúdo e gerenciamento de recursos, enquanto Este guia cobriu quatro abordagens para colocar marcas d'água em PDFs com IronPDF for Java: marcas d'água de texto simples via Inicie sua avaliação gratuita para testar a marcação em sua aplicação Java. A avaliação inclui acesso completo a todos os recursos de marcação e marca d'água sem limite de tempo na avaliação. Quando estiver pronto para implantar, veja opções de licenciamento para encontrar o nível que se adapta ao seu uso. Pronto para ver o que mais você pode fazer? Confira a página completa do tutorial aqui: Guias de Como Fazer IronPDF for Java Carregue seu PDF com Sim. Passe uma tag Passe um número inteiro de 0 (totalmente transparente) a 100 (totalmente opaco) como o segundo argumento para Sim. Adicione um estilo CSS Passe valores de enum Sim. Use Sim. Chame applyWatermark adiciona a marca-d'água a todas as páginas em uma única operação. Por padrão, a marca d'água é renderizada com opacidade de 50% e é centralizada em cada página. Para ativar todos os recursos da biblioteca, configure sua chave de licença IronPDF antes de qualquer operação de PDF. O HTML passado para applyWatermark aceita qualquer elemento HTML válido, para que você possa incluir , ou tags estilizadas para marcas-d'água em várias linhas.
Qual é a aparência da marca d'água de texto?
text_watermark.pdf mostra a palavra Confidencial em vermelho, centralizada horizontalmente e verticalmente em cada página. A opacidade padrão de 50% mantém o conteúdo do documento legível sob a marca d'água. Para documentos de várias páginas, cada página recebe o mesmo carimbo sem a necessidade de repetição por página.transform: rotate(-45deg) scale(1.5).
Como Posso Adicionar uma Marca d'água de Imagem a um PDF?
applyWatermark envolvendo uma tag na string HTML. Arquivos PNG com fundos transparentes são ideais para marcas d'água de logotipo porque a transparência é preservada quando a imagem é composta na página do PDF. Formatos JPEG, GIF, SVG e BMP também são suportados.//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/image-watermark.java
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF document from file
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Reference the image file path relative to the runtime working directory
String watermarkHtml = "<img src='logo.png' style='width:100px;'/>";
// Apply the image watermark to all pages
pdf.applyWatermark(watermarkHtml);
// Save the result
pdf.saveAs("image_watermark.pdf");
}
}//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/image-watermark.java
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF document from file
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Reference the image file path relative to the runtime working directory
String watermarkHtml = "<img src='logo.png' style='width:100px;'/>";
// Apply the image watermark to all pages
pdf.applyWatermark(watermarkHtml);
// Save the result
pdf.saveAs("image_watermark.pdf");
}
} controlam o tamanho, posição e transparência://:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/image-watermark-advanced.java
// Apply a 150px logo at 50% opacity, rotated 45 degrees counterclockwise
String advancedWatermarkHtml =
"<img src='logo.png' style='width:150px; opacity:0.5; transform:rotate(-45deg);'/>";//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/image-watermark-advanced.java
// Apply a 150px logo at 50% opacity, rotated 45 degrees counterclockwise
String advancedWatermarkHtml =
"<img src='logo.png' style='width:150px; opacity:0.5; transform:rotate(-45deg);'/>";src para evitar problemas de resolução de caminho.Quais formatos de arquivo são suportados para marcas d'água em imagens?
image_watermark.pdf mostra a imagem com largura de 100 pixels, centralizada em cada página com 50% de opacidade padrão. Para extrair imagens de um PDF existente para uso em outra marca d'água, veja o guia sobre extração de imagens de PDFs.
Como Controlo a Opacidade e Alinhamento da Marca d'água?
applyWatermark aceita parâmetros de opacidade e alinhamento após a string HTML. Opacidade é um inteiro de 0 (totalmente transparente) a 100 (totalmente opaco). Valores entre 20 e 40 funcionam bem para a maioria dos documentos, mantendo a marca d'água visível sem obscurecer o texto do corpo. Os enums VerticalAlignment e HorizontalAlignment controlam qual canto ou borda da página a marca-d'água tem como alvo.//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/watermark-opacity-alignment.java
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF document from file
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Define the watermark HTML
String watermarkHtml = "<h1 style='color:blue;'>Confidential</h1>";
// Apply at 30% opacity, anchored to the top-left corner of each page
pdf.applyWatermark(watermarkHtml, 30, VerticalAlignment.TOP, HorizontalAlignment.LEFT);
// Save the result
pdf.saveAs("watermark_opacity_alignment.pdf");
}
}//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/watermark-opacity-alignment.java
import java.io.IOException;
import java.nio.file.Paths;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load an existing PDF document from file
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Define the watermark HTML
String watermarkHtml = "<h1 style='color:blue;'>Confidential</h1>";
// Apply at 30% opacity, anchored to the top-left corner of each page
pdf.applyWatermark(watermarkHtml, 30, VerticalAlignment.TOP, HorizontalAlignment.LEFT);
// Save the result
pdf.saveAs("watermark_opacity_alignment.pdf");
}
}Quais opções de alinhamento estão disponíveis?
applyWatermark suporta as seguintes constantes de alinhamento:VerticalAlignment):
TOP - marca-d'água ancorada na borda superiorMIDDLE - marca-d'água centralizada verticalmenteBOTTOM - marca-d'água ancorada na borda inferiorHorizontalAlignment):
LEFT - marca-d'água ancorada na borda esquerdaCENTER - marca-d'água centralizada horizontalmenteRIGHT - marca-d'água ancorada na borda direitaapplyWatermark(html) sem parâmetros adicionais é equivalente a passar opacidade 50, VerticalAlignment.MIDDLE, HorizontalAlignment.CENTER.applyWatermark separada. Para sobreposições baseadas em anotações, veja o exemplo de anotações.
Como Aplico Marcas d'água Avançadas com TextStamper e ImageStamper?
applyWatermark atende à maioria das necessidades de marca d'água, mas as classes TextStamper e ImageStamper oferecem controle programático quando são necessárias coordenadas de pixel exatas, segmentação de intervalo de páginas ou geração dinâmica de texto. Ambas as classes pertencem ao pacote com.ironsoftware.ironpdf.stamp.TextStamper aceita um valor string e expõe propriedades para fonte, tamanho da fonte, cor da fonte, alinhamento horizontal e vertical, e opacidade. Também suporta rotação como um inteiro (graus). ImageStamper aceita um caminho de arquivo ou array de bytes para a imagem e expõe os mesmos controles de alinhamento e opacidade que TextStamper.applyWatermark é a capacidade de segmentar páginas específicas. Passe uma lista de números de página com índice-zero para o método stamp para aplicar a marca d'água apenas às páginas que precisam dela, por exemplo, estampando apenas a página de capa de um relatório ou a página de aprovação final de um contrato.//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/text-stamper.java
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Arrays;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.TextStamper;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the target PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Configure a TextStamper with custom font, rotation, and opacity
TextStamper stamper = new TextStamper();
stamper.setText("DRAFT");
stamper.setFontSize(72);
stamper.setFontColor("gray");
stamper.setOpacity(40);
stamper.setRotation(45);
stamper.setVerticalAlignment(VerticalAlignment.MIDDLE);
stamper.setHorizontalAlignment(HorizontalAlignment.CENTER);
// Apply the stamp only to pages 0 and 1 (zero-indexed)
pdf.stamp(stamper, Arrays.asList(0, 1));
// Save the stamped PDF
pdf.saveAs("text_stamped.pdf");
}
}//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/text-stamper.java
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Arrays;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.TextStamper;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;
public class Main {
public static void main(String[] args) throws IOException {
// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");
// Load the target PDF document
PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Configure a TextStamper with custom font, rotation, and opacity
TextStamper stamper = new TextStamper();
stamper.setText("DRAFT");
stamper.setFontSize(72);
stamper.setFontColor("gray");
stamper.setOpacity(40);
stamper.setRotation(45);
stamper.setVerticalAlignment(VerticalAlignment.MIDDLE);
stamper.setHorizontalAlignment(HorizontalAlignment.CENTER);
// Apply the stamp only to pages 0 and 1 (zero-indexed)
pdf.stamp(stamper, Arrays.asList(0, 1));
// Save the stamped PDF
pdf.saveAs("text_stamped.pdf");
}
}stamp aceita um List de números de página com índice-zero, oferecendo controle preciso sobre quais páginas recebem a marca d'água. Quando nenhuma lista de páginas é fornecida, o carimbo é aplicado a todas as páginas. Isso torna TextStamper a escolha certa sempre que sua aplicação gera marcas d'água dinamicamente, como inserir um ID de transação único, nome de usuário ou carimbo de data/hora em cada PDF gerado.TextStamper e ImageStamper compartilham uma classe base Stamper. Use a abordagem stamper sempre que sua aplicação gerar marcas d'água dinamicamente, por exemplo, embutindo um ID de transação único ou nome de usuário em cada PDF gerado.PdfDocument em um loop, em seguida, chame saveAs antes da próxima iteração. IronPDF processa cada documento de forma independente, então o uso de memória permanece limitado. O guia de carimbo PDF Java cobre ImageStamper e opções adicionais de carimbo em detalhes, e a documentação IronPDF Java fornece a referência completa da API.Como o TextStamper Difere do applyWatermark?
applyWatermark é otimizado para carimbos rápidos e consistentes em várias páginas a partir de strings HTML. TextStamper e ImageStamper abordam cenários em que applyWatermark não atende: segmentar um subconjunto de páginas, aplicar múltiplos carimbos distintos com diferentes configurações, ou construir parâmetros de marca d'água programaticamente a partir de um banco de dados ou entrada do usuário. Ambas as abordagens produzem saída de qualidade vetorial embutida diretamente no fluxo de conteúdo do PDF, então as marcas d'água sobrevivem a regravações, impressão e leitores PDF que não respeitam camadas de conteúdo opcionais.applyWatermark aceita uma string HTML simples. O guia de marca d'água iText no Baeldung ilustra uma tarefa comparável com iText, que envolve criar objetos PdfStampAnnotation e adicioná-los através de um pipeline PdfCanvas. IronPDF reduz isso a uma única chamada de método.PdfDocument.extractAllText() e verifique a string da marca d'água esperada, ou use a discussão da comunidade Stack Overflow sobre manipulação de PDF Java para padrões comuns de solução de problemas.
Quais São os Próximos Passos para Marcação de Água no PDF em Java?
applyWatermark, marcas d'água de imagem usando tags HTML , controle de opacidade e alinhamento por meio de parâmetros de método, e estampagem programática com TextStamper e ImageStamper para casos de uso avançados.Perguntas frequentes
Como adiciono uma marca d'água de texto a um PDF em Java?
PdfDocument.fromFile(), então chame pdf.applyWatermark() com uma string HTML. IronPDF renderiza qualquer HTML e CSS válidos, assim você pode definir cor, tamanho da fonte e opacidade diretamente no elemento.Posso usar imagens como marcas d'água em Java?
<img> dentro de sua string HTML para applyWatermark(). Arquivos PNG com fundos transparentes produzem os resultados mais claros. Você também pode usar a classe ImageStamper para segmentar intervalos de páginas.Como controlo a opacidade da marca d'água?
applyWatermark(). Valores entre 20 e 40 funcionam bem para a maioria dos documentos sem obscurecer o texto principal.Posso rodar uma marca d'água na diagonal?
transform: rotate(-45deg) ao seu elemento HTML antes de passá-lo para applyWatermark(). IronPDF aplica todas as transformações CSS3 padrão durante a renderização.Qual é a diferença entre applyWatermark e TextStamper?
applyWatermark() é a abordagem mais rápida para aplicar o mesmo carimbo baseado em HTML a cada página. TextStamper oferece controle programático sobre fonte, rotação e uma lista de páginas para segmentar apenas páginas específicas.Como posiciono uma marca d'água em uma localização específica?
VerticalAlignment e HorizontalAlignment como o terceiro e quarto argumentos para applyWatermark(). As posições disponíveis incluem TOP, MIDDLE, BOTTOM combinados com LEFT, CENTER, RIGHT.Posso aplicar diferentes marcas d'água em diferentes páginas?
TextStamper ou ImageStamper e passe uma lista de números de páginas baseados em zero para o método stamp() para segmentar apenas as páginas que requerem uma marca d'água específica.Posso combinar marcas d'água de texto e imagem no mesmo PDF?
applyWatermark() várias vezes ou faça múltiplas chamadas stamp() antes de salvar. Cada chamada adiciona uma nova camada ao fluxo de conteúdo do PDF de forma independente.


