HTML para PDF em Java

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF for Java oferece aos desenvolvedores um caminho direto do conteúdo HTML para a saída PDF sem a necessidade de aprender uma API de layout separada. A biblioteca renderiza HTML, CSS e JavaScript da mesma forma que um navegador moderno, portanto, a saída PDF corresponde ao que você vê na tela. Este tutorial cobre a instalação, os três métodos principais de conversão de HTML para PDF e as opções de formatação, incluindo cabeçalhos, rodapés, dimensionamento de página e margens personalizadas.

O tutorial usa IronPDF for Java. Um guia paralelo cobrindo a versão .NET está disponível no tutorial de conversão de HTML para PDF for .NET. IronPDF também está disponível para Python e Node.js.

Início Rápido: Converter HTML para um arquivo PDF

O caminho mais curto para um PDF a partir de uma string HTML são três linhas de código Java:

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/quickstart.java
import com.ironsoftware.ironpdf.*;
// Convert an HTML string directly to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save to disk
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/quickstart.java
import com.ironsoftware.ironpdf.*;
// Convert an HTML string directly to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save to disk
pdf.saveAs("output.pdf");
JAVA

!{--010011000100100101000010010100100100000101010010010110010101111101010011010101000100000101010010010101000101111101010001010010010010010010100000101001100010111110100001001001100010011110100001101001011--}

Índice

Como Adicionar IronPDF a um Projeto Maven em Java?

Adicionar o IronPDF a um projeto Maven requer duas entradas no bloco de dependências do projeto. O primeiro traz a biblioteca IronPDF; a segunda adiciona um provedor de logging SLF4J para que o IronPDF possa escrever mensagens do mecanismo durante a execução.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/maven-dependency.xml
<dependency>
  <groupId>com.ironsoftware</groupId>
  <artifactId>ironpdf</artifactId>
  <version>2024.9.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.5</version>
</dependency>
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/maven-dependency.xml
<dependency>
  <groupId>com.ironsoftware</groupId>
  <artifactId>ironpdf</artifactId>
  <version>2024.9.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>2.0.5</version>
</dependency>
XML

O artefato ironpdf faz referência à versão mais recente do IronPDF for Java e ao changelog . A dependência slf4j-simple fornece um backend de registro básico. You can substitute it with Logback or Log4J as needed, or omit it entirely to suppress log output.

Após adicionar ambas as entradas, execute mvn install a partir da raiz do projeto para baixar os artefatos. Maven resolves the dependency against Maven Central.

PontasVerifique a página do Maven Central para com.ironsoftware:ironpdf para confirmar o número da versão mais recente antes de adicioná-la ao seu pom.xml.

Como Instalar o IronPDF JAR Manualmente em Java?

Projetos que não usam Maven ou outro gerenciador de dependência podem adicionar IronPDF baixando o JAR diretamente e incluindo-o no classpath. Navegue até a página de download do IronPDF for Java e baixe o arquivo fat-JAR.

O fat-JAR agrupa todas as dependências, por isso, nenhuma entrada adicional no classpath é necessária, além do artefato principal. Optionally download an SLF4J implementation JAR to enable logging.

Adicione ambos os arquivos JAR ao classpath do projeto usando o painel de gerenciamento de bibliotecas da sua IDE ou especifique as entradas -classpath ao compilar e executar a partir do terminal.

Como Importar IronPDF para Meus Arquivos de Fonte Java?

O pacote com.ironsoftware.ironpdf contém todos os componentes de conversão e processamento. Coloque a seguinte declaração de importação no topo de cada arquivo Java que chama métodos do IronPDF.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/import-statement.java
// Import all IronPDF components
import com.ironsoftware.ironpdf.*;
JAVA

Uma importação direcionada que nomeia classes específicas também é válida: import com.ironsoftware.ironpdf.PdfDocument;. A importação de caráter geral é conveniente durante a exploração.

Como Definir uma Chave de Licença no IronPDF for Java?

IronPDF for Java é gratuito para uso sem uma chave de licença, mas aplica uma marca d'água em mosaico a todos os documentos PDF gerados ou modificados. Para remover a marca d'água, forneça uma chave de licença válida antes de chamar qualquer método de conversão ou manipulação.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-license-key.java
// Set the license key before any PDF operations
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-license-key.java
// Set the license key before any PDF operations
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

