HTML a PDF en Java

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

IronPDF for Java convierte contenido HTML en documentos PDF precisos a nivel de píxel usando el mismo motor de renderizado encontrado en los navegadores modernos. Las aplicaciones Java pueden generar PDFs desde cadenas HTML, archivos HTML locales o páginas web en vivo, sin requerir ningún software de renderizado adicional o un entorno GUI.

Este tutorial cubre los tres métodos de conversión de HTML a PDF disponibles en IronPDF for Java, además de opciones de instalación, licenciamiento y configuración. Los desarrolladores que ya usan IronPDF for .NET encontrarán familiar la API de Java; el tutorial .NET equivalente está disponible en el Tutorial de HTML a PDF for .NET.

Por favor notaIronPDF for Java requiere Java 8 o posterior y es compatible con todos los principales frameworks basados en JVM, incluyendo Spring Boot, Java EE y Micronaut.

Inicio rápido: Generar un PDF desde HTML

El siguiente ejemplo crea un PDF de una página desde una cadena HTML y lo guarda en disco. Después de instalar la biblioteca a través de Maven (Paso 1), este es todo el código requerido:

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;

// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");

// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/quickstart-html-string.java
import com.ironsoftware.ironpdf.*;

// Apply your license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");

// Render an HTML string to a PDF file
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1><p>Generated in Java.</p>");
pdf.saveAs("output.pdf");
JAVA

Comience a usar IronPDF en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer

Tabla de contenido


¿Cómo instalo IronPDF en un proyecto Java?

IronPDF for Java está disponible en el repositorio Central de Maven. El método de instalación recomendado es Maven, aunque también se admite la instalación manual de JAR para proyectos que no utilizan un sistema de construcción.

Instalar como una dependencia de Maven

Agrega los siguientes artefactos a la sección dependencies del archivo pom.xml de tu proyecto:

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-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/generate-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

El primer artefacto incorpora IronPDF. The second is an SLF4J logging implementation. IronPDF utiliza SLF4J para emitir mensajes de diagnóstico durante la renderización; you can substitute it with Logback or Log4j 2, or omit logging entirely.

Ejecuta mvn install en la raíz del proyecto para descargar las dependencias. Verifica la última versión de IronPDF antes de fijar un número de versión, ya que el registro de cambios enumera todas las versiones actuales y pasadas.

Instalar el JAR manualmente

Los desarrolladores que no usan Maven pueden descargar el JAR completo de IronPDF directamente desde Maven Central y agregarlo al classpath del proyecto. El JAR completo incluye todas las dependencias transitivas.

ConsejosMaven es el enfoque recomendado para nuevos proyectos. La instalación de JAR requiere gestión manual de dependencias y puede llevar a conflictos de versiones en proyectos más grandes.

Importar el paquete de IronPDF

Todas las clases de renderización y manipulación de PDF se encuentran en el paquete com.ironsoftware.ironpdf. Agrega esta declaración de importación a cualquier archivo fuente de Java que use IronPDF:

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/import-package.java
import com.ironsoftware.ironpdf.*;
JAVA

Configurar la clave de licencia

Sin una clave de licencia, IronPDF renderiza los PDFs con una marca de agua en mosaico en cada página. Para eliminar la marca de agua, pasa una clave de licencia válida a License.setLicenseKey antes de llamar a cualquier método de renderización:

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;

// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-license-key.java
import com.ironsoftware.ironpdf.*;

// Set the license key before any rendering call
License.setLicenseKey("YOUR-LICENSE-KEY");
JAVA

Coloca esta llamada al inicio de la aplicación, antes de que se ejecute cualquier lógica de generación de PDF. Comienza una prueba gratuita para obtener una clave de prueba, o consulta las opciones de licencia para uso en producción.

Configurar la ruta del archivo de logs

IronPDF escribe diagnósticos de renderización en un archivo de registro llamado IronPdfEngine.log en el directorio de trabajo de la aplicación. Llama a Settings.setLogPath para cambiar el nombre o la ubicación del archivo:

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/set-log-path.java
import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Configure logging before calling any rendering methods
Settings.setLogPath(Paths.get("logs/ironpdf.log"));
JAVA

ImportanteLlama a Settings.setLogPath antes de cualquier método de conversión o manipulación de PDF. Las llamadas hechas después de que ha comenzado la renderización no tendrán efecto.

¿Cómo convierto una cadena HTML en PDF en Java?

PdfDocument.renderHtmlAsPdf convierte una cadena de HTML en un objeto PdfDocument, el cual luego puede guardarse en el disco o pasarse a otros métodos de procesamiento. Este método acepta cualquier HTML compatible con W3C, incluyendo el marcado de página completa con elementos <head> y <body>.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a simple HTML string to PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
// Save the resulting PDF to a file
pdf.saveAs("htmlstring_to_pdf.pdf");
JAVA
PDF output showing a rendered H1 heading generated from an HTML string using PdfDocument.renderHtmlAsPdf

El método PdfDocument.renderHtmlAsPdf renderiza el HTML en un PDF, preservando todo el estilo y la estructura conforme al W3C.

El método devuelve una instancia de PdfDocument. Llama a saveAs para escribir el PDF en el disco, o usa getBinaryData para recuperar los bytes brutos del PDF para transmisión o almacenamiento.

renderHtmlAsPdf procesa todo el contenido de HTML, CSS y JavaScript de la misma manera que un navegador compatible con los estándares. El PDF resultante refleja exactamente cómo se vería la página cuando se visualiza en Chrome.

Para obtener más detalles sobre este método, consulta el ejemplo de código de cadena HTML a PDF en la página de ejemplos de IronPDF Java.

¿Cómo cargo activos locales en una cadena HTML?

El HTML a menudo referencia activos externos (hojas de estilo, imágenes, scripts) por ruta relativa. renderHtmlAsPdf acepta un segundo argumento opcional que establece la ruta base para resolver estas referencias. La ruta base puede apuntar a un directorio local o a una URL.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;

// HTML with references to local stylesheets and images
String html = "<html>"
    + "<head>"
    +   "<title>Invoice</title>"
    +   "<link rel='stylesheet' type='text/css' href='style.css'>"
    + "</head>"
    + "<body>"
    +   "<div class='content'>"
    +     "<h1>Invoice #1001</h1>"
    +     "<img src='logo.png' alt='Company Logo'/>"
    +   "</div>"
    + "</body>"
    + "</html>";

// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-string-local-assets.java
import com.ironsoftware.ironpdf.*;

// HTML with references to local stylesheets and images
String html = "<html>"
    + "<head>"
    +   "<title>Invoice</title>"
    +   "<link rel='stylesheet' type='text/css' href='style.css'>"
    + "</head>"
    + "<body>"
    +   "<div class='content'>"
    +     "<h1>Invoice #1001</h1>"
    +     "<img src='logo.png' alt='Company Logo'/>"
    +   "</div>"
    + "</body>"
    + "</html>";

// The second argument resolves relative asset paths
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/invoices/");
pdf.saveAs("invoice.pdf");
JAVA
PDF output displaying an invoice with styled layout, logo image, and CSS formatting applied from local assets

Cuando se proporciona una ruta base, renderHtmlAsPdf resuelve las referencias a activos relativas desde ese directorio, produciendo un PDF completamente estilizado.

El argumento de ruta base funciona tanto con rutas absolutas del sistema de archivos como con cadenas de URL. Esto hace que renderHtmlAsPdf sea adecuado para generar PDFs a partir de plantillas almacenadas en disco o servidas desde un servidor web.

ConsejosLas rutas que usan barras invertidas al estilo de Windows (C:\invoices\) deben convertirse a barras diagonales o usar Paths.get() para compatibilidad entre plataformas.