Coloque a chamada setLicenseKey na inicialização do aplicativo, antes que qualquer método PdfDocument seja chamado. Compre uma chave de licença ou comece um teste gratuito para gerar PDFs sem marcas d'água.

IronPDF licensing page showing how to obtain a license key to remove watermarks from generated PDFs

Uma chave de licença válida remove a marca d'água em mosaico dos PDFs gerados. Obtenha uma na página de licenciamento do IronPDF ou solicite um teste gratuito.

Definindo a Localização do Arquivo de Log (Opcional)

Por padrão, o IronPDF grava as mensagens do mecanismo em um arquivo chamado IronPdfEngine.log no diretório raiz do aplicativo. Para alterar o caminho do arquivo de log, chame Settings.setLogPath antes de executar qualquer operação em PDF.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-log-path.java
import java.nio.file.Paths;
// Redirect log output before using IronPDF
Settings.setLogPath(Paths.get("logs/ironpdf-engine.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/set-log-path.java
import java.nio.file.Paths;
// Redirect log output before using IronPDF
Settings.setLogPath(Paths.get("logs/ironpdf-engine.log"));
JAVA

ObserveA chamada setLogPath deve preceder todas as chamadas PdfDocument. Chamando após uma conversão ter iniciado não tem efeito nessa sessão.

Como Converter uma String HTML para PDF em Java?

PdfDocument.renderHtmlAsPdf(String html) converte qualquer marcação HTML válida em um documento PDF. O método aceita uma string HTML bruta e retorna um objeto PdfDocument que pode ser salvo, mesclado ou modificado posteriormente.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-to-pdf.java
// Convert a minimal HTML string to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting document to disk
pdf.saveAs("html-string-output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-to-pdf.java
// Convert a minimal HTML string to a PDF document
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting document to disk
pdf.saveAs("html-string-output.pdf");
JAVA
PDF output from IronPDF renderHtmlAsPdf showing an H1 heading rendered faithfully from an HTML string

IronPDF renderiza a marcação HTML diretamente em um PDF preciso em pixels. A saída mostrada aqui foi gerada pelo exemplo de código acima.

O mecanismo de renderização é baseado no Chromium, portanto, qualquer HTML, CSS ou JavaScript que funcione no Chrome renderizará corretamente no PDF. Isso inclui layouts Flexbox, CSS Grid, fontes web, SVGs e gráficos impulsionados por JavaScript.

Uma versão sobrecarregada do método aceita um segundo argumento para um caminho base: renderHtmlAsPdf(String html, String basePath). Este caminho base é usado para resolver referências relativas a folhas de estilo, imagens e scripts locais.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-with-assets.java
// HTML referencing local stylesheet and image
String html = "<html><head><link rel='stylesheet' href='style.css'></head>"
    + "<body><img src='logo.png'/><h1>Invoice</h1></body></html>";
// Provide the folder containing style.css and logo.png as the base path
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice-output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-string-with-assets.java
// HTML referencing local stylesheet and image
String html = "<html><head><link rel='stylesheet' href='style.css'></head>"
    + "<body><img src='logo.png'/><h1>Invoice</h1></body></html>";
// Provide the folder containing style.css and logo.png as the base path
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice-output.pdf");
JAVA

O caminho base pode apontar para um diretório no sistema de arquivos local ou para uma URL remota. IronPDF busca ativos referenciados daquele local durante a renderização.

IronPDF renderHtmlAsPdf output showing a full-page document with stylesheet applied, CSS styles preserved from the HTML source

Quando um caminho base é fornecido, IronPDF resolve referências locais de CSS e imagem para produzir um PDF completamente estilizado.

PontasPara a resolução de ativos locais funcionar, todos os arquivos referenciados devem ser acessíveis a partir do caminho base. Os caminhos usando barras invertidas funcionam tanto no Windows quanto no Linux.

Para uma análise focada neste método, veja o exemplo de código de string HTML para PDF.

Como Converter uma URL para PDF em Java?

PdfDocument.renderUrlAsPdf(String url) busca a página no URL fornecido e renderiza todo o DOM (incluindo a execução de JavaScript ) antes de salvar a saída como um PDF.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/url-to-pdf.java
// Render a live web page to PDF by URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// Save the rendered document
pdf.saveAs("wikipedia-pdf-article.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/url-to-pdf.java
// Render a live web page to PDF by URL
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
// Save the rendered document
pdf.saveAs("wikipedia-pdf-article.pdf");
JAVA
PDF generated by IronPDF from the Wikipedia PDF article page, showing multi-column layout and navigation elements preserved

IronPDF captura o estado totalmente renderizado de uma página web, incluindo conteúdo dinâmico gerado por JavaScript.

O motor de renderização do Chromium busca folhas de estilo externas, fontes e arquivos JavaScript, de modo que o PDF resultante reflete com precisão o estado visual da página. Este método é bem adequado para geração de relatórios a partir de painéis web, arquivamento de conteúdo web público ou conversão de visualizações de dados que dependem de renderização do lado do cliente.

ImportanteA conversão de URL para PDF requer acesso HTTP/HTTPS de saída do servidor que executa IronPDF. Certifique-se de que as políticas de rede permitam isso antes de implantar em um ambiente de produção.

Veja o exemplo dedicado exemplo de conversão de URL para PDF para opções adicionais, como cabeçalhos de solicitação personalizados e autenticação.

Como Converter um Arquivo HTML para PDF em Java?

PdfDocument.renderHtmlFileAsPdf(String filePath) lê um arquivo HTML do sistema de arquivos local e o converte em PDF. O método resolve automaticamente quaisquer referências a ativos relativas no arquivo HTML contra o diretório do arquivo.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-file-to-pdf.java
// Convert a local HTML file (with a linked CSS file) to PDF
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
// Save the resulting document
pdf.saveAs("invoice-from-file.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-file-to-pdf.java
// Convert a local HTML file (with a linked CSS file) to PDF
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
// Save the resulting document
pdf.saveAs("invoice-from-file.pdf");
JAVA

O método lida corretamente com projetos HTML de múltiplos arquivos. No exemplo acima, se TestInvoice1.html fizer referência a uma folha de estilo no mesmo diretório, o IronPDF aplicará essa folha de estilo durante a renderização. O resultado é um PDF que corresponde à aparição renderizada pelo navegador do arquivo de origem.

PontasUse caminhos de arquivo absolutos ao chamar renderHtmlFileAsPdf de um aplicativo de servidor. Caminhos relativos são resolvidos contra o diretório de trabalho da JVM, que pode diferir da localização do arquivo HTML.

Este método é particularmente útil para fluxos de trabalho de geração de PDF que mantêm modelos HTML em disco: geradores de fatura, modelos de relatório e sistemas de saída de formulários são casos de uso comuns.

Como Definir o Tamanho e Orientação da Página PDF em Java?

O tamanho e a orientação da página são controlados pela classe ChromePdfRenderOptions. Crie uma instância de ChromePdfRenderOptions, configure as propriedades e passe-a como segundo argumento para qualquer chamada de renderHtmlAsPdf.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/page-size-orientation.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Create rendering options for the PDF
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set paper size to A4
options.setPaperSize(PaperSize.A4);
// Set to landscape orientation
options.setPaperOrientation(PaperOrientation.Landscape);
// Apply options to the conversion
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Landscape Report</h1>", options);
pdf.saveAs("landscape-a4-report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/page-size-orientation.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
// Create rendering options for the PDF
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set paper size to A4
options.setPaperSize(PaperSize.A4);
// Set to landscape orientation
options.setPaperOrientation(PaperOrientation.Landscape);
// Apply options to the conversion
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Landscape Report</h1>", options);
pdf.saveAs("landscape-a4-report.pdf");
JAVA

PaperSize inclui opções padrão como A4, Letter, Legal, A3 e A5. PaperOrientation aceita Portrait (padrão) ou Landscape.

Para dimensões não padronizadas, use setCustomPaperSizeInMillimeters(double width, double height) ou setCustomPaperSizeInInches(double width, double height):

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-paper-size.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set a custom 100mm x 150mm page size
options.setCustomPaperSizeInMillimeters(100, 150);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Custom size card</p>", options);
pdf.saveAs("custom-size-card.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-paper-size.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set a custom 100mm x 150mm page size
options.setCustomPaperSizeInMillimeters(100, 150);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Custom size card</p>", options);
pdf.saveAs("custom-size-card.pdf");
JAVA

Consulte o exemplo de tamanho de papel PDF personalizado para obter a lista completa de constantes PaperSize e opções de dimensionamento.

Como Definir Margens Personalizadas em um PDF em Java?

As dimensões das margens também são definidas por meio de ChromePdfRenderOptions. A biblioteca expõe setters separados para margens superior, inferior, esquerda e direita, todos aceitando valores em milímetros.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-margins.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set all four margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<p>Document with custom margins</p>", options);
pdf.saveAs("custom-margins.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/custom-margins.java
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Set all four margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<p>Document with custom margins</p>", options);
pdf.saveAs("custom-margins.pdf");
JAVA

Definir todas as margens para zero remove completamente o espaço em branco, o que é útil para designs em sangramento total, como etiquetas, certificados ou layouts gráficos.

ObserveOs valores de margem do IronPDF estão em milímetros. O valor 0 desativa a margem nessa borda. Observe que as margens do driver da impressora são separadas das margens do IronPDF, então o conteúdo que preenche a página de ponta a ponta ainda pode ser cortado quando impresso.

Para um exemplo de código funcional, visite o exemplo de margens personalizadas.

Como adiciono cabeçalhos e rodapés a um PDF em Java?

O IronPDF suporta dois tipos de cabeçalhos e rodapés: baseados em texto (TextHeaderFooter) e baseados em HTML (HtmlHeaderFooter). Cabeçalhos de texto são rápidos de configurar; Os cabeçalhos HTML suportam estilo completo e imagens.

Adicionando um Cabeçalho e Rodapé de Texto

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/text-header-footer.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
import com.ironsoftware.ironpdf.render.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Configure a text-based header
TextHeaderFooter header = new TextHeaderFooter();
// Use merge fields: {page}, {total-pages}, {date}, {time}, {url}, {html-title}
header.setCenterText("Report Title");
header.setRightText("Page {page} of {total-pages}");
options.setTextHeader(header);
// Configure a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setCenterText("{date}");
options.setTextFooter(footer);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Annual Report</h1><p>Content here.</p>", options);
pdf.saveAs("report-with-headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/text-header-footer.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;
import com.ironsoftware.ironpdf.render.*;
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
// Configure a text-based header
TextHeaderFooter header = new TextHeaderFooter();
// Use merge fields: {page}, {total-pages}, {date}, {time}, {url}, {html-title}
header.setCenterText("Report Title");
header.setRightText("Page {page} of {total-pages}");
options.setTextHeader(header);
// Configure a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setCenterText("{date}");
options.setTextFooter(footer);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Annual Report</h1><p>Content here.</p>", options);
pdf.saveAs("report-with-headers.pdf");
JAVA

Os campos de mesclagem {page}, {total-pages}, {date}, {time}, {url} e {html-title} são substituídos em tempo de renderização por valores específicos do documento.

Adicionando um Cabeçalho HTML

Para cabeçalhos que exigem logotipos, cores da marca ou layouts complexos, use HtmlHeaderFooter:

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-header.java
import com.ironsoftware.ironpdf.headerfooter.*;
HtmlHeaderFooter header = new HtmlHeaderFooter();
header.setHtmlFragment(
    "<div style='background:#003366;color:white;padding:8px;font-family:Arial;'>"
    + "<img src='/images/logo.png' style='height:30px;float:left;'/>"
    + "<span style='line-height:30px;margin-left:10px;'>Company Report</span>"
    + "</div>"
);
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
options.setHtmlHeader(header);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Q3 Results</h1>", options);
pdf.saveAs("report-with-html-header.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/html-header.java
import com.ironsoftware.ironpdf.headerfooter.*;
HtmlHeaderFooter header = new HtmlHeaderFooter();
header.setHtmlFragment(
    "<div style='background:#003366;color:white;padding:8px;font-family:Arial;'>"
    + "<img src='/images/logo.png' style='height:30px;float:left;'/>"
    + "<span style='line-height:30px;margin-left:10px;'>Company Report</span>"
    + "</div>"
);
ChromePdfRenderOptions options = new ChromePdfRenderOptions();
options.setHtmlHeader(header);
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Q3 Results</h1>", options);
pdf.saveAs("report-with-html-header.pdf");
JAVA

PontasFragmentos de cabeçalhos HTML são renderizados em seu próprio contexto de página. Os caminhos de imagens externas devem ser URLs absolutos ou caminhos acessíveis a partir do servidor que executa o IronPDF.

Veja o exemplo de código de cabeçalhos e rodapés para opções adicionais de campos de mesclagem e comportamento em várias páginas.

Como aplico uma marca d'água a um PDF em Java?

O IronPDF aplica marcas d'água carimbando conteúdo HTML sobre as páginas PDF existentes. Esta abordagem oferece controle total sobre o posicionamento, transparência e estilo.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/watermark.java
import com.ironsoftware.ironpdf.*;
// Create the base PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1>");
// Apply a diagonal text watermark using HTML stamping
String watermarkHtml =
    "<div style='position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg);"
    + "font-size:80px;color:rgba(200,0,0,0.15);font-family:Arial;font-weight:bold;"
    + "white-space:nowrap;pointer-events:none;'>CONFIDENTIAL</div>";
pdf.applyStamp(watermarkHtml);
pdf.saveAs("watermarked-report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/watermark.java
import com.ironsoftware.ironpdf.*;
// Create the base PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1>");
// Apply a diagonal text watermark using HTML stamping
String watermarkHtml =
    "<div style='position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg);"
    + "font-size:80px;color:rgba(200,0,0,0.15);font-family:Arial;font-weight:bold;"
    + "white-space:nowrap;pointer-events:none;'>CONFIDENTIAL</div>";
pdf.applyStamp(watermarkHtml);
pdf.saveAs("watermarked-report.pdf");
JAVA

O método applyStamp aceita HTML/CSS padrão. O uso de uma cor semitransparente rgba para o texto garante que a marca d'água fique visível sem obscurecer o conteúdo do documento abaixo dela.

Para marcas d'água baseadas em imagens ou marcas d'água aplicadas a intervalos específicos de páginas, veja o guia de como criar marca d'água personalizada for Java.

Como Comprimir um Arquivo PDF em Java?

Para arquivos PDF que contêm imagens, o IronPDF pode reduzir o tamanho do arquivo através da reamostragem de imagens incorporadas para uma resolução mais baixa. Use compressImages em um PdfDocument existente.

//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/compress-pdf.java
// Load an existing PDF or use one created by IronPDF
PdfDocument pdf = PdfDocument.fromFile(Paths.get("large-report.pdf"));
// Reduce image quality to 60% (value range: 1–100)
pdf.compressImages(60);
// Save the compressed document
pdf.saveAs("compressed-report.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/format-pdfs/compress-pdf.java
// Load an existing PDF or use one created by IronPDF
PdfDocument pdf = PdfDocument.fromFile(Paths.get("large-report.pdf"));
// Reduce image quality to 60% (value range: 1–100)
pdf.compressImages(60);
// Save the compressed document
pdf.saveAs("compressed-report.pdf");
JAVA

O parâmetro de qualidade é um inteiro de 1 a 100, onde 100 preserva total qualidade da imagem e valores menores reduzem o tamanho do arquivo à custa da fidelidade da imagem. Um valor de 60 a 80 oferece um equilíbrio prático entre tamanho e qualidade visual para a maioria dos documentos empresariais.

AvisoA compressão de imagem é destrutiva. Os dados da imagem original não podem ser recuperados de um PDF comprimido. Sempre mantenha o arquivo fonte caso a qualidade original seja necessária mais tarde.

Veja o exemplo de compressão de PDF para mais detalhes sobre os limites de qualidade de imagem.

Próximos passos

Este tutorial cobriu os três métodos de conversão de HTML para PDF (string, URL e arquivo), juntamente com tamanho de página, margens, cabeçalhos, rodapés, marcas d'água e compressão. Estas são as operações de formatação de PDF mais comuns para aplicações servidoras Java.

Para avançar com o IronPDF for Java:

Comece um teste gratuito para gerar PDFs sem marcas d'água, ou veja as opções de licenciamento para adicionar o IronPDF a um projeto de produção.


Tutorial de Acesso Rápido

Baixar do projeto IronPDF for Java IntelliJ

Baixe este tutorial como código-fonte Java.

O código-fonte completo de HTML para PDF em Java para este tutorial está disponível para download gratuito como um projeto do IntelliJ comprimido.

Baixar

Explore este tutorial no GitHub

O código-fonte para este projeto está disponível no GitHub como um projeto IntelliJ IDEA que também pode ser importado no Eclipse ou em outras IDEs Java.

IronPDF for Java exemplos de format-pdfs
Repositório do GitHub para o código-fonte do tutorial IronPDF Java
Documentação de referência da API IronPDF Java

Consulte a Referência da API.

Explore a referência da API para IronPDF for Java, cobrindo os detalhes de todas as classes, métodos, campos e enums no pacote com.ironsoftware.ironpdf.

Ver a Referência de API IronPDF Java

Perguntas frequentes

Como converter uma string HTML em PDF em Java?

Use PdfDocument.renderHtmlAsPdf(String html) da biblioteca IronPDF for Java. Passe seu markup HTML como um argumento de string, depois chame saveAs no PdfDocument retornado para gravar o arquivo no disco.

Como adiciono IronPDF a um projeto Maven?

Adicione o artefato com.ironsoftware:ironpdf à seção do seu arquivo pom.xml. Também adicione uma implementação SLF4J, como org.slf4j:slf4j-simple, para habilitar o registro de logs. Execute mvn install para baixar ambos os artefatos.

Como definir o tamanho da página de um PDF gerado com IronPDF for Java?

Crie um objeto ChromePdfRenderOptions e chame setPaperSize(PaperSize.A4) (ou outra constante). Passe o objeto de opções como o segundo argumento para renderHtmlAsPdf. Para dimensões não padronizadas, use setCustomPaperSizeInMillimeters.

Como adicionar um cabeçalho e rodapé a um PDF em Java?

Use TextHeaderFooter para cabeçalhos e rodapés de texto simples ou HtmlHeaderFooter para conteúdo HTML totalmente estilizado. Configure o objeto com texto ou HTML, defina-o em uma instância de ChromePdfRenderOptions usando setTextHeader ou setHtmlHeader e passe as opções para o método de renderização.

Como aplicar uma marca d'água a um PDF usando IronPDF for Java?

Chame applyStamp(String htmlFragment) em um PdfDocument existente. Passe uma string HTML que define a aparência da marca d'água, usando CSS position:absolute, transform:rotate e uma cor rgba semi-transparente para sobrepor texto sem obscurecer o conteúdo abaixo.

O IronPDF for Java pode converter uma página da web em PDF?

Sim. Chame PdfDocument.renderUrlAsPdf(String url) com o URL da página. O IronPDF usa um mecanismo de renderização Chromium para buscar e executar a página, incluindo JavaScript, antes de gerar a saída em PDF.

Como remover a marca d'água IronPDF de PDFs gerados?

Chame License.setLicenseKey("YOUR-LICENSE-KEY") antes de qualquer operação de PDF. A marca d'água é aplicada a PDFs gerados sem uma chave de licença válida. Você pode obter uma licença ou uma chave de avaliação gratuita em ironpdf.com/java/licensing/.

Como comprimir um arquivo PDF com IronPDF for Java?

Carregue o PDF usando PdfDocument.fromFile, depois chame compressImages(int quality) com um valor de 1 a 100. Valores mais baixos reduzem o tamanho do arquivo ao reamostrar imagens incorporadas em resolução mais baixa. Chame saveAs para gravar o arquivo comprimido.

O IronPDF for Java suporta margens de página personalizadas?

Sim. Use ChromePdfRenderOptions e chame setMarginTop, setMarginBottom, setMarginLeft e setMarginRight com valores em milímetros. Passe as opções para o método de renderização para aplicar as margens.

Quais versões de Java o IronPDF suporta?

O IronPDF for Java suporta Java 8 e posterior. A biblioteca está disponível como um artefato Maven em com.ironsoftware:ironpdf e como um download fat-JAR independente em ironpdf.com/java/.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Versão: 2026.5 just released
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas?
executar um exemplo Veja seu HTML se transformar em um PDF.