¿Cómo convierto una URL a PDF en Java?

PdfDocument.renderUrlAsPdf busca una página web en vivo en la URL especificada y la renderiza como un PDF. El método carga la página completa, incluidas todas las CSS, JavaScript e imágenes externas, antes de renderizar.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/url-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Render a live web page as a PDF document
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("url_to_pdf.pdf");
JAVA
PDF output of the Wikipedia article on PDF format, showing the page layout and content rendered by PdfDocument.renderUrlAsPdf

El método PdfDocument.renderUrlAsPdf captura el estado completo renderizado de una página web, incluso contenido renderizado por JavaScript.

renderUrlAsPdf espera a que se complete la ejecución de JavaScript antes de capturar la página renderizada, lo que significa que el contenido generado dinámicamente (como gráficos o datos cargados a través de AJAX) aparecerá en el PDF de salida.

Para la implementación equivalente en .NET u opciones adicionales de URL a PDF, consulta el ejemplo de código de conversión de URL a PDF.

¿Cómo convierto un archivo HTML a PDF en Java?

PdfDocument.renderHtmlFileAsPdf lee un archivo HTML local y lo renderiza como un PDF. Todas las rutas relativas referenciadas en el archivo HTML (hojas de estilo, imágenes, scripts) se resuelven con relación al directorio del archivo HTML.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/html-file-to-pdf.java
import com.ironsoftware.ironpdf.*;

// Convert a local HTML file to PDF
// IronPDF resolves relative asset paths from the HTML file's directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
JAVA

Este enfoque funciona bien para la generación de documentos plantillados: plantillas de facturas, informes o certificados almacenados como archivos HTML junto con sus activos CSS e imágenes asociados. IronPDF renderiza el archivo con la misma precisión que un navegador, preservando todas las reglas de diseño CSS.

Por favor notaLa ruta del archivo HTML debe ser absoluta. Las rutas relativas pasadas a renderHtmlFileAsPdf se resuelven desde el directorio de trabajo de la JVM, lo que puede producir resultados inesperados en entornos de servidor.

¿Cómo personalizo la configuración de salida de PDF?

La clase PdfRenderOptions controla el diseño de página y el comportamiento de renderización. Crea una instancia de PdfRenderOptions, configura las propiedades requeridas y pásala a cualquiera de los métodos de renderización.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;

// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Customized PDF</h1>",
    options
);
pdf.saveAs("customized.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/render-options.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;

// Configure rendering options before generating the PDF
PdfRenderOptions options = new PdfRenderOptions();
// Set the zoom level (100 = normal size)
options.setZoom(100);
// Wait for JavaScript to finish before rendering
options.setJavaScriptTimeout(5000);
// Enable printing of background colors and images
options.setPrintBackground(true);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Customized PDF</h1>",
    options
);
pdf.saveAs("customized.pdf");
JAVA

La clase PdfRenderOptions proporciona propiedades adicionales para controlar el DPI, el ancho del viewport, la orientación del papel y los valores de tiempo de espera. Consulta el ejemplo de código de configuración de generación de PDF para obtener una lista completa de opciones disponibles.

¿Cómo añado encabezados y pies de página a un PDF?

IronPDF admite tanto encabezados y pies de página basados en texto como basados en HTML. Los encabezados de texto utilizan campos de fusión predefinidos para valores comunes como números de página y títulos de documentos; Los encabezados HTML aceptan cualquier marca HTML para diseños completamente personalizados.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");

// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);

// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");

pdf.addTextHeaders(header);
pdf.addTextFooters(footer);

pdf.saveAs("report_with_headers.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/headers-footers.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1><p>Content goes here.</p>");

// Create a text-based header using merge fields
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Annual Report");
header.setRightText("{page} of {total-pages}");
header.setFont(com.ironsoftware.ironpdf.font.FontTypes.Helvetica);
header.setFontSize(10.0);

// Create a text-based footer
TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("Confidential");
footer.setRightText("Generated by IronPDF");

pdf.addTextHeaders(header);
pdf.addTextFooters(footer);

pdf.saveAs("report_with_headers.pdf");
JAVA

Los campos de fusión {page} y {total-pages} se reemplazan en el momento de la renderización con el número de página actual y el conteo total de páginas. Para diseños más avanzados, como un pie de página con un logo de empresa, usa HtmlHeaderFooter en lugar de TextHeaderFooter.

Para obtener detalles completos sobre los encabezados y pies de página basados en HTML, consulta el ejemplo de código para añadir encabezados y pies de página.

ConsejosLos encabezados y pies de página se renderizan dentro de los márgenes de la página. Aumenta el margen superior o inferior antes de aplicar encabezados o pies de página para evitar la superposición con el contenido de la página.

¿Cómo establezco márgenes personalizados y tamaño de página?

El tamaño de la página y los márgenes se configuran en el objeto PdfRenderOptions antes de que se renderice el PDF. IronPDF admite tamaños de papel estándar (A4, Carta, Legal) y dimensiones completamente personalizadas.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;

PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/margins-page-size.java
import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;

PdfRenderOptions options = new PdfRenderOptions();
// Set margins in millimeters: top, right, bottom, left
options.setMarginTop(25);
options.setMarginRight(20);
options.setMarginBottom(25);
options.setMarginLeft(20);
// Use A4 paper size
options.setPaperSize(PaperSize.A4);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Formatted Document</h1>", options);
pdf.saveAs("formatted_document.pdf");
JAVA

Para obtener una lista completa de tamaños y unidades de papel compatibles, consulta el ejemplo de código de tamaño de papel personalizado y el ejemplo de código de márgenes personalizados.

¿Cómo agrego una marca de agua a un PDF?

PdfDocument.applyWatermark aplica una marca de agua de texto o imagen a cada página del documento. La marca de agua se renderiza en una capa separada debajo del contenido de la página por defecto, o encima de ella cuando el indicador isStampBehind se establece en false.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");

// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);

pdf.saveAs("draft_watermarked.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/add-watermark.java
import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Document</h1>");

// Apply an HTML watermark; supports full CSS styling
String watermarkHtml = "<h1 style='color: rgba(200, 0, 0, 0.2); transform: rotate(-45deg); font-size: 60px;'>DRAFT</h1>";
// Second argument: opacity (0-100), third: rotation (degrees), fourth: stamp behind content
pdf.applyWatermark(watermarkHtml, 50, 45, true);

pdf.saveAs("draft_watermarked.pdf");
JAVA

El enfoque de HTML proporciona un control preciso sobre el estilo de la marca de agua, incluidos fuente, tamaño, color y transparencia. Para configuraciones avanzadas de marca de agua, como patrones de mosaico repetidos o sellos basados en imágenes, consulta la guía de cómo aplicar marcas de agua.

¿Cómo extraigo texto de un PDF en Java?

PdfDocument.extractAllText lee el contenido de texto incrustado en un PDF y lo devuelve como un único String. Este método extrae texto seleccionable de todas las páginas en el documento.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;

// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));

// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-text.java
import com.ironsoftware.ironpdf.*;

// Load an existing PDF from disk
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("report.pdf"));

// Extract all embedded text from the document
String text = pdf.extractAllText();
System.out.println(text);
JAVA

La extracción de texto funciona en PDFs donde el texto se almacena como glifos seleccionables. Para PDFs que son escaneos basados en imágenes, considera emparejar IronPDF con una biblioteca de OCR para extraer texto de las imágenes de página renderizadas.

Consulta el ejemplo de código para extraer texto de PDF para obtener opciones adicionales, incluida la extracción de texto por página.

¿Cómo extraigo imágenes de un PDF en Java?

PdfDocument.extractAllImages devuelve una lista de objetos BufferedImage, uno por cada imagen incrustada en el PDF. Las imágenes devueltas pueden guardarse directamente en disco o pasarse a la lógica de procesamiento de imágenes posterior.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;

// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));

// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
    ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/extract-images.java
import com.ironsoftware.ironpdf.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.List;
import javax.imageio.ImageIO;

// Load an existing PDF
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));

// Extract all embedded images
List<BufferedImage> images = pdf.extractAllImages();
for (int i = 0; i < images.size(); i++) {
    ImageIO.write(images.get(i), "PNG", new File("extracted_image_" + i + ".png"));
}
System.out.println("Extracted " + images.size() + " image(s).");
JAVA

Para obtener más opciones de extracción, incluidas la extracción de imágenes de páginas específicas, consulta el ejemplo de código para extraer imágenes de PDF.

¿Cómo comprimo un archivo PDF?

PdfDocument.compressImages reduce el tamaño del archivo PDF al re-codificar las imágenes incrustadas a una calidad inferior. El método acepta un valor de calidad de 1 (calidad mínima, archivo más pequeño) a 100 (calidad máxima).

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;

// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));

// Compress images to 60% quality to reduce file size
pdf.compressImages(60);

pdf.saveAs("large_report_compressed.pdf");
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/compress-pdf.java
import com.ironsoftware.ironpdf.*;

// Load a large PDF with embedded images
PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("large_report.pdf"));

// Compress images to 60% quality to reduce file size
pdf.compressImages(60);

pdf.saveAs("large_report_compressed.pdf");
JAVA

La compresión de imagen es la forma más efectiva de reducir el tamaño de PDFs que contienen fotografías o gráficos de alta resolución. Para estrategias adicionales de reducción de tamaño de archivo, como eliminar fuentes incrustadas, consulta el ejemplo de código de compresión de PDF.

ConsejosUn valor de calidad entre 40 y 70 generalmente proporciona un buen equilibrio entre reducción de tamaño del archivo y fidelidad visual para la mayoría de los casos de uso de PDF.

¿Cómo imprimo un PDF por programación?

PdfDocument.print envía un PDF a la impresora predeterminada del sistema utilizando la API de impresión estándar de Java. El método acepta un booleano que controla si mostrar un cuadro de diálogo de impresión.

//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));

// Print silently to the default printer (no dialog shown)
pdf.print(false);
//:path=/static-assets/pdf/content-code-examples/tutorials/generate-pdfs/print-pdf.java
import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.fromFile(java.nio.file.Paths.get("document.pdf"));

// Print silently to the default printer (no dialog shown)
pdf.print(false);
JAVA

Pasa true al método print para mostrar el cuadro de diálogo de impresión del sistema, permitiendo a los usuarios seleccionar una impresora y configurar las opciones de impresión antes de enviar el trabajo.

Próximos pasos

Este tutorial cubrió los métodos principales de conversión de HTML a PDF en IronPDF for Java, junto con instalación, configuración y operaciones comunes de procesamiento de documentos.

Para ir más allá:

  1. Navega por el conjunto completo de ejemplos de código HTML a PDF en Java para escenarios de renderización adicionales no cubiertos aquí.
  2. Lee la documentación de IronPDF for Java para entender el despliegue, la seguridad de los hilos y la configuración del servidor.
  3. Explora la referencia completa de API de IronPDF for Java para obtener descripciones detalladas de métodos y parámetros.

Comienza una prueba gratuita para generar PDFs sin marcas de agua, o consulta las opciones de licencia para encontrar el plan adecuado para tu proyecto.


Tutorial de acceso rápido

Logotipo IDE de IntelliJ IDEA para desarrollo en Java

Descargar este tutorial como código fuente Java

El código fuente completo de HTML a PDF para este tutorial está disponible para descargar como un proyecto de IntelliJ empaquetado.

Descargar

Explora este tutorial en GitHub

El código fuente de este proyecto está disponible en GitHub como un proyecto de IntelliJ IDEA. Se puede importar en otros IDEs populares de Java, incluidos Eclipse y NetBeans.

Java HTML a PDF en GitHub
Logotipo de GitHub para repositorio de código fuente
Icono de documentación de referencia de API de IronPDF for Java

Ver la referencia de la API

Explora la referencia de API de IronPDF for Java, que cubre todos los espacios de nombres, clases, métodos y enumeraciones disponibles en la biblioteca.

Ver la referencia de la API

Preguntas Frecuentes

¿Para qué se utiliza IronPDF for Java?

IronPDF for Java convierte contenido HTML a documentos PDF dentro de aplicaciones Java. Admite convertir cadenas HTML, archivos HTML locales y URLs de páginas web en vivo, y también proporciona herramientas para agregar encabezados y pies de página, aplicar marcas de agua, extraer texto, extraer imágenes y comprimir archivos.

¿Cómo instalo IronPDF en un proyecto Java?

Añada dos dependencias Maven a su pom.xml: com.ironsoftware:ironpdf y org.slf4j:slf4j-simple, luego ejecute mvn install. Alternativamente, descargue el JAR independiente desde Maven Central y añádalo al classpath del proyecto.

¿Cómo convierto una cadena HTML a PDF en Java?

Llame a PdfDocument.renderHtmlAsPdf(htmlString) con su marcado HTML. El método devuelve un objeto PdfDocument. Llame a pdf.saveAs("output.pdf") para escribirlo en disco.

¿Cómo convierto una URL a PDF en Java?

Llame a PdfDocument.renderUrlAsPdf("https://example.com"). IronPDF obtiene la página, espera a que JavaScript se ejecute, luego renderiza la página completamente cargada como un PDF.

¿Cómo convierto un archivo HTML local a PDF en Java?

Llame a PdfDocument.renderHtmlFileAsPdf("C:/ruta/al/archivo.html"). Use una ruta de archivo absoluta. IronPDF resuelve automáticamente referencias de CSS relativas e imágenes desde el directorio del archivo HTML.

¿IronPDF for Java añade una marca de agua a los PDFs generados?

Sin una clave de licencia, IronPDF añade una marca de agua en mosaico a todos los PDFs generados. Establezca una clave de licencia válida con License.setLicenseKey("SU-CLAVE") antes de cualquier llamada de renderizado para eliminar la marca de agua.

¿Qué versión de Java requiere IronPDF?

IronPDF for Java requiere Java 8 o posterior. Es compatible con Spring Boot, Java EE, Micronaut y otros frameworks basados en JVM.

¿Cómo añado números de página a un PDF en Java con IronPDF?

Cree una instancia de TextoEncabezadoPie y llame a setRightText("{page} de {total-pages}"). Pase el objeto a pdf.addTextFooters(footer). Los campos de fusión se reemplazan en el momento de renderizado con números de página reales.

¿Puede IronPDF for Java extraer texto de un PDF?

Sí. Cargue un PDF con PdfDocument.fromFile(Paths.get("file.pdf")), luego llame a pdf.extractAllText() para recuperar todo el contenido de texto seleccionable como una cadena.

¿Cómo reduzco el tamaño de archivo de un PDF en Java?

Llame a pdf.compressImages(quality) donde quality es un entero de 1 a 100. Un valor de 60 proporciona un buen equilibrio entre tamaño de archivo y fidelidad de imagen para la mayoría de los PDFs.

Darrius Serrant
Ingeniero de Software Full Stack (WebOps)

Darrius Serrant tiene una licenciatura en Ciencias de la Computación de la Universidad de Miami y trabaja como Ingeniero de Marketing WebOps Full Stack en Iron Software. Atraído por la programación desde joven, vio la computación como algo misterioso y accesible, convirtiéndolo en el ...

Leer más
¿Listo para empezar?
Versión: 2026.5 just released
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida?
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